So I’m messing around with my cel shader material postprocess today, and I had an idea that it would be cool to let an object specify its own outline shade, by simply reporting a color for that object to the postprocess.
Of course, there’s no way to access that sort of parameter on a per-pixel basis, except as a GBuffer pass (as with opacity, roughness, ambient occlusion, et al). If you had a GBuffer channel it would be as simple as pulling a SceneTexture node and grabbing that output.
Obviously, specifying outline color is not something that the average user wants to do. However, I DO think it’s fair to say that there are a good many users who want SOME way of reporting per-pixel data to a postprocess, so they can specify various things in their material network to control whatever special effect they’re using.
So it would be cool to have a GBuffer pass (or more, if it would be feasible to make the number variable without an adverse performance cost for those who don’t want to use the pass) that could be used but which the Engine didn’t do anything with by default. That way there’s a channel available to users for communicating data in material networks that can then be accessed from a SceneTexture node, WITHOUT interfering with what the PBR pipeline is doing with each pass.