Files
legolog/client/public/brick-renderer/basic.fs
Ben 6fca2d6f9e OpENgL
Former-commit-id: 64c9625b85553dcdb32306c9e03d69dc3d913ef3
2022-02-27 23:52:18 +00:00

29 lines
735 B
GLSL

#version 300 es
precision highp float;
uniform SceneUniforms {
mat4 viewProj;
vec4 eyePosition;
vec4 lightPosition;
} uScene;
uniform sampler2D tex;
in vec3 vPosition;
in vec3 vNormal;
out vec4 fragColor;
void main() {
vec3 color = vNormal;
vec3 normal = normalize(vNormal);
vec3 eyeVec = normalize(uScene.eyePosition.xyz - vPosition);
vec3 incidentVec = normalize(vPosition - uScene.lightPosition.xyz);
vec3 lightVec = -incidentVec;
float diffuse = max(dot(lightVec, normal), 0.0);
float highlight = pow(max(dot(eyeVec, reflect(incidentVec, normal)), 0.0), 100.0);
float ambient = 0.1;
fragColor = vec4(color * (diffuse + highlight + ambient), 1.0);
}