summaryrefslogtreecommitdiffstats
path: root/src/extras/shaders/es2/light.inc.frag
diff options
context:
space:
mode:
Diffstat (limited to 'src/extras/shaders/es2/light.inc.frag')
-rw-r--r--src/extras/shaders/es2/light.inc.frag79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/extras/shaders/es2/light.inc.frag b/src/extras/shaders/es2/light.inc.frag
index 2c41bb37b..9d29648bd 100644
--- a/src/extras/shaders/es2/light.inc.frag
+++ b/src/extras/shaders/es2/light.inc.frag
@@ -13,82 +13,3 @@ struct Light {
};
uniform Light lights[MAX_LIGHTS];
uniform int lightCount;
-
-void adsModel(const in FP vec3 vpos, const in FP vec3 vnormal, const in FP vec3 vview, const in FP float shininess,
- out FP vec3 diffuseColor, out FP vec3 specularColor)
-{
- diffuseColor = vec3(0.0);
- specularColor = vec3(0.0);
-
- FP vec3 n = normalize( vnormal );
-
- FP vec3 s;
- Light light;
- for (int i = 0; i < MAX_LIGHTS; ++i) {
- if (i >= lightCount) // Make brcm happy with the for loop
- break;
- if (i == 0)
- light = lights[0];
- else if (i == 1)
- light = lights[1];
- else if (i == 2)
- light = lights[2];
- else if (i == 3)
- light = lights[3];
- else if (i == 4)
- light = lights[4];
- else if (i == 5)
- light = lights[5];
- else if (i == 6)
- light = lights[6];
- else if (i == 7)
- light = lights[7];
-
- FP float att = 1.0;
- if ( light.type != TYPE_DIRECTIONAL ) {
- s = light.position - vpos;
- if (length( light.attenuation ) != 0.0) {
- FP float dist = length(s);
- att = 1.0 / (light.attenuation.x + light.attenuation.y * dist + light.attenuation.z * dist * dist);
- }
- s = normalize( s );
- if ( light.type == TYPE_SPOT ) {
- if ( degrees(acos(dot(-s, normalize(light.direction))) ) > light.cutOffAngle)
- att = 0.0;
- }
- } else {
- s = normalize( -light.direction );
- }
-
- FP float diffuse = max( dot( s, n ), 0.0 );
-
- FP float specular = 0.0;
- if (diffuse > 0.0 && shininess > 0.0 && att > 0.0) {
- FP vec3 r = reflect( -s, n );
- FP float normFactor = ( shininess + 2.0 ) / 2.0;
- specular = normFactor * pow( max( dot( r, vview ), 0.0 ), shininess );
- }
-
- diffuseColor += att * light.intensity * diffuse * light.color;
- specularColor += att * light.intensity * specular * light.color;
- }
-}
-
-FP vec4 phongFunction(const in FP vec4 ambient,
- const in FP vec4 diffuse,
- const in FP vec4 specular,
- const in FP float shininess,
- const in FP vec3 worldPosition,
- const in FP vec3 worldView,
- const in FP vec3 worldNormal)
-{
- // Calculate the lighting model, keeping the specular component separate
- FP vec3 diffuseColor, specularColor;
- adsModel(worldPosition, worldNormal, worldView, shininess, diffuseColor, specularColor);
-
- // Combine spec with ambient+diffuse for final fragment color
- FP vec3 color = (ambient.rgb + diffuseColor) * diffuse.rgb
- + specularColor * specular.rgb;
-
- return vec4(color, diffuse.a);
-}