• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1uniform mat4 g_WorldViewProjectionMatrix;
2uniform mat4 g_WorldMatrix;
3
4uniform vec4 m_Ambient;
5uniform vec4 m_Diffuse;
6uniform vec4 m_Specular;
7uniform float m_Shininess;
8
9varying vec2 texCoord;
10
11varying vec4 AmbientSum;
12varying vec4 DiffuseSum;
13varying vec4 SpecularSum;
14
15attribute vec3 inPosition;
16attribute vec2 inTexCoord;
17attribute vec3 inNormal;
18
19#ifdef NORMALMAP
20attribute vec3 inTangent;
21varying mat3 tbnMat;
22#endif
23
24#ifdef VERTEX_COLOR
25  attribute vec4 inColor;
26#endif
27
28varying vec3 vNormal;
29varying float vDepth;
30
31void main(){
32   vec4 pos = vec4(inPosition, 1.0);
33   gl_Position = g_WorldViewProjectionMatrix * pos;
34   texCoord = inTexCoord;
35
36   #if defined(NORMALMAP)
37     vec4 wvNormal, wvTangent, wvBinormal;
38
39     wvNormal   = vec4(inNormal, 0.0);
40     wvTangent  = vec4(inTangent, 0.0);
41
42     wvNormal.xyz   = normalize( (g_WorldMatrix * wvNormal).xyz   );
43     wvTangent.xyz  = normalize( (g_WorldMatrix * wvTangent).xyz  );
44     wvBinormal.xyz = cross(wvNormal.xyz, wvTangent.xyz);
45     tbnMat = mat3(wvTangent.xyz, wvBinormal.xyz, wvNormal.xyz);
46
47     vNormal = wvNormal.xyz;
48   #else
49     vec4 wvNormal;
50     #ifdef V_TANGENT
51        wvNormal = vec4(inTangent, 0.0);
52     #else
53        wvNormal = vec4(inNormal, 0.0);
54     #endif
55     vNormal = normalize( (g_WorldMatrix * wvNormal).xyz );
56   #endif
57
58   #ifdef MATERIAL_COLORS
59      AmbientSum  = m_Ambient;
60      DiffuseSum  = m_Diffuse;
61      SpecularSum = m_Specular;
62    #else
63      AmbientSum  = vec4(0.0);
64      DiffuseSum  = vec4(1.0);
65      SpecularSum = vec4(1.0);
66    #endif
67
68    #ifdef VERTEX_COLOR
69      DiffuseSum *= inColor;
70    #endif
71}