5 attribute vec3 inVertexPosition;
6 attribute vec3 inVertexNormal;
7 attribute vec4 inVertexColor;
8 attribute vec2 inTexCoord0;
9 attribute vec2 inTexCoord1;
13 uniform mat4 uWVPMatrix;
14 uniform mat4 uWVMatrix;
15 uniform mat4 uNMatrix;
17 uniform vec4 uGlobalAmbient;
18 uniform vec4 uMaterialAmbient;
19 uniform vec4 uMaterialDiffuse;
20 uniform vec4 uMaterialEmissive;
21 uniform vec4 uMaterialSpecular;
22 uniform float uMaterialShininess;
24 uniform float uThickness;
28 varying vec2 vTextureCoord0;
29 varying vec4 vVertexColor;
30 varying vec4 vSpecularColor;
31 varying float vFogCoord;
35 gl_Position = uWVPMatrix * vec4(inVertexPosition, 1.0);
36 gl_PointSize = uThickness;
38 vec3 Position = (uWVMatrix * vec4(inVertexPosition, 1.0)).xyz;
39 vec3 P = normalize(Position);
40 vec3 N = normalize(vec4(uNMatrix * vec4(inVertexNormal, 0.0)).xyz);
41 vec3 R = reflect(P, N);
43 float V = 2.0 * sqrt(R.x*R.x + R.y*R.y + (R.z+1.0)*(R.z+1.0));
44 vTextureCoord0 = vec2(R.x/V + 0.5, R.y/V + 0.5);
46 vVertexColor = inVertexColor.bgra;
47 vSpecularColor = vec4(0.0, 0.0, 0.0, 0.0);
49 vFogCoord = length(Position);