@babylonjs/materials 9.4.1 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/cell/cellMaterial.d.ts +8 -3
  2. package/cell/cellMaterial.js +21 -4
  3. package/cell/cellMaterial.js.map +1 -1
  4. package/cell/wgsl/cell.fragment.d.ts +18 -0
  5. package/cell/wgsl/cell.fragment.js +99 -0
  6. package/cell/wgsl/cell.fragment.js.map +1 -0
  7. package/cell/wgsl/cell.vertex.d.ts +21 -0
  8. package/cell/wgsl/cell.vertex.js +101 -0
  9. package/cell/wgsl/cell.vertex.js.map +1 -0
  10. package/fire/fireMaterial.d.ts +8 -3
  11. package/fire/fireMaterial.js +21 -4
  12. package/fire/fireMaterial.js.map +1 -1
  13. package/fire/wgsl/fire.fragment.d.ts +13 -0
  14. package/fire/wgsl/fire.fragment.js +63 -0
  15. package/fire/wgsl/fire.fragment.js.map +1 -0
  16. package/fire/wgsl/fire.vertex.d.ts +18 -0
  17. package/fire/wgsl/fire.vertex.js +78 -0
  18. package/fire/wgsl/fire.vertex.js.map +1 -0
  19. package/fur/furMaterial.d.ts +8 -3
  20. package/fur/furMaterial.js +21 -4
  21. package/fur/furMaterial.js.map +1 -1
  22. package/fur/wgsl/fur.fragment.d.ts +18 -0
  23. package/fur/wgsl/fur.fragment.js +94 -0
  24. package/fur/wgsl/fur.fragment.js.map +1 -0
  25. package/fur/wgsl/fur.vertex.d.ts +21 -0
  26. package/fur/wgsl/fur.vertex.js +127 -0
  27. package/fur/wgsl/fur.vertex.js.map +1 -0
  28. package/gradient/gradientMaterial.d.ts +8 -3
  29. package/gradient/gradientMaterial.js +21 -4
  30. package/gradient/gradientMaterial.js.map +1 -1
  31. package/gradient/wgsl/gradient.fragment.d.ts +18 -0
  32. package/gradient/wgsl/gradient.fragment.js +79 -0
  33. package/gradient/wgsl/gradient.fragment.js.map +1 -0
  34. package/gradient/wgsl/gradient.vertex.d.ts +21 -0
  35. package/gradient/wgsl/gradient.vertex.js +92 -0
  36. package/gradient/wgsl/gradient.vertex.js.map +1 -0
  37. package/grid/gridMaterial.d.ts +3 -3
  38. package/grid/gridMaterial.js +16 -4
  39. package/grid/gridMaterial.js.map +1 -1
  40. package/grid/wgsl/grid.fragment.d.ts +12 -0
  41. package/grid/wgsl/grid.fragment.js +74 -0
  42. package/grid/wgsl/grid.fragment.js.map +1 -0
  43. package/grid/wgsl/grid.vertex.d.ts +14 -0
  44. package/grid/wgsl/grid.vertex.js +65 -0
  45. package/grid/wgsl/grid.vertex.js.map +1 -0
  46. package/lava/lavaMaterial.d.ts +8 -3
  47. package/lava/lavaMaterial.js +21 -4
  48. package/lava/lavaMaterial.js.map +1 -1
  49. package/lava/wgsl/lava.fragment.d.ts +18 -0
  50. package/lava/wgsl/lava.fragment.js +89 -0
  51. package/lava/wgsl/lava.fragment.js.map +1 -0
  52. package/lava/wgsl/lava.vertex.d.ts +21 -0
  53. package/lava/wgsl/lava.vertex.js +116 -0
  54. package/lava/wgsl/lava.vertex.js.map +1 -0
  55. package/mix/mixMaterial.d.ts +8 -3
  56. package/mix/mixMaterial.js +21 -4
  57. package/mix/mixMaterial.js.map +1 -1
  58. package/mix/wgsl/mix.fragment.d.ts +18 -0
  59. package/mix/wgsl/mix.fragment.js +106 -0
  60. package/mix/wgsl/mix.fragment.js.map +1 -0
  61. package/mix/wgsl/mix.vertex.d.ts +21 -0
  62. package/mix/wgsl/mix.vertex.js +101 -0
  63. package/mix/wgsl/mix.vertex.js.map +1 -0
  64. package/normal/normalMaterial.d.ts +8 -3
  65. package/normal/normalMaterial.js +21 -4
  66. package/normal/normalMaterial.js.map +1 -1
  67. package/normal/wgsl/normal.fragment.d.ts +18 -0
  68. package/normal/wgsl/normal.fragment.js +85 -0
  69. package/normal/wgsl/normal.fragment.js.map +1 -0
  70. package/normal/wgsl/normal.vertex.d.ts +20 -0
  71. package/normal/wgsl/normal.vertex.js +93 -0
  72. package/normal/wgsl/normal.vertex.js.map +1 -0
  73. package/package.json +2 -2
  74. package/shadowOnly/shadowOnlyMaterial.d.ts +8 -3
  75. package/shadowOnly/shadowOnlyMaterial.js +21 -4
  76. package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
  77. package/shadowOnly/wgsl/shadowOnly.fragment.d.ts +17 -0
  78. package/shadowOnly/wgsl/shadowOnly.fragment.js +57 -0
  79. package/shadowOnly/wgsl/shadowOnly.fragment.js.map +1 -0
  80. package/shadowOnly/wgsl/shadowOnly.vertex.d.ts +21 -0
  81. package/shadowOnly/wgsl/shadowOnly.vertex.js +69 -0
  82. package/shadowOnly/wgsl/shadowOnly.vertex.js.map +1 -0
  83. package/simple/simpleMaterial.d.ts +8 -3
  84. package/simple/simpleMaterial.js +21 -4
  85. package/simple/simpleMaterial.js.map +1 -1
  86. package/simple/wgsl/simple.fragment.d.ts +18 -0
  87. package/simple/wgsl/simple.fragment.js +81 -0
  88. package/simple/wgsl/simple.fragment.js.map +1 -0
  89. package/simple/wgsl/simple.vertex.d.ts +21 -0
  90. package/simple/wgsl/simple.vertex.js +101 -0
  91. package/simple/wgsl/simple.vertex.js.map +1 -0
  92. package/sky/skyMaterial.d.ts +3 -3
  93. package/sky/skyMaterial.js +26 -5
  94. package/sky/skyMaterial.js.map +1 -1
  95. package/sky/wgsl/sky.fragment.d.ts +13 -0
  96. package/sky/wgsl/sky.fragment.js +69 -0
  97. package/sky/wgsl/sky.fragment.js.map +1 -0
  98. package/sky/wgsl/sky.vertex.d.ts +11 -0
  99. package/sky/wgsl/sky.vertex.js +45 -0
  100. package/sky/wgsl/sky.vertex.js.map +1 -0
  101. package/terrain/terrainMaterial.d.ts +8 -3
  102. package/terrain/terrainMaterial.js +21 -4
  103. package/terrain/terrainMaterial.js.map +1 -1
  104. package/terrain/wgsl/terrain.fragment.d.ts +18 -0
  105. package/terrain/wgsl/terrain.fragment.js +108 -0
  106. package/terrain/wgsl/terrain.fragment.js.map +1 -0
  107. package/terrain/wgsl/terrain.vertex.d.ts +21 -0
  108. package/terrain/wgsl/terrain.vertex.js +101 -0
  109. package/terrain/wgsl/terrain.vertex.js.map +1 -0
  110. package/triPlanar/triPlanarMaterial.d.ts +8 -3
  111. package/triPlanar/triPlanarMaterial.js +21 -4
  112. package/triPlanar/triPlanarMaterial.js.map +1 -1
  113. package/triPlanar/wgsl/triplanar.fragment.d.ts +18 -0
  114. package/triPlanar/wgsl/triplanar.fragment.js +125 -0
  115. package/triPlanar/wgsl/triplanar.fragment.js.map +1 -0
  116. package/triPlanar/wgsl/triplanar.vertex.d.ts +22 -0
  117. package/triPlanar/wgsl/triplanar.vertex.js +102 -0
  118. package/triPlanar/wgsl/triplanar.vertex.js.map +1 -0
  119. package/water/waterMaterial.d.ts +3 -3
  120. package/water/waterMaterial.js +16 -4
  121. package/water/waterMaterial.js.map +1 -1
  122. package/water/wgsl/water.fragment.d.ts +18 -0
  123. package/water/wgsl/water.fragment.js +159 -0
  124. package/water/wgsl/water.fragment.js.map +1 -0
  125. package/water/wgsl/water.vertex.d.ts +21 -0
  126. package/water/wgsl/water.vertex.js +138 -0
  127. package/water/wgsl/water.vertex.js.map +1 -0
