@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.
- package/cell/cellMaterial.d.ts +8 -3
- package/cell/cellMaterial.js +21 -4
- package/cell/cellMaterial.js.map +1 -1
- package/cell/wgsl/cell.fragment.d.ts +18 -0
- package/cell/wgsl/cell.fragment.js +99 -0
- package/cell/wgsl/cell.fragment.js.map +1 -0
- package/cell/wgsl/cell.vertex.d.ts +21 -0
- package/cell/wgsl/cell.vertex.js +101 -0
- package/cell/wgsl/cell.vertex.js.map +1 -0
- package/fire/fireMaterial.d.ts +8 -3
- package/fire/fireMaterial.js +21 -4
- package/fire/fireMaterial.js.map +1 -1
- package/fire/wgsl/fire.fragment.d.ts +13 -0
- package/fire/wgsl/fire.fragment.js +63 -0
- package/fire/wgsl/fire.fragment.js.map +1 -0
- package/fire/wgsl/fire.vertex.d.ts +18 -0
- package/fire/wgsl/fire.vertex.js +78 -0
- package/fire/wgsl/fire.vertex.js.map +1 -0
- package/fur/furMaterial.d.ts +8 -3
- package/fur/furMaterial.js +21 -4
- package/fur/furMaterial.js.map +1 -1
- package/fur/wgsl/fur.fragment.d.ts +18 -0
- package/fur/wgsl/fur.fragment.js +94 -0
- package/fur/wgsl/fur.fragment.js.map +1 -0
- package/fur/wgsl/fur.vertex.d.ts +21 -0
- package/fur/wgsl/fur.vertex.js +127 -0
- package/fur/wgsl/fur.vertex.js.map +1 -0
- package/gradient/gradientMaterial.d.ts +8 -3
- package/gradient/gradientMaterial.js +21 -4
- package/gradient/gradientMaterial.js.map +1 -1
- package/gradient/wgsl/gradient.fragment.d.ts +18 -0
- package/gradient/wgsl/gradient.fragment.js +79 -0
- package/gradient/wgsl/gradient.fragment.js.map +1 -0
- package/gradient/wgsl/gradient.vertex.d.ts +21 -0
- package/gradient/wgsl/gradient.vertex.js +92 -0
- package/gradient/wgsl/gradient.vertex.js.map +1 -0
- package/grid/gridMaterial.d.ts +3 -3
- package/grid/gridMaterial.js +16 -4
- package/grid/gridMaterial.js.map +1 -1
- package/grid/wgsl/grid.fragment.d.ts +12 -0
- package/grid/wgsl/grid.fragment.js +74 -0
- package/grid/wgsl/grid.fragment.js.map +1 -0
- package/grid/wgsl/grid.vertex.d.ts +14 -0
- package/grid/wgsl/grid.vertex.js +65 -0
- package/grid/wgsl/grid.vertex.js.map +1 -0
- package/lava/lavaMaterial.d.ts +8 -3
- package/lava/lavaMaterial.js +21 -4
- package/lava/lavaMaterial.js.map +1 -1
- package/lava/wgsl/lava.fragment.d.ts +18 -0
- package/lava/wgsl/lava.fragment.js +89 -0
- package/lava/wgsl/lava.fragment.js.map +1 -0
- package/lava/wgsl/lava.vertex.d.ts +21 -0
- package/lava/wgsl/lava.vertex.js +116 -0
- package/lava/wgsl/lava.vertex.js.map +1 -0
- package/mix/mixMaterial.d.ts +8 -3
- package/mix/mixMaterial.js +21 -4
- package/mix/mixMaterial.js.map +1 -1
- package/mix/wgsl/mix.fragment.d.ts +18 -0
- package/mix/wgsl/mix.fragment.js +106 -0
- package/mix/wgsl/mix.fragment.js.map +1 -0
- package/mix/wgsl/mix.vertex.d.ts +21 -0
- package/mix/wgsl/mix.vertex.js +101 -0
- package/mix/wgsl/mix.vertex.js.map +1 -0
- package/normal/normalMaterial.d.ts +8 -3
- package/normal/normalMaterial.js +21 -4
- package/normal/normalMaterial.js.map +1 -1
- package/normal/wgsl/normal.fragment.d.ts +18 -0
- package/normal/wgsl/normal.fragment.js +85 -0
- package/normal/wgsl/normal.fragment.js.map +1 -0
- package/normal/wgsl/normal.vertex.d.ts +20 -0
- package/normal/wgsl/normal.vertex.js +93 -0
- package/normal/wgsl/normal.vertex.js.map +1 -0
- package/package.json +2 -2
- package/shadowOnly/shadowOnlyMaterial.d.ts +8 -3
- package/shadowOnly/shadowOnlyMaterial.js +21 -4
- package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
- package/shadowOnly/wgsl/shadowOnly.fragment.d.ts +17 -0
- package/shadowOnly/wgsl/shadowOnly.fragment.js +57 -0
- package/shadowOnly/wgsl/shadowOnly.fragment.js.map +1 -0
- package/shadowOnly/wgsl/shadowOnly.vertex.d.ts +21 -0
- package/shadowOnly/wgsl/shadowOnly.vertex.js +69 -0
- package/shadowOnly/wgsl/shadowOnly.vertex.js.map +1 -0
- package/simple/simpleMaterial.d.ts +8 -3
- package/simple/simpleMaterial.js +21 -4
- package/simple/simpleMaterial.js.map +1 -1
- package/simple/wgsl/simple.fragment.d.ts +18 -0
- package/simple/wgsl/simple.fragment.js +81 -0
- package/simple/wgsl/simple.fragment.js.map +1 -0
- package/simple/wgsl/simple.vertex.d.ts +21 -0
- package/simple/wgsl/simple.vertex.js +101 -0
- package/simple/wgsl/simple.vertex.js.map +1 -0
- package/sky/skyMaterial.d.ts +3 -3
- package/sky/skyMaterial.js +26 -5
- package/sky/skyMaterial.js.map +1 -1
- package/sky/wgsl/sky.fragment.d.ts +13 -0
- package/sky/wgsl/sky.fragment.js +69 -0
- package/sky/wgsl/sky.fragment.js.map +1 -0
- package/sky/wgsl/sky.vertex.d.ts +11 -0
- package/sky/wgsl/sky.vertex.js +45 -0
- package/sky/wgsl/sky.vertex.js.map +1 -0
- package/terrain/terrainMaterial.d.ts +8 -3
- package/terrain/terrainMaterial.js +21 -4
- package/terrain/terrainMaterial.js.map +1 -1
- package/terrain/wgsl/terrain.fragment.d.ts +18 -0
- package/terrain/wgsl/terrain.fragment.js +108 -0
- package/terrain/wgsl/terrain.fragment.js.map +1 -0
- package/terrain/wgsl/terrain.vertex.d.ts +21 -0
- package/terrain/wgsl/terrain.vertex.js +101 -0
- package/terrain/wgsl/terrain.vertex.js.map +1 -0
- package/triPlanar/triPlanarMaterial.d.ts +8 -3
- package/triPlanar/triPlanarMaterial.js +21 -4
- package/triPlanar/triPlanarMaterial.js.map +1 -1
- package/triPlanar/wgsl/triplanar.fragment.d.ts +18 -0
- package/triPlanar/wgsl/triplanar.fragment.js +125 -0
- package/triPlanar/wgsl/triplanar.fragment.js.map +1 -0
- package/triPlanar/wgsl/triplanar.vertex.d.ts +22 -0
- package/triPlanar/wgsl/triplanar.vertex.js +102 -0
- package/triPlanar/wgsl/triplanar.vertex.js.map +1 -0
- package/water/waterMaterial.d.ts +3 -3
- package/water/waterMaterial.js +16 -4
- package/water/waterMaterial.js.map +1 -1
- package/water/wgsl/water.fragment.d.ts +18 -0
- package/water/wgsl/water.fragment.js +159 -0
- package/water/wgsl/water.fragment.js.map +1 -0
- package/water/wgsl/water.vertex.d.ts +21 -0
- package/water/wgsl/water.vertex.js +138 -0
- 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"]}
|