simple.vertex.fx.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { Effect } from "babylonjs";
  2. let name = 'simpleVertexShader';
  3. let shader = `precision highp float;
  4. attribute vec3 position;
  5. #ifdef NORMAL
  6. attribute vec3 normal;
  7. #endif
  8. #ifdef UV1
  9. attribute vec2 uv;
  10. #endif
  11. #ifdef UV2
  12. attribute vec2 uv2;
  13. #endif
  14. #ifdef VERTEXCOLOR
  15. attribute vec4 color;
  16. #endif
  17. #include<bonesDeclaration>
  18. #include<instancesDeclaration>
  19. uniform mat4 view;
  20. uniform mat4 viewProjection;
  21. #ifdef DIFFUSE
  22. varying vec2 vDiffuseUV;
  23. uniform mat4 diffuseMatrix;
  24. uniform vec2 vDiffuseInfos;
  25. #endif
  26. #ifdef POINTSIZE
  27. uniform float pointSize;
  28. #endif
  29. varying vec3 vPositionW;
  30. #ifdef NORMAL
  31. varying vec3 vNormalW;
  32. #endif
  33. #ifdef VERTEXCOLOR
  34. varying vec4 vColor;
  35. #endif
  36. #include<clipPlaneVertexDeclaration>
  37. #include<fogVertexDeclaration>
  38. #include<__decl__lightFragment>[0..maxSimultaneousLights]
  39. void main(void) {
  40. #include<instancesVertex>
  41. #include<bonesVertex>
  42. gl_Position=viewProjection*finalWorld*vec4(position,1.0);
  43. vec4 worldPos=finalWorld*vec4(position,1.0);
  44. vPositionW=vec3(worldPos);
  45. #ifdef NORMAL
  46. vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
  47. #endif
  48. #ifndef UV1
  49. vec2 uv=vec2(0.,0.);
  50. #endif
  51. #ifndef UV2
  52. vec2 uv2=vec2(0.,0.);
  53. #endif
  54. #ifdef DIFFUSE
  55. if (vDiffuseInfos.x == 0.)
  56. {
  57. vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));
  58. }
  59. else
  60. {
  61. vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));
  62. }
  63. #endif
  64. #include<clipPlaneVertex>
  65. #include<fogVertex>
  66. #include<shadowsVertex>[0..maxSimultaneousLights]
  67. #ifdef VERTEXCOLOR
  68. vColor=color;
  69. #endif
  70. #ifdef POINTSIZE
  71. gl_PointSize=pointSize;
  72. #endif
  73. }
  74. `;
  75. Effect.ShadersStore[name] = shader;
  76. export { shader, name };