@@ -0,0 +1,138 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/bonesDeclaration.js";
4
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js";
5
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/instancesDeclaration.js";
6
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js";
7
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js";
8
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js";
9
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js";
10
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/logDepthDeclaration.js";
11
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/instancesVertex.js";
12
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/bonesVertex.js";
13
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js";
14
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneVertex.js";
15
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/fogVertex.js";
16
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/shadowsVertex.js";
17
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/vertexColorMixing.js";
18
+ import "@babylonjs/core/ShadersWGSL/ShadersInclude/logDepthVertex.js";
19
+ const name = "waterVertexShader";
20
+ const shader = `attribute position: vec3f;
21
+ #ifdef NORMAL
22
+ attribute normal: vec3f;
23
+ #endif
24
+ #ifdef UV1
25
+ attribute uv: vec2f;
26
+ #endif
27
+ #ifdef UV2
28
+ attribute uv2: vec2f;
29
+ #endif
30
+ #ifdef VERTEXCOLOR
31
+ attribute color: vec4f;
32
+ #endif
33
+ #include<bonesDeclaration>
34
+ #include<bakedVertexAnimationDeclaration>
35
+ #include<instancesDeclaration>
36
+ uniform view: mat4x4f;uniform viewProjection: mat4x4f;
37
+ #ifdef BUMP
38
+ varying vNormalUV: vec2f;
39
+ #ifdef BUMPSUPERIMPOSE
40
+ varying vNormalUV2: vec2f;
41
+ #endif
42
+ uniform normalMatrix: mat4x4f;uniform vNormalInfos: vec2f;
43
+ #endif
44
+ #ifdef POINTSIZE
45
+ uniform pointSize: f32;
46
+ #endif
47
+ varying vPositionW: vec3f;
48
+ #ifdef NORMAL
49
+ varying vNormalW: vec3f;
50
+ #endif
51
+ #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
52
+ varying vColor: vec4f;
53
+ #endif
54
+ #include<clipPlaneVertexDeclaration>
55
+ #include<fogVertexDeclaration>
56
+ #include<__decl__lightVxFragment>[0..maxSimultaneousLights]
57
+ #include<logDepthDeclaration>
58
+ uniform reflectionViewProjection: mat4x4f;uniform windDirection: vec2f;uniform waveLength: f32;uniform time: f32;uniform windForce: f32;uniform waveHeight: f32;uniform waveSpeed: f32;uniform waveCount: f32;varying vRefractionMapTexCoord: vec3f;varying vReflectionMapTexCoord: vec3f;
59
+ #if defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0
60
+ varying vViewDepth: f32;
61
+ #endif
62
+ #define CUSTOM_VERTEX_DEFINITIONS
63
+ @vertex
64
+ fn main(input : VertexInputs)->FragmentInputs {
65
+ #define CUSTOM_VERTEX_MAIN_BEGIN
66
+ #ifdef VERTEXCOLOR
67
+ var colorUpdated: vec4f=vertexInputs.color;
68
+ #endif
69
+ #include<instancesVertex>
70
+ #include<bonesVertex>
71
+ #include<bakedVertexAnimation>
72
+ var worldPos: vec4f=finalWorld* vec4f(vertexInputs.position,1.0);vertexOutputs.vPositionW= worldPos.xyz;
73
+ #ifdef NORMAL
74
+ vertexOutputs.vNormalW=normalize(( finalWorld* vec4f(vertexInputs.normal,0.0)).xyz);
75
+ #endif
76
+ #ifndef UV1
77
+ var uv: vec2f= vec2f(0.,0.);
78
+ #else
79
+ var uv: vec2f=vertexInputs.uv;
80
+ #endif
81
+ #ifndef UV2
82
+ var uv2: vec2f= vec2f(0.,0.);
83
+ #else
84
+ var uv2: vec2f=vertexInputs.uv2;
85
+ #endif
86
+ #ifdef BUMP
87
+ if (uniforms.vNormalInfos.x==0.)
88
+ {vertexOutputs.vNormalUV=(uniforms.normalMatrix* vec4f((uv*1.0)/uniforms.waveLength+uniforms.time*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;
89
+ #ifdef BUMPSUPERIMPOSE
90
+ vertexOutputs.vNormalUV2=(uniforms.normalMatrix* vec4f((uv*0.721)/uniforms.waveLength+uniforms.time*1.2*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;
91
+ #endif
92
+ }
93
+ else
94
+ {vertexOutputs.vNormalUV=(uniforms.normalMatrix* vec4f((uv2*1.0)/uniforms.waveLength+uniforms.time*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;
95
+ #ifdef BUMPSUPERIMPOSE
96
+ vertexOutputs.vNormalUV2=(uniforms.normalMatrix* vec4f((uv2*0.721)/uniforms.waveLength+uniforms.time*1.2*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;
97
+ #endif
98
+ }
99
+ #endif
100
+ #include<clipPlaneVertex>
101
+ #include<fogVertex>
102
+ #include<shadowsVertex>[0..maxSimultaneousLights]
103
+ #include<vertexColorMixing>
104
+ var finalWaveCount: f32=1.0/(uniforms.waveCount*0.5);
105
+ #ifdef USE_WORLD_COORDINATES
106
+ var p: vec3f=worldPos.xyz;
107
+ #else
108
+ var p: vec3f=vertexInputs.position;
109
+ #endif
110
+ var newY: f32=(sin(((p.x/finalWaveCount)+uniforms.time*uniforms.waveSpeed))*uniforms.waveHeight*uniforms.windDirection.x*5.0)
111
+ + (cos(((p.z/finalWaveCount)+uniforms.time*uniforms.waveSpeed))*uniforms.waveHeight*uniforms.windDirection.y*5.0);p.y=p.y+abs(newY);
112
+ #ifdef USE_WORLD_COORDINATES
113
+ vertexOutputs.position=uniforms.viewProjection* vec4f(p,1.0);
114
+ #else
115
+ vertexOutputs.position=uniforms.viewProjection*finalWorld* vec4f(p,1.0);
116
+ #endif
117
+ #ifdef REFLECTION
118
+ vertexOutputs.vRefractionMapTexCoord=vec3f(
119
+ 0.5*(vertexOutputs.position.w+vertexOutputs.position.x),
120
+ 0.5*(vertexOutputs.position.w+vertexOutputs.position.y),
121
+ vertexOutputs.position.w
122
+ );worldPos=uniforms.reflectionViewProjection*finalWorld* vec4f(vertexInputs.position,1.0);vertexOutputs.vReflectionMapTexCoord=vec3f(
123
+ 0.5*(worldPos.w+worldPos.x),
124
+ 0.5*(worldPos.w+worldPos.y),
125
+ worldPos.w
126
+ );
127
+ #endif
128
+ #include<logDepthVertex>
129
+ #define CUSTOM_VERTEX_MAIN_END
130
+ }
131
+ `;
132
+ // Sideeffect
133
+ if (!ShaderStore.ShadersStoreWGSL[name]) {
134
+ ShaderStore.ShadersStoreWGSL[name] = shader;
135
+ }
136
+ /** @internal */
137
+ export const waterVertexShaderWGSL = { name, shader };
138
+ //# sourceMappingURL=water.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"water.vertex.js","sourceRoot":"","sources":["../../../../../dev/materials/src/water/wgsl/water.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,iEAAiE,CAAC;AACzE,OAAO,sDAAsD,CAAC;AAC9D,OAAO,4DAA4D,CAAC;AACpE,OAAO,sDAAsD,CAAC;AAC9D,OAAO,4DAA4D,CAAC;AACpE,OAAO,uDAAuD,CAAC;AAC/D,OAAO,qDAAqD,CAAC;AAC7D,OAAO,iDAAiD,CAAC;AACzD,OAAO,6CAA6C,CAAC;AACrD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,iDAAiD,CAAC;AACzD,OAAO,2CAA2C,CAAC;AACnD,OAAO,+CAA+C,CAAC;AACvD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,gDAAgD,CAAC;AAExD,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Gd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/ShadersWGSL/ShadersInclude/bonesDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/instancesDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/fogVertexDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/lightVxUboDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/logDepthDeclaration\";\nimport \"core/ShadersWGSL/ShadersInclude/instancesVertex\";\nimport \"core/ShadersWGSL/ShadersInclude/bonesVertex\";\nimport \"core/ShadersWGSL/ShadersInclude/bakedVertexAnimation\";\nimport \"core/ShadersWGSL/ShadersInclude/clipPlaneVertex\";\nimport \"core/ShadersWGSL/ShadersInclude/fogVertex\";\nimport \"core/ShadersWGSL/ShadersInclude/shadowsVertex\";\nimport \"core/ShadersWGSL/ShadersInclude/vertexColorMixing\";\nimport \"core/ShadersWGSL/ShadersInclude/logDepthVertex\";\n\nconst name = \"waterVertexShader\";\nconst shader = `attribute position: vec3f;\n#ifdef NORMAL\nattribute normal: vec3f;\n#endif\n#ifdef UV1\nattribute uv: vec2f;\n#endif\n#ifdef UV2\nattribute uv2: vec2f;\n#endif\n#ifdef VERTEXCOLOR\nattribute color: vec4f;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform view: mat4x4f;uniform viewProjection: mat4x4f;\n#ifdef BUMP\nvarying vNormalUV: vec2f;\n#ifdef BUMPSUPERIMPOSE\nvarying vNormalUV2: vec2f;\n#endif\nuniform normalMatrix: mat4x4f;uniform vNormalInfos: vec2f;\n#endif\n#ifdef POINTSIZE\nuniform pointSize: f32;\n#endif\nvarying vPositionW: vec3f;\n#ifdef NORMAL\nvarying vNormalW: vec3f;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vColor: vec4f;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\nuniform reflectionViewProjection: mat4x4f;uniform windDirection: vec2f;uniform waveLength: f32;uniform time: f32;uniform windForce: f32;uniform waveHeight: f32;uniform waveSpeed: f32;uniform waveCount: f32;varying vRefractionMapTexCoord: vec3f;varying vReflectionMapTexCoord: vec3f;\n#if defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0\nvarying vViewDepth: f32;\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#ifdef VERTEXCOLOR\nvar colorUpdated: vec4f=vertexInputs.color;\n#endif\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvar worldPos: vec4f=finalWorld* vec4f(vertexInputs.position,1.0);vertexOutputs.vPositionW= worldPos.xyz;\n#ifdef NORMAL\nvertexOutputs.vNormalW=normalize(( finalWorld* vec4f(vertexInputs.normal,0.0)).xyz);\n#endif\n#ifndef UV1\nvar uv: vec2f= vec2f(0.,0.);\n#else\nvar uv: vec2f=vertexInputs.uv;\n#endif\n#ifndef UV2\nvar uv2: vec2f= vec2f(0.,0.);\n#else\nvar uv2: vec2f=vertexInputs.uv2;\n#endif\n#ifdef BUMP\nif (uniforms.vNormalInfos.x==0.)\n{vertexOutputs.vNormalUV=(uniforms.normalMatrix* vec4f((uv*1.0)/uniforms.waveLength+uniforms.time*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;\n#ifdef BUMPSUPERIMPOSE\nvertexOutputs.vNormalUV2=(uniforms.normalMatrix* vec4f((uv*0.721)/uniforms.waveLength+uniforms.time*1.2*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;\n#endif\n}\nelse\n{vertexOutputs.vNormalUV=(uniforms.normalMatrix* vec4f((uv2*1.0)/uniforms.waveLength+uniforms.time*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;\n#ifdef BUMPSUPERIMPOSE\nvertexOutputs.vNormalUV2=(uniforms.normalMatrix* vec4f((uv2*0.721)/uniforms.waveLength+uniforms.time*1.2*uniforms.windForce*uniforms.windDirection,1.0,0.0)).xy;\n#endif\n}\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\nvar finalWaveCount: f32=1.0/(uniforms.waveCount*0.5);\n#ifdef USE_WORLD_COORDINATES\nvar p: vec3f=worldPos.xyz;\n#else\nvar p: vec3f=vertexInputs.position;\n#endif\nvar newY: f32=(sin(((p.x/finalWaveCount)+uniforms.time*uniforms.waveSpeed))*uniforms.waveHeight*uniforms.windDirection.x*5.0)\n+ (cos(((p.z/finalWaveCount)+uniforms.time*uniforms.waveSpeed))*uniforms.waveHeight*uniforms.windDirection.y*5.0);p.y=p.y+abs(newY);\n#ifdef USE_WORLD_COORDINATES\nvertexOutputs.position=uniforms.viewProjection* vec4f(p,1.0);\n#else\nvertexOutputs.position=uniforms.viewProjection*finalWorld* vec4f(p,1.0);\n#endif\n#ifdef REFLECTION\nvertexOutputs.vRefractionMapTexCoord=vec3f(\n0.5*(vertexOutputs.position.w+vertexOutputs.position.x),\n0.5*(vertexOutputs.position.w+vertexOutputs.position.y),\nvertexOutputs.position.w\n);worldPos=uniforms.reflectionViewProjection*finalWorld* vec4f(vertexInputs.position,1.0);vertexOutputs.vReflectionMapTexCoord=vec3f(\n0.5*(worldPos.w+worldPos.x),\n0.5*(worldPos.w+worldPos.y),\nworldPos.w\n);\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nif (!ShaderStore.ShadersStoreWGSL[name]) {\n ShaderStore.ShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const waterVertexShaderWGSL = { name, shader };\n"]}