mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
30 lines
907 B
GLSL
30 lines
907 B
GLSL
precision highp float;
|
|
precision highp int;
|
|
|
|
uniform mat4 viewMatrix;
|
|
|
|
uniform vec3 color;
|
|
uniform vec3 ambientColor;
|
|
uniform vec3 lightPosition;
|
|
uniform vec3 diffuseColor;
|
|
uniform float shininess;
|
|
|
|
varying vec3 vPosition;
|
|
varying vec3 vNormal;
|
|
|
|
void main() {
|
|
vec3 ambient = ambientColor * color;
|
|
|
|
vec3 normal = normalize(vNormal);
|
|
vec3 vLightPosition = vec3(viewMatrix * vec4(lightPosition, 1.0));
|
|
vec3 lightDirection = normalize(vLightPosition - vPosition);
|
|
float dotL = max(dot(lightDirection, normal), 0.0);
|
|
vec3 diffuse = diffuseColor * dotL * color;
|
|
|
|
vec3 eyeDirection = normalize(- vPosition);
|
|
vec3 reflectionDirection = reflect(-lightDirection, normal);
|
|
float specularLightWeight = pow(max(dot(reflectionDirection, eyeDirection), 0.0), shininess);
|
|
vec3 specular = color * specularLightWeight;
|
|
|
|
gl_FragColor = vec4(ambient + diffuse + specular, 1.0);
|
|
} |