I’m interested in applying a full screen effect like pixelation or dithering to my project, but unsure where/how I should do this. I see that you can apply a full screen shader as described here but I also saw that Godot has a compositing pipeline. In simple use cases are there advantages/disadvantages to using one approach over the other? And just out of curiosity, in more advanced cases where the effect could be done in either, what’s the advantage of using one over the other?
If you can achieve the wanted effect with just a full screen post processing shader - always do it like that. It’s easiest to set up and will likely have the least rendering overhead.
If that’s not enough, you can composit in two ways - using offscreen buffers (aka sub viewports) or using the compositor. The latter is the most powerful as it lets you access various stages of Godot’s rendering pipeline, but it requires the usage of compute shaders, making the whole thing somewhat involved.