12345678910111213141516171819 |
- #version 110
- varying vec3 eye_normal;
- vec3 world_normal()
- {
- // the world normal is always parallel to the world XY plane
- // the x component is stored into gl_Vertex.w
- float x = gl_Vertex.w;
- float y = sqrt(1.0 - x * x);
- return vec3(x, y, 0.0);
- }
- void main()
- {
- vec4 world_position = vec4(gl_Vertex.xyz, 1.0);
- gl_Position = gl_ModelViewProjectionMatrix * world_position;
- eye_normal = gl_NormalMatrix * world_normal();
- }
|