UNPKG

917 BPlain TextView Raw
1precision mediump float;
2
3attribute vec3 position, normal;
4attribute vec4 color;
5attribute vec2 uv;
6
7uniform mat4 model
8 , view
9 , projection
10 , inverseModel;
11uniform vec3 eyePosition
12 , lightPosition;
13
14varying vec3 f_normal
15 , f_lightDirection
16 , f_eyeDirection
17 , f_data;
18varying vec4 f_color;
19varying vec2 f_uv;
20
21vec4 project(vec3 p) {
22 return projection * view * model * vec4(p, 1.0);
23}
24
25void main() {
26 gl_Position = project(position);
27
28 //Lighting geometry parameters
29 vec4 cameraCoordinate = view * vec4(position , 1.0);
30 cameraCoordinate.xyz /= cameraCoordinate.w;
31 f_lightDirection = lightPosition - cameraCoordinate.xyz;
32 f_eyeDirection = eyePosition - cameraCoordinate.xyz;
33 f_normal = normalize((vec4(normal,0) * inverseModel).xyz);
34
35 f_color = color;
36 f_data = position;
37 f_uv = uv;
38}