default.vertex.fx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. #include<__decl__defaultVertex>
  2. // Attributes
  3. attribute vec3 position;
  4. #ifdef NORMAL
  5. attribute vec3 normal;
  6. #endif
  7. #ifdef TANGENT
  8. attribute vec4 tangent;
  9. #endif
  10. #ifdef UV1
  11. attribute vec2 uv;
  12. #endif
  13. #ifdef UV2
  14. attribute vec2 uv2;
  15. #endif
  16. #ifdef VERTEXCOLOR
  17. attribute vec4 color;
  18. #endif
  19. #include<bonesDeclaration>
  20. // Uniforms
  21. #include<instancesDeclaration>
  22. #ifdef DIFFUSE
  23. varying vec2 vDiffuseUV;
  24. #endif
  25. #ifdef AMBIENT
  26. varying vec2 vAmbientUV;
  27. #endif
  28. #ifdef OPACITY
  29. varying vec2 vOpacityUV;
  30. #endif
  31. #ifdef EMISSIVE
  32. varying vec2 vEmissiveUV;
  33. #endif
  34. #ifdef LIGHTMAP
  35. varying vec2 vLightmapUV;
  36. #endif
  37. #if defined(SPECULAR) && defined(SPECULARTERM)
  38. varying vec2 vSpecularUV;
  39. #endif
  40. #ifdef BUMP
  41. varying vec2 vBumpUV;
  42. #endif
  43. // Output
  44. varying vec3 vPositionW;
  45. #ifdef NORMAL
  46. varying vec3 vNormalW;
  47. #endif
  48. #ifdef VERTEXCOLOR
  49. varying vec4 vColor;
  50. #endif
  51. #include<bumpVertexDeclaration>
  52. #include<clipPlaneVertexDeclaration>
  53. #include<fogVertexDeclaration>
  54. #include<shadowsVertexDeclaration>[0..maxSimultaneousLights]
  55. #include<morphTargetsVertexGlobalDeclaration>
  56. #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
  57. #ifdef REFLECTIONMAP_SKYBOX
  58. varying vec3 vPositionUVW;
  59. #endif
  60. #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
  61. varying vec3 vDirectionW;
  62. #endif
  63. #include<logDepthDeclaration>
  64. void main(void) {
  65. vec3 positionUpdated = position;
  66. #ifdef NORMAL
  67. vec3 normalUpdated = normal;
  68. #endif
  69. #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
  70. #ifdef REFLECTIONMAP_SKYBOX
  71. vPositionUVW = positionUpdated;
  72. #endif
  73. #include<instancesVertex>
  74. #include<bonesVertex>
  75. gl_Position = viewProjection * finalWorld * vec4(positionUpdated, 1.0);
  76. vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);
  77. vPositionW = vec3(worldPos);
  78. #ifdef NORMAL
  79. vNormalW = normalize(vec3(finalWorld * vec4(normalUpdated, 0.0)));
  80. #endif
  81. #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
  82. vDirectionW = normalize(vec3(finalWorld * vec4(positionUpdated, 0.0)));
  83. #endif
  84. // Texture coordinates
  85. #ifndef UV1
  86. vec2 uv = vec2(0., 0.);
  87. #endif
  88. #ifndef UV2
  89. vec2 uv2 = vec2(0., 0.);
  90. #endif
  91. #ifdef DIFFUSE
  92. if (vDiffuseInfos.x == 0.)
  93. {
  94. vDiffuseUV = vec2(diffuseMatrix * vec4(uv, 1.0, 0.0));
  95. }
  96. else
  97. {
  98. vDiffuseUV = vec2(diffuseMatrix * vec4(uv2, 1.0, 0.0));
  99. }
  100. #endif
  101. #ifdef AMBIENT
  102. if (vAmbientInfos.x == 0.)
  103. {
  104. vAmbientUV = vec2(ambientMatrix * vec4(uv, 1.0, 0.0));
  105. }
  106. else
  107. {
  108. vAmbientUV = vec2(ambientMatrix * vec4(uv2, 1.0, 0.0));
  109. }
  110. #endif
  111. #ifdef OPACITY
  112. if (vOpacityInfos.x == 0.)
  113. {
  114. vOpacityUV = vec2(opacityMatrix * vec4(uv, 1.0, 0.0));
  115. }
  116. else
  117. {
  118. vOpacityUV = vec2(opacityMatrix * vec4(uv2, 1.0, 0.0));
  119. }
  120. #endif
  121. #ifdef EMISSIVE
  122. if (vEmissiveInfos.x == 0.)
  123. {
  124. vEmissiveUV = vec2(emissiveMatrix * vec4(uv, 1.0, 0.0));
  125. }
  126. else
  127. {
  128. vEmissiveUV = vec2(emissiveMatrix * vec4(uv2, 1.0, 0.0));
  129. }
  130. #endif
  131. #ifdef LIGHTMAP
  132. if (vLightmapInfos.x == 0.)
  133. {
  134. vLightmapUV = vec2(lightmapMatrix * vec4(uv, 1.0, 0.0));
  135. }
  136. else
  137. {
  138. vLightmapUV = vec2(lightmapMatrix * vec4(uv2, 1.0, 0.0));
  139. }
  140. #endif
  141. #if defined(SPECULAR) && defined(SPECULARTERM)
  142. if (vSpecularInfos.x == 0.)
  143. {
  144. vSpecularUV = vec2(specularMatrix * vec4(uv, 1.0, 0.0));
  145. }
  146. else
  147. {
  148. vSpecularUV = vec2(specularMatrix * vec4(uv2, 1.0, 0.0));
  149. }
  150. #endif
  151. #ifdef BUMP
  152. if (vBumpInfos.x == 0.)
  153. {
  154. vBumpUV = vec2(bumpMatrix * vec4(uv, 1.0, 0.0));
  155. }
  156. else
  157. {
  158. vBumpUV = vec2(bumpMatrix * vec4(uv2, 1.0, 0.0));
  159. }
  160. #endif
  161. #include<bumpVertex>
  162. #include<clipPlaneVertex>
  163. #include<fogVertex>
  164. #include<shadowsVertex>[0..maxSimultaneousLights]
  165. #ifdef VERTEXCOLOR
  166. // Vertex color
  167. vColor = color;
  168. #endif
  169. #include<pointCloudVertex>
  170. #include<logDepthVertex>
  171. }