let me see how I can explain this
I have added a second ramp to the shader
see below
vec2 light = computeLighting(vPosition, normal, vViewDir.xyz, lightDir.xyz) * spotFallOff;
vec3 normalizedLight_ViewDirection = normalize(vViewDir.xyz+lightDir.xyz);
float NDotL2 = max(0.0, dot(normal, normalizedLight_ViewDirection));
#ifdef COLORRAMP2
light.x *= texture2D(m_ColorRamp2, vec2(light.x+NDotL2, 0.0)).r;
light.y *= texture2D(m_ColorRamp2, vec2(light.y+NDotL2, 0.0)).r;
#endif
ramp2 can also be calculated as
different variants to play with
defaultpreferred
//looks nice without *
light.x *= texture2D(m_ColorRamp2, vec2(light.x+NDotL2, 0.0)).r;
light.y *= texture2D(m_ColorRamp2, vec2(light.y+NDotL2, 0.0)).r;
other variants
//looks nice with *= and +=
light.x = texture2D(m_ColorRamp2, vec2(light.x*+NDotL2, 0.0)).r;
light.y = texture2D(m_ColorRamp2, vec2(light.y*+NDotL2, 0.0)).r;
light.x = texture2D(m_ColorRamp2, vec2(light.x*NDotL2, 0.0)).r;
light.y = texture2D(m_ColorRamp2, vec2(light.y*NDotL2, 0.0)).r;
these produce different looks example
http://i.imgur.com/9keHx.jpg
http://i.imgur.com/0kwJ6.jpg
http://i.imgur.com/lyGqQ.jpg
http://i.imgur.com/I2wxo.jpg
some are negligibly similar so I wont probably use all but I am trying to figure out the best way to use the different looks available without having to alter the shader every time which would make having different “looks” on individual models difficult
hope I’m more clear now