shadowMap.vertex.fx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Attribute
  2. attribute vec3 position;
  3. #ifdef NORMAL
  4. attribute vec3 normal;
  5. #endif
  6. #include<bonesDeclaration>
  7. #include<morphTargetsVertexGlobalDeclaration>
  8. #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
  9. // Uniforms
  10. #include<instancesDeclaration>
  11. #include<helperFunctions>
  12. uniform mat4 viewProjection;
  13. #ifdef ALPHATEST
  14. varying vec2 vUV;
  15. uniform mat4 diffuseMatrix;
  16. #ifdef UV1
  17. attribute vec2 uv;
  18. #endif
  19. #ifdef UV2
  20. attribute vec2 uv2;
  21. #endif
  22. #endif
  23. #include<shadowMapVertexDeclaration>
  24. #include<clipPlaneVertexDeclaration>
  25. void main(void)
  26. {
  27. vec3 positionUpdated = position;
  28. #ifdef UV1
  29. vec2 uvUpdated = uv;
  30. #endif
  31. #ifdef NORMAL
  32. vec3 normalUpdated = normal;
  33. #endif
  34. #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
  35. #include<instancesVertex>
  36. #include<bonesVertex>
  37. vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);
  38. #ifdef NORMAL
  39. mat3 normWorldSM = mat3(finalWorld);
  40. #ifdef NONUNIFORMSCALING
  41. normWorldSM = transposeMat3(inverseMat3(normWorldSM));
  42. #endif
  43. vec3 vNormalW = normalize(normWorldSM * normalUpdated);
  44. #endif
  45. #include<shadowMapVertexNormalBias>
  46. // Projection.
  47. gl_Position = viewProjection * worldPos;
  48. #include<shadowMapVertexMetric>
  49. #ifdef ALPHATEST
  50. #ifdef UV1
  51. vUV = vec2(diffuseMatrix * vec4(uvUpdated, 1.0, 0.0));
  52. #endif
  53. #ifdef UV2
  54. vUV = vec2(diffuseMatrix * vec4(uv2, 1.0, 0.0));
  55. #endif
  56. #endif
  57. #include<clipPlaneVertex>
  58. }