geometry.vertex.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. import "./ShadersInclude/bonesDeclaration.js";
  4. import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
  5. import "./ShadersInclude/morphTargetsVertexGlobalDeclaration.js";
  6. import "./ShadersInclude/morphTargetsVertexDeclaration.js";
  7. import "./ShadersInclude/instancesDeclaration.js";
  8. import "./ShadersInclude/geometryVertexDeclaration.js";
  9. import "./ShadersInclude/geometryUboDeclaration.js";
  10. import "./ShadersInclude/clipPlaneVertexDeclaration.js";
  11. import "./ShadersInclude/morphTargetsVertexGlobal.js";
  12. import "./ShadersInclude/morphTargetsVertex.js";
  13. import "./ShadersInclude/instancesVertex.js";
  14. import "./ShadersInclude/bonesVertex.js";
  15. import "./ShadersInclude/bakedVertexAnimation.js";
  16. import "./ShadersInclude/clipPlaneVertex.js";
  17. import "./ShadersInclude/bumpVertex.js";
  18. const name = "geometryVertexShader";
  19. const shader = `precision highp float;
  20. #include<bonesDeclaration>
  21. #include<bakedVertexAnimationDeclaration>
  22. #include<morphTargetsVertexGlobalDeclaration>
  23. #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
  24. #include<instancesDeclaration>
  25. #include<__decl__geometryVertex>
  26. #include<clipPlaneVertexDeclaration>
  27. attribute vec3 position;attribute vec3 normal;
  28. #ifdef NEED_UV
  29. varying vec2 vUV;
  30. #ifdef ALPHATEST
  31. uniform mat4 diffuseMatrix;
  32. #endif
  33. #ifdef BUMP
  34. uniform mat4 bumpMatrix;varying vec2 vBumpUV;
  35. #endif
  36. #ifdef REFLECTIVITY
  37. uniform mat4 reflectivityMatrix;uniform mat4 albedoMatrix;varying vec2 vReflectivityUV;varying vec2 vAlbedoUV;
  38. #endif
  39. #ifdef UV1
  40. attribute vec2 uv;
  41. #endif
  42. #ifdef UV2
  43. attribute vec2 uv2;
  44. #endif
  45. #endif
  46. #ifdef BUMP
  47. varying mat4 vWorldView;
  48. #endif
  49. #ifdef BUMP
  50. varying vec3 vNormalW;
  51. #else
  52. varying vec3 vNormalV;
  53. #endif
  54. varying vec4 vViewPos;
  55. #if defined(POSITION) || defined(BUMP)
  56. varying vec3 vPositionW;
  57. #endif
  58. #ifdef VELOCITY
  59. uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
  60. #endif
  61. #define CUSTOM_VERTEX_DEFINITIONS
  62. void main(void)
  63. {vec3 positionUpdated=position;vec3 normalUpdated=normal;
  64. #ifdef UV1
  65. vec2 uvUpdated=uv;
  66. #endif
  67. #include<morphTargetsVertexGlobal>
  68. #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
  69. #include<instancesVertex>
  70. #if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)
  71. vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
  72. #endif
  73. #include<bonesVertex>
  74. #include<bakedVertexAnimation>
  75. vec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));
  76. #ifdef BUMP
  77. vWorldView=view*finalWorld;vNormalW=normalUpdated;
  78. #else
  79. #ifdef NORMAL_WORLDSPACE
  80. vNormalV=normalize(vec3(finalWorld*vec4(normalUpdated,0.0)));
  81. #else
  82. vNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));
  83. #endif
  84. #endif
  85. vViewPos=view*worldPos;
  86. #if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)
  87. vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);
  88. #if NUM_BONE_INFLUENCERS>0
  89. mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
  90. #if NUM_BONE_INFLUENCERS>1
  91. previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
  92. #endif
  93. #if NUM_BONE_INFLUENCERS>2
  94. previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
  95. #endif
  96. #if NUM_BONE_INFLUENCERS>3
  97. previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
  98. #endif
  99. #if NUM_BONE_INFLUENCERS>4
  100. previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
  101. #endif
  102. #if NUM_BONE_INFLUENCERS>5
  103. previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
  104. #endif
  105. #if NUM_BONE_INFLUENCERS>6
  106. previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
  107. #endif
  108. #if NUM_BONE_INFLUENCERS>7
  109. previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
  110. #endif
  111. vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
  112. #else
  113. vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
  114. #endif
  115. #endif
  116. #if defined(POSITION) || defined(BUMP)
  117. vPositionW=worldPos.xyz/worldPos.w;
  118. #endif
  119. gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
  120. #include<clipPlaneVertex>
  121. #ifdef NEED_UV
  122. #ifdef UV1
  123. #if defined(ALPHATEST) && defined(ALPHATEST_UV1)
  124. vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
  125. #else
  126. vUV=uv;
  127. #endif
  128. #ifdef BUMP_UV1
  129. vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));
  130. #endif
  131. #ifdef REFLECTIVITY_UV1
  132. vReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));
  133. #endif
  134. #ifdef ALBEDO_UV1
  135. vAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));
  136. #endif
  137. #endif
  138. #ifdef UV2
  139. #if defined(ALPHATEST) && defined(ALPHATEST_UV2)
  140. vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));
  141. #else
  142. vUV=uv2;
  143. #endif
  144. #ifdef BUMP_UV2
  145. vBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));
  146. #endif
  147. #ifdef REFLECTIVITY_UV2
  148. vReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));
  149. #endif
  150. #ifdef ALBEDO_UV2
  151. vAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));
  152. #endif
  153. #endif
  154. #endif
  155. #include<bumpVertex>
  156. }
  157. `;
  158. // Sideeffect
  159. ShaderStore.ShadersStore[name] = shader;
  160. /** @internal */
  161. export const geometryVertexShader = { name, shader };
  162. //# sourceMappingURL=geometry.vertex.js.map