meshUVSpaceRenderer.vertex.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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/morphTargetsVertexGlobal.js";
  9. import "./ShadersInclude/morphTargetsVertex.js";
  10. import "./ShadersInclude/instancesVertex.js";
  11. import "./ShadersInclude/bonesVertex.js";
  12. import "./ShadersInclude/bakedVertexAnimation.js";
  13. const name = "meshUVSpaceRendererVertexShader";
  14. const shader = `precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;uniform mat4 projMatrix;varying vec2 vDecalTC;
  15. #include<bonesDeclaration>
  16. #include<bakedVertexAnimationDeclaration>
  17. #include<morphTargetsVertexGlobalDeclaration>
  18. #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
  19. #include<instancesDeclaration>
  20. void main(void) {vec3 positionUpdated=position;vec3 normalUpdated=normal;
  21. #include<morphTargetsVertexGlobal>
  22. #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
  23. #include<instancesVertex>
  24. #include<bonesVertex>
  25. #include<bakedVertexAnimation>
  26. vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);mat3 normWorldSM=mat3(finalWorld);vec3 vNormalW;
  27. #if defined(INSTANCES) && defined(THIN_INSTANCES)
  28. vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);
  29. #else
  30. #ifdef NONUNIFORMSCALING
  31. normWorldSM=transposeMat3(inverseMat3(normWorldSM));
  32. #endif
  33. vNormalW=normalize(normWorldSM*normalUpdated);
  34. #endif
  35. vec3 normalView=normalize((projMatrix*vec4(vNormalW,0.0)).xyz);vec3 decalTC=(projMatrix*worldPos).xyz;vDecalTC=decalTC.xy;gl_Position=vec4(uv*2.0-1.0,normalView.z>0.0 ? 2. : decalTC.z,1.0);}`;
  36. // Sideeffect
  37. ShaderStore.ShadersStore[name] = shader;
  38. /** @internal */
  39. export const meshUVSpaceRendererVertexShader = { name, shader };
  40. //# sourceMappingURL=meshUVSpaceRenderer.vertex.js.map