gradient.vertex.fx.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { Effect } from "babylonjs";
  2. let name = 'gradientVertexShader';
  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. varying vec3 vPosition;
  31. #ifdef NORMAL
  32. varying vec3 vNormalW;
  33. #endif
  34. #ifdef VERTEXCOLOR
  35. varying vec4 vColor;
  36. #endif
  37. #include<clipPlaneVertexDeclaration>
  38. #include<fogVertexDeclaration>
  39. #include<__decl__lightFragment>[0..maxSimultaneousLights]
  40. void main(void) {
  41. #include<instancesVertex>
  42. #include<bonesVertex>
  43. gl_Position=viewProjection*finalWorld*vec4(position,1.0);
  44. vec4 worldPos=finalWorld*vec4(position,1.0);
  45. vPositionW=vec3(worldPos);
  46. vPosition=position;
  47. #ifdef NORMAL
  48. vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
  49. #endif
  50. #ifndef UV1
  51. vec2 uv=vec2(0.,0.);
  52. #endif
  53. #ifndef UV2
  54. vec2 uv2=vec2(0.,0.);
  55. #endif
  56. #ifdef DIFFUSE
  57. if (vDiffuseInfos.x == 0.)
  58. {
  59. vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));
  60. }
  61. else
  62. {
  63. vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));
  64. }
  65. #endif
  66. #include<clipPlaneVertex>
  67. #include<fogVertex>
  68. #include<shadowsVertex>[0..maxSimultaneousLights]
  69. #ifdef VERTEXCOLOR
  70. vColor=color;
  71. #endif
  72. #ifdef POINTSIZE
  73. gl_PointSize=pointSize;
  74. #endif
  75. }
  76. `;
  77. Effect.ShadersStore[name] = shader;
  78. export { shader, name };