I wanted to address a small issue regarding SSAO2 render pipeline. I want to use it as a solution for some fake shadows in my scene. However, I noticed that SSAO2 seems to ignore my node material, in the sense that it does not produce the ambient occlusion effect around objects that have NME created material.
Any other material seems to be successful in rendering the screen space ambient occlusion (even when I select Default Fallback or none).
One thing that I would have tried is to go in debug mode and compare these two different materials side by side, but I can’t seem to “debug mode” the Node Material.
Unfortunately, IblShadowsRenderPipeline doesn’t currently support Node Materials, and the approach used for SSAO2 (with the PrePassOutput block) won’t work here because the two systems apply their effects differently.
SSAO2 is a full-screen post-process — it only needs geometry data (depth, normals) from the prepass, which PrePassOutputBlock provides. The occlusion is then composited over the entire frame.
IblShadowsRenderPipeline works differently: in addition to reading geometry data to compute the shadows, it also needs to inject shader code into each material to apply the shadow factor. This is done through a material plugin (IblShadowsPluginMaterial), which modifies the material’s fragment shader at specific injection points. Currently this is supported for PBRBaseMaterial, StandardMaterial, and OpenPBRMaterial.
Node Materials have a fundamentally different shader architecture — they generate their shader source code through the node graph at build time, bypassing the plugin injection system entirely.
Because of this, the shadow plugin cannot inject its code into a Node Material’s shader, and the pipeline silently skips Node Materials.
This is a known architectural limitation rather than a configuration issue, so there’s no workaround with the current setup.