- varying vec3 myTexCoord;
- uniform vec4 XPlane;
- uniform vec4 YPlane;
- uniform vec4 ZPlane;
- mat3 Transpose(mat3 m)
- {
- mat3 tmp;
- tmp[0][0] = m[0][0];
- tmp[0][1] = m[1][0];
- tmp[0][2] = m[2][0];
- tmp[1][0] = m[0][1];
- tmp[1][1] = m[1][1];
- tmp[1][2] = m[2][1];
- tmp[2][0] = m[0][2];
- tmp[2][1] = m[1][2];
- tmp[2][2] = m[2][2];
- return tmp;
- }
- void main(void) {
- vec4 EyeVertex = gl_ModelViewMatrix*gl_Vertex;
- mat3 InverseModelView = Transpose(gl_NormalMatrix);
- vec4 XEyePlane = vec4(vec3(XPlane)*InverseModelView,0.0);
- vec4 YEyePlane = vec4(vec3(YPlane)*InverseModelView,0.0);
- vec4 ZEyePlane = vec4(vec3(ZPlane)*InverseModelView,0.0);
- myTexCoord.s = dot(EyeVertex,XEyePlane);
- myTexCoord.t = dot(EyeVertex,YEyePlane);
- myTexCoord.p = dot(EyeVertex,ZEyePlane);
- gl_Position = ftransform();
- }