29 lines
666 B
GLSL
29 lines
666 B
GLSL
#ifdef GL_ES
|
|
precision highp float;
|
|
#endif
|
|
|
|
varying vec3 position;
|
|
varying vec3 normal;
|
|
|
|
const vec3 lightPosition = vec3(10, 20, 10);
|
|
|
|
varying vec2 texCoord;
|
|
uniform sampler2D image;
|
|
|
|
float lambertianReflectanceStrength(vec3 position, vec3 lightPosition)
|
|
{
|
|
vec3 lightDirection = normalize(lightPosition - position);
|
|
// Light flux direction.
|
|
float strength = dot(normal, lightDirection);
|
|
float diffuse = max(strength, 0.2);
|
|
|
|
return diffuse;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
vec3 texColor = texture2D(image, texCoord).rgb;
|
|
vec3 finalColor = texColor * lambertianReflectanceStrength(position, lightPosition);
|
|
gl_FragColor = vec4(finalColor, 1.0);
|
|
}
|