I have built a small portion of my first level and I have over 58K Shaders all together.
It just seems like that’s to many for the space that I have covered.
If I use a Material Instance rather than the actual material itself, will that cut down on the amount of shaders, or is that something totally different?
It is best to create a few general materials with parameters and then create material instances for your meshes based on the materials. Each material that is in the game needs to be compiled. Use texture parameters in you main materials so that you can switch out the textures in the material instances for your meshes. This will dramatically cut down in the number of shaders that need to be compiled
A Material is the collection of shaders you use.
A Material Instance is a version of these shaders with different parameters.
There is no additional shader code generated with Material Instances (except Materials that use Static Switches, but that’s another story)
If you apply a Material (not instance) to a Mesh, you are basically using a Default Material Instance
Another reason that Gampersnaz makes sense on this is both LDDC_ShaderCache is 20.4 GB (21,975,312,781 bytes) and SDDC_ShaderCache is 21.5 GB (23,167,044,677 bytes)
There is no way that is best practise workflow, not for what I have created so far…
In this Tutorial he actually backs up what Gampersnaz and I are saying about how when you compile only the material “Parent” gets compiled, not the material instances, so this is why I have so many Shaders for such a small area.