So first off, project is in Forward rendering path, not VertexLit. Only one custom Quality setting where pixel lights is 0.
There is only ever one light source active in the scene. In total there are 2 directional lights and 1 point light but the latter is currently always disabled and between the 2 directional lights, only one is ever active, never both.
So this is how I understand Forward rendering with 0 pixel lights and 1 directional light source (plus ambient) in the scene: lighting is done per-pixel in forwardbase, additional lights (if they existed, which they don’t right now) would be per-pixel in forwardadds up to the number specified in current Quality settings (currently 0), all additional would be per-vertex in, I suppose, forwardbase?
If that’s correct, I don’t get why my surface shader renders so differently when I use novertexlights? Remember, only 1 directional light source so should be per-pixel in forwardbase and the novertexlights shouldn’t affect my visuals at all right now.
My pragmas:
#pragma target 3.0
#pragma glsl
#pragma only_renderers opengl gles
#include "_azShared.cginc"
#pragma surface surf BlinnPhong exclude_path:prepass nolightmap noforwardadd novertexlights
Two screenshots illustrating shading differences. Light source has not been changed! Nothing has changed (except the moving water), except novertexlights in the surface shader.
Here’s without novertexlights:
https://dl.dropboxusercontent.com/u/136375/img/screens/unity-surface-vertexon.png
Here’s with novertexlights:
https://dl.dropboxusercontent.com/u/136375/img/screens/unity-surface-vertexoff.png
You can see, lighting isn’t turned off, in both cases the lit areas are lighter than the unlit areas. But with novertexlights, the surface is only “half as illuminated”. What I’m not getting: there shouldn’t be any vertex-lighting in this very scene, in theory there’s only a per-pixel forwardbase as there’s only 1 directional light plus ambient.
Is this a bug or what am I not getting about novertexlights?