Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 330
- in vec2 pass_textureCoords;
- in vec3 surfaceNormal;
- in vec3 toLightVector;
- in vec3 toCameraVector;
- in vec3 visibility;
- out vec4 out_Color;
- uniform sampler2D textureSampler;
- uniform vec3 lightColor;
- uniform float shineDamper;
- uniform float reflectivity;
- uniform vec3 skyColor;
- void main(void) {
- vec3 unitNormal = normalize(surfaceNormal);
- vec3 unitLightVector = normalize(toLightVector);
- float nDotl = dot(unitNormal, unitLightVector);
- float brightness = max(nDotl, 0.2);
- vec3 diffuse = brightness * lightColor;
- vec3 unitVectorCameraVector = normalize(toCameraVector);
- vec3 lightDirection = -unitLightVector;
- vec3 reflectedLightDirection = reflect(lightDirection, unitNormal);
- float specularFactor = dot(reflectedLightDirection, unitVectorCameraVector);
- specularFactor = max(specularFactor, 0.0);
- float dampedFactor = pow(specularFactor, shineDamper);
- vec3 finalSpecular = dampedFactor * reflectivity *lightColor;
- out_Color = vec4(diffuse, 1.0) * texture(textureSampler, pass_textureCoords) + vec4(finalSpecular, 1.0);
- out_Color = vec4(mix(vec4(skyColor, 1.0), vec4(out_Color).xyz, visibility), 1);
- }
Add Comment
Please, Sign In to add comment