fire.vertex.fx.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { Effect } from "babylonjs";
  2. let name = 'fireVertexShader';
  3. let shader = `precision highp float;
  4. attribute vec3 position;
  5. #ifdef UV1
  6. attribute vec2 uv;
  7. #endif
  8. #ifdef UV2
  9. attribute vec2 uv2;
  10. #endif
  11. #ifdef VERTEXCOLOR
  12. attribute vec4 color;
  13. #endif
  14. #include<bonesDeclaration>
  15. #include<instancesDeclaration>
  16. uniform mat4 view;
  17. uniform mat4 viewProjection;
  18. #ifdef DIFFUSE
  19. varying vec2 vDiffuseUV;
  20. #endif
  21. #ifdef POINTSIZE
  22. uniform float pointSize;
  23. #endif
  24. varying vec3 vPositionW;
  25. #ifdef VERTEXCOLOR
  26. varying vec4 vColor;
  27. #endif
  28. #include<clipPlaneVertexDeclaration>
  29. #include<fogVertexDeclaration>
  30. uniform float time;
  31. uniform float speed;
  32. #ifdef DIFFUSE
  33. varying vec2 vDistortionCoords1;
  34. varying vec2 vDistortionCoords2;
  35. varying vec2 vDistortionCoords3;
  36. #endif
  37. void main(void) {
  38. #include<instancesVertex>
  39. #include<bonesVertex>
  40. gl_Position=viewProjection*finalWorld*vec4(position,1.0);
  41. vec4 worldPos=finalWorld*vec4(position,1.0);
  42. vPositionW=vec3(worldPos);
  43. #ifdef DIFFUSE
  44. vDiffuseUV=uv;
  45. vDiffuseUV.y-=0.2;
  46. #endif
  47. #include<clipPlaneVertex>
  48. #include<fogVertex>
  49. #ifdef VERTEXCOLOR
  50. vColor=color;
  51. #endif
  52. #ifdef POINTSIZE
  53. gl_PointSize=pointSize;
  54. #endif
  55. #ifdef DIFFUSE
  56. vec3 layerSpeed=vec3(-0.2,-0.52,-0.1)*speed;
  57. vDistortionCoords1.x=uv.x;
  58. vDistortionCoords1.y=uv.y+layerSpeed.x*time/1000.0;
  59. vDistortionCoords2.x=uv.x;
  60. vDistortionCoords2.y=uv.y+layerSpeed.y*time/1000.0;
  61. vDistortionCoords3.x=uv.x;
  62. vDistortionCoords3.y=uv.y+layerSpeed.z*time/1000.0;
  63. #endif
  64. }
  65. `;
  66. Effect.ShadersStore[name] = shader;
  67. export { shader, name };