Shader LODs, are these tied to the quality settings or what? Where would I control which numbers are the cutoffs for different settings? Do I have to write a script setting the maximum LOD for each quality setting?
shader lods are defined in the shader itself and they will work automatically.
when it no longer conforms the lod requirements it will fallback to the next shader basically
I have a normal specular mapped object that shows up when the lowest setting is picked. I would like to change that so it doesn’t show for anything under “Good” quality settings. What LOD should I put for it? And how do I know what the LOD cutoff point is? Same thing with the SSAO, it shows up on lowest quality setting even though it has a LOD setting, so what is the point? There has to be somewhere to set the LOD limits, other than script? Or is script the only way?
you control such stuff through script.
The Quality level is related to static settings not things that “scale” at runtime like such lod values that you would want to scale basing on view distance, stuff going on, hardware etc.
The Island Demo project that comes with unity is a good place to start cause it has such a “scaling” script that detects hardware and scales dynamically, not quality level (back then you couldn’t switch half the stuff at runtime anymore or in webplayers at all as that was added with 2.6) wise actually, which is normally a better approach unless you intend to add a graphics option menue with 5 predefined quality levels and alike.
the script access to it by the way is maximumLOD (on single shaders if you want to scale down higher end ones or basing on quality level just some specific ones like a reflective - refractive water and alike), Shader.globalMaximumLOD controls it for all.
you can set this, by the way, basing on the quality levels on startup if you want to bind it to quality levels.
Thanks for the explanation dreamora, that makes sense ![]()