Cycles procedural texture appears in preview, but disappears in final render Today I was working on a porcelain material to include in my personal material library. It has several layers of procedural wear, including a grunge map inputting to the roughness of my PBR Dielectric shader, a scratches layer with four separate sets of scratches all going different directions to add to the bump map and to mix in a different color to my Dielectric shader again, and a layer of dust using the layer weight and upward facing normals to apply a noise texture to add in a dust dielectric to mix into the final result. (Picture below to clear that up, and I'm more than willing to post screenshots of the expanded node groups)



I worked for quite a while on this material, and it was looking absolutely fantastic in my preview renders, but it was missing something in my final renders. I was unable to put my finger on it in the beginning, but now after comparing them side by side it appears that in the final render for whatever reason the scratches layer is not showing through, despite it being in the preview render. Why might that be, and how can I fix it? Might it have something to do with the subsurface modifier looking different between the two renders since I'm using the pointiness geometry node?
So it appears the pointiness output's effect in the Geometry node is significantly reduced when you increase the subsurf modifier. Multiplying the effect of the mask from the pointiness factor would likely solve the problem as well but for this particular instance simply reducing the subsurf back down to 2 subdivisions rather than the initial 4 that I was using was sufficient to get the effect I wanted.

So to sum it up, pointiness reduces with subsurf, so multiply its effect or reduce the subsurf.