|
- {$INCLUDE 'color.shdr'}
-
- {$CLASS PhongLight}
- {$PROPERTY UsePhongLight 'false'}
- {$IF UsePhongLight}
- {$VARYING 'vec3' 'vNormal'}
- {$VARYING 'vec3' 'vVertex'}
- {$END}
- {$END}
-
- {$CLASS PhongLightFrag $EXTENDS PhongLight ColorFrag}
- {$MAIN}
- vec4 color = {$CALL GetColor};
- {$IF UsePhongLight}
- vec3 eye = normalize(-vVertex);
- vec3 lightVec = gl_LightSource[0].position.xyz - vVertex;
- vec3 reflected = normalize(reflect(lightVec, vNormal));
-
- vec4 ambient = gl_LightSource[0].ambient * gl_FrontMaterial.ambient;
- vec4 diffuse = gl_LightSource[0].diffuse * max(dot(vNormal, lightVec), 0.0) * gl_FrontMaterial.diffuse;
- vec4 specular = gl_LightSource[0].specular * pow(max(dot(reflected, eye), 0.0), gl_FrontMaterial.shininess) * gl_FrontMaterial.specular;
-
- gl_FragColor = vec4((ambient + diffuse) * color) + specular;
- {$ELSE}
- gl_FragColor = color;
- {$END}
- {$END}
- {$END}
-
- {$CLASS PhongLightVert $EXTENDS PhongLight ColorVert}
- {$MAIN}
- {$INHERITED ColorVert $INLINE};
- {$IF UsePhongLight}
- vNormal = normalize(gl_NormalMatrix * gl_Normal);
- vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);
- {$END}
- {$END}
- {$END}
|