@babylonjs/materials 5.0.0-alpha.9 → 5.0.0-beta.11
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/cell.fragment.js +15 -15
- package/cell/cell.fragment.js.map +1 -1
- package/cell/cell.vertex.d.ts +2 -0
- package/cell/cell.vertex.js +16 -14
- package/cell/cell.vertex.js.map +1 -1
- package/cell/cellMaterial.d.ts +1 -1
- package/cell/cellMaterial.js +22 -20
- package/cell/cellMaterial.js.map +1 -1
- package/cell/index.js +1 -1
- package/custom/customMaterial.d.ts +4 -2
- package/custom/customMaterial.js +10 -5
- package/custom/customMaterial.js.map +1 -1
- package/custom/index.js +2 -2
- package/custom/pbrCustomMaterial.d.ts +6 -2
- package/custom/pbrCustomMaterial.js +19 -8
- package/custom/pbrCustomMaterial.js.map +1 -1
- package/fire/fire.fragment.js +9 -9
- package/fire/fire.fragment.js.map +1 -1
- package/fire/fire.vertex.d.ts +2 -0
- package/fire/fire.vertex.js +13 -11
- package/fire/fire.vertex.js.map +1 -1
- package/fire/fireMaterial.d.ts +1 -1
- package/fire/fireMaterial.js +23 -21
- package/fire/fireMaterial.js.map +1 -1
- package/fire/index.js +1 -1
- package/fur/fur.fragment.js +15 -15
- package/fur/fur.fragment.js.map +1 -1
- package/fur/fur.vertex.d.ts +2 -0
- package/fur/fur.vertex.js +16 -14
- package/fur/fur.vertex.js.map +1 -1
- package/fur/furMaterial.d.ts +1 -1
- package/fur/furMaterial.js +26 -24
- package/fur/furMaterial.js.map +1 -1
- package/fur/index.js +1 -1
- package/gradient/gradient.fragment.js +15 -15
- package/gradient/gradient.fragment.js.map +1 -1
- package/gradient/gradient.vertex.d.ts +2 -0
- package/gradient/gradient.vertex.js +16 -14
- package/gradient/gradient.vertex.js.map +1 -1
- package/gradient/gradientMaterial.d.ts +1 -1
- package/gradient/gradientMaterial.js +21 -19
- package/gradient/gradientMaterial.js.map +1 -1
- package/gradient/index.js +1 -1
- package/grid/grid.fragment.js +6 -6
- package/grid/grid.fragment.js.map +1 -1
- package/grid/grid.vertex.js +7 -7
- package/grid/grid.vertex.js.map +1 -1
- package/grid/gridMaterial.d.ts +5 -1
- package/grid/gridMaterial.js +33 -19
- package/grid/gridMaterial.js.map +1 -1
- package/grid/index.js +1 -1
- package/index.d.ts +15 -15
- package/index.js +15 -15
- package/index.js.map +1 -1
- package/lava/index.js +1 -1
- package/lava/lava.fragment.js +15 -15
- package/lava/lava.fragment.js.map +1 -1
- package/lava/lava.vertex.d.ts +2 -0
- package/lava/lava.vertex.js +16 -14
- package/lava/lava.vertex.js.map +1 -1
- package/lava/lavaMaterial.d.ts +1 -1
- package/lava/lavaMaterial.js +22 -20
- package/lava/lavaMaterial.js.map +1 -1
- package/legacy/legacy-cell.js +2 -2
- package/legacy/legacy-custom.js +2 -2
- package/legacy/legacy-fire.js +2 -2
- package/legacy/legacy-fur.js +2 -2
- package/legacy/legacy-gradient.js +2 -2
- package/legacy/legacy-grid.js +2 -2
- package/legacy/legacy-lava.js +2 -2
- package/legacy/legacy-mix.js +2 -2
- package/legacy/legacy-normal.js +2 -2
- package/legacy/legacy-shadowOnly.js +2 -2
- package/legacy/legacy-simple.d.ts +1 -1
- package/legacy/legacy-simple.js +2 -2
- package/legacy/legacy-simple.js.map +1 -1
- package/legacy/legacy-sky.d.ts +1 -1
- package/legacy/legacy-sky.js +2 -2
- package/legacy/legacy-sky.js.map +1 -1
- package/legacy/legacy-terrain.d.ts +1 -1
- package/legacy/legacy-terrain.js +2 -2
- package/legacy/legacy-terrain.js.map +1 -1
- package/legacy/legacy-triPlanar.d.ts +1 -1
- package/legacy/legacy-triPlanar.js +2 -2
- package/legacy/legacy-triPlanar.js.map +1 -1
- package/legacy/legacy-water.d.ts +1 -1
- package/legacy/legacy-water.js +2 -2
- package/legacy/legacy-water.js.map +1 -1
- package/legacy/legacy.js +2 -2
- package/mix/index.js +1 -1
- package/mix/mix.fragment.js +15 -15
- package/mix/mix.fragment.js.map +1 -1
- package/mix/mix.vertex.d.ts +2 -0
- package/mix/mix.vertex.js +16 -14
- package/mix/mix.vertex.js.map +1 -1
- package/mix/mixMaterial.d.ts +1 -1
- package/mix/mixMaterial.js +22 -20
- package/mix/mixMaterial.js.map +1 -1
- package/normal/index.js +1 -1
- package/normal/normal.fragment.js +15 -15
- package/normal/normal.fragment.js.map +1 -1
- package/normal/normal.vertex.d.ts +2 -0
- package/normal/normal.vertex.js +16 -14
- package/normal/normal.vertex.js.map +1 -1
- package/normal/normalMaterial.d.ts +1 -1
- package/normal/normalMaterial.js +21 -20
- package/normal/normalMaterial.js.map +1 -1
- package/package.json +3 -3
- package/shadowOnly/index.js +1 -1
- package/shadowOnly/shadowOnly.fragment.js +14 -14
- package/shadowOnly/shadowOnly.fragment.js.map +1 -1
- package/shadowOnly/shadowOnly.vertex.d.ts +2 -0
- package/shadowOnly/shadowOnly.vertex.js +16 -14
- package/shadowOnly/shadowOnly.vertex.js.map +1 -1
- package/shadowOnly/shadowOnlyMaterial.d.ts +1 -1
- package/shadowOnly/shadowOnlyMaterial.js +20 -19
- package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
- package/simple/index.js +1 -1
- package/simple/simple.fragment.js +15 -15
- package/simple/simple.fragment.js.map +1 -1
- package/simple/simple.vertex.d.ts +2 -0
- package/simple/simple.vertex.js +16 -14
- package/simple/simple.vertex.js.map +1 -1
- package/simple/simpleMaterial.d.ts +1 -1
- package/simple/simpleMaterial.js +22 -20
- package/simple/simpleMaterial.js.map +1 -1
- package/sky/index.js +1 -1
- package/sky/sky.fragment.js +8 -8
- package/sky/sky.fragment.js.map +1 -1
- package/sky/sky.vertex.js +7 -7
- package/sky/sky.vertex.js.map +1 -1
- package/sky/skyMaterial.d.ts +1 -1
- package/sky/skyMaterial.js +25 -21
- package/sky/skyMaterial.js.map +1 -1
- package/terrain/index.js +1 -1
- package/terrain/terrain.fragment.js +15 -15
- package/terrain/terrain.fragment.js.map +1 -1
- package/terrain/terrain.vertex.d.ts +2 -0
- package/terrain/terrain.vertex.js +16 -14
- package/terrain/terrain.vertex.js.map +1 -1
- package/terrain/terrainMaterial.d.ts +1 -1
- package/terrain/terrainMaterial.js +22 -20
- package/terrain/terrainMaterial.js.map +1 -1
- package/triPlanar/index.js +1 -1
- package/triPlanar/triPlanarMaterial.d.ts +1 -1
- package/triPlanar/triPlanarMaterial.js +22 -20
- package/triPlanar/triPlanarMaterial.js.map +1 -1
- package/triPlanar/triplanar.fragment.js +15 -15
- package/triPlanar/triplanar.fragment.js.map +1 -1
- package/triPlanar/triplanar.vertex.d.ts +2 -0
- package/triPlanar/triplanar.vertex.js +16 -14
- package/triPlanar/triplanar.vertex.js.map +1 -1
- package/water/index.js +1 -1
- package/water/water.fragment.js +17 -17
- package/water/water.fragment.js.map +1 -1
- package/water/water.vertex.d.ts +2 -0
- package/water/water.vertex.js +18 -16
- package/water/water.vertex.js.map +1 -1
- package/water/waterMaterial.d.ts +1 -1
- package/water/waterMaterial.js +34 -31
- package/water/waterMaterial.js.map +1 -1
package/water/water.fragment.js
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
import {
|
2
|
-
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions";
|
3
|
-
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration";
|
4
|
-
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions";
|
5
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration";
|
6
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration";
|
7
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions";
|
8
|
-
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions";
|
9
|
-
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
|
10
|
-
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration";
|
11
|
-
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration";
|
12
|
-
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment";
|
13
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment";
|
14
|
-
import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment";
|
15
|
-
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment";
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration.js";
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions.js";
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js";
|
15
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
|
16
16
|
var name = 'waterPixelShader';
|
17
|
-
var shader = "#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nprecision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#
|
18
|
-
|
17
|
+
var shader = "#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nprecision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n\n#include<helperFunctions>\n#include<imageProcessingDeclaration>\n#include<imageProcessingFunctions>\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform sampler2D normalSampler;\nuniform vec2 vNormalInfos;\n#endif\nuniform sampler2D refractionSampler;\nuniform sampler2D reflectionSampler;\n\nconst float LOG2=1.442695;\nuniform vec3 cameraPosition;\nuniform vec4 waterColor;\nuniform float colorBlendFactor;\nuniform vec4 waterColor2;\nuniform float colorBlendFactor2;\nuniform float bumpHeight;\nuniform float time;\n\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\nvarying vec3 vPosition;\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\n\nvec4 baseColor=vec4(1.,1.,1.,1.);\nvec3 diffuseColor=vDiffuseColor.rgb;\n\nfloat alpha=vDiffuseColor.a;\n#ifdef BUMP\n#ifdef BUMPSUPERIMPOSE\nbaseColor=0.6*texture2D(normalSampler,vNormalUV)+0.4*texture2D(normalSampler,vec2(vNormalUV2.x,vNormalUV2.y));\n#else\nbaseColor=texture2D(normalSampler,vNormalUV);\n#endif\nvec3 bumpColor=baseColor.rgb;\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\nbaseColor.rgb*=vNormalInfos.y;\n#else\nvec3 bumpColor=vec3(1.0);\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nbaseColor.rgb*=vColor.rgb;\n#endif\n\n#ifdef NORMAL\nvec2 perturbation=bumpHeight*(baseColor.rg-0.5);\n#ifdef BUMPAFFECTSREFLECTION\nvec3 normalW=normalize(vNormalW+vec3(perturbation.x*8.0,0.0,perturbation.y*8.0));\nif (normalW.y<0.0) {\nnormalW.y=-normalW.y;\n}\n#else\nvec3 normalW=normalize(vNormalW);\n#endif\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\nvec2 perturbation=bumpHeight*(vec2(1.0,1.0)-0.5);\n#endif\n#ifdef FRESNELSEPARATE\n#ifdef REFLECTION\n\nvec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation*0.5,0.0,1.0);\nvec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\n#ifdef IS_REFRACTION_LINEAR\nrefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\n#endif\nvec2 projectedReflectionTexCoords=clamp(vec2(\nvReflectionMapTexCoord.x/vReflectionMapTexCoord.z+perturbation.x*0.3,\nvReflectionMapTexCoord.y/vReflectionMapTexCoord.z+perturbation.y\n),0.0,1.0);\nvec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\n#ifdef IS_REFLECTION_LINEAR\nreflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\n#endif\nvec3 upVector=vec3(0.0,1.0,0.0);\nfloat fresnelTerm=clamp(abs(pow(dot(viewDirectionW,upVector),3.0)),0.05,0.65);\nfloat IfresnelTerm=1.0-fresnelTerm;\nrefractiveColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*refractiveColor;\nreflectiveColor=IfresnelTerm*colorBlendFactor2*waterColor+(1.0-colorBlendFactor2*IfresnelTerm)*reflectiveColor;\nvec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*IfresnelTerm;\nbaseColor=combinedColor;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularBase=vec3(0.,0.,0.);\nvec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\nvec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#else\n#ifdef REFLECTION\n\nvec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation,0.0,1.0);\nvec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\n#ifdef IS_REFRACTION_LINEAR\nrefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\n#endif\nvec2 projectedReflectionTexCoords=clamp(vReflectionMapTexCoord.xy/vReflectionMapTexCoord.z+perturbation,0.0,1.0);\nvec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\n#ifdef IS_REFLECTION_LINEAR\nreflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\n#endif\nvec3 upVector=vec3(0.0,1.0,0.0);\nfloat fresnelTerm=max(dot(viewDirectionW,upVector),0.0);\nvec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*(1.0-fresnelTerm);\nbaseColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*combinedColor;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularBase=vec3(0.,0.,0.);\nvec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\nvec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#endif\n\nvec4 color=vec4(finalDiffuse+finalSpecular,alpha);\n#include<logDepthFragment>\n#include<fogFragment>\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#elif defined(IMAGEPROCESSING)\ncolor.rgb=toLinearSpace(color.rgb);\ncolor=applyImageProcessing(color);\n#endif\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n";
|
18
|
+
ShaderStore.ShadersStore[name] = shader;
|
19
19
|
/** @hidden */
|
20
20
|
export var waterPixelShader = { name: name, shader: shader };
|
21
21
|
//# sourceMappingURL=water.fragment.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"water.fragment.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/water/water.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"water.fragment.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/water/water.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,wDAAwD,CAAC;AAChE,OAAO,mEAAmE,CAAC;AAC3E,OAAO,iEAAiE,CAAC;AACzE,OAAO,iEAAiE,CAAC;AACzE,OAAO,4DAA4D,CAAC;AACpE,OAAO,gEAAgE,CAAC;AACxE,OAAO,iEAAiE,CAAC;AACzE,OAAO,qEAAqE,CAAC;AAC7E,OAAO,4DAA4D,CAAC;AACpE,OAAO,+DAA+D,CAAC;AACvE,OAAO,0DAA0D,CAAC;AAClE,OAAO,sDAAsD,CAAC;AAC9D,OAAO,yDAAyD,CAAC;AACjE,OAAO,oDAAoD,CAAC;AAE5D,IAAI,IAAI,GAAG,kBAAkB,CAAC;AAC9B,IAAI,MAAM,GAAG,ksLAsMZ,CAAC;AAEF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,gBAAgB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/helperFunctions\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogFragment\";\n\nlet name = 'waterPixelShader';\nlet shader = `#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nprecision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n\n#include<helperFunctions>\n#include<imageProcessingDeclaration>\n#include<imageProcessingFunctions>\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform sampler2D normalSampler;\nuniform vec2 vNormalInfos;\n#endif\nuniform sampler2D refractionSampler;\nuniform sampler2D reflectionSampler;\n\nconst float LOG2=1.442695;\nuniform vec3 cameraPosition;\nuniform vec4 waterColor;\nuniform float colorBlendFactor;\nuniform vec4 waterColor2;\nuniform float colorBlendFactor2;\nuniform float bumpHeight;\nuniform float time;\n\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\nvarying vec3 vPosition;\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\n\nvec4 baseColor=vec4(1.,1.,1.,1.);\nvec3 diffuseColor=vDiffuseColor.rgb;\n\nfloat alpha=vDiffuseColor.a;\n#ifdef BUMP\n#ifdef BUMPSUPERIMPOSE\nbaseColor=0.6*texture2D(normalSampler,vNormalUV)+0.4*texture2D(normalSampler,vec2(vNormalUV2.x,vNormalUV2.y));\n#else\nbaseColor=texture2D(normalSampler,vNormalUV);\n#endif\nvec3 bumpColor=baseColor.rgb;\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\nbaseColor.rgb*=vNormalInfos.y;\n#else\nvec3 bumpColor=vec3(1.0);\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nbaseColor.rgb*=vColor.rgb;\n#endif\n\n#ifdef NORMAL\nvec2 perturbation=bumpHeight*(baseColor.rg-0.5);\n#ifdef BUMPAFFECTSREFLECTION\nvec3 normalW=normalize(vNormalW+vec3(perturbation.x*8.0,0.0,perturbation.y*8.0));\nif (normalW.y<0.0) {\nnormalW.y=-normalW.y;\n}\n#else\nvec3 normalW=normalize(vNormalW);\n#endif\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\nvec2 perturbation=bumpHeight*(vec2(1.0,1.0)-0.5);\n#endif\n#ifdef FRESNELSEPARATE\n#ifdef REFLECTION\n\nvec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation*0.5,0.0,1.0);\nvec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\n#ifdef IS_REFRACTION_LINEAR\nrefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\n#endif\nvec2 projectedReflectionTexCoords=clamp(vec2(\nvReflectionMapTexCoord.x/vReflectionMapTexCoord.z+perturbation.x*0.3,\nvReflectionMapTexCoord.y/vReflectionMapTexCoord.z+perturbation.y\n),0.0,1.0);\nvec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\n#ifdef IS_REFLECTION_LINEAR\nreflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\n#endif\nvec3 upVector=vec3(0.0,1.0,0.0);\nfloat fresnelTerm=clamp(abs(pow(dot(viewDirectionW,upVector),3.0)),0.05,0.65);\nfloat IfresnelTerm=1.0-fresnelTerm;\nrefractiveColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*refractiveColor;\nreflectiveColor=IfresnelTerm*colorBlendFactor2*waterColor+(1.0-colorBlendFactor2*IfresnelTerm)*reflectiveColor;\nvec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*IfresnelTerm;\nbaseColor=combinedColor;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularBase=vec3(0.,0.,0.);\nvec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\nvec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#else\n#ifdef REFLECTION\n\nvec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation,0.0,1.0);\nvec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\n#ifdef IS_REFRACTION_LINEAR\nrefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\n#endif\nvec2 projectedReflectionTexCoords=clamp(vReflectionMapTexCoord.xy/vReflectionMapTexCoord.z+perturbation,0.0,1.0);\nvec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\n#ifdef IS_REFLECTION_LINEAR\nreflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\n#endif\nvec3 upVector=vec3(0.0,1.0,0.0);\nfloat fresnelTerm=max(dot(viewDirectionW,upVector),0.0);\nvec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*(1.0-fresnelTerm);\nbaseColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*combinedColor;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularBase=vec3(0.,0.,0.);\nvec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\nvec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#endif\n\nvec4 color=vec4(finalDiffuse+finalSpecular,alpha);\n#include<logDepthFragment>\n#include<fogFragment>\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#elif defined(IMAGEPROCESSING)\ncolor.rgb=toLinearSpace(color.rgb);\ncolor=applyImageProcessing(color);\n#endif\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var waterPixelShader = { name, shader };\n"]}
|
package/water/water.vertex.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration";
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration";
|
2
3
|
import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration";
|
3
4
|
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
|
4
5
|
import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration";
|
@@ -7,6 +8,7 @@ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration";
|
|
7
8
|
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration";
|
8
9
|
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex";
|
9
10
|
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex";
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation";
|
10
12
|
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex";
|
11
13
|
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex";
|
12
14
|
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex";
|
package/water/water.vertex.js
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
-
import {
|
2
|
-
import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration";
|
3
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
4
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
5
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
6
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
7
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
8
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
9
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
10
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
11
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
12
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
13
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
14
|
-
import "@babylonjs/core/Shaders/ShadersInclude/
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js";
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
15
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
16
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
|
15
17
|
var name = 'waterVertexShader';
|
16
|
-
var shader = "precision highp float;\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#
|
17
|
-
|
18
|
+
var shader = "precision highp float;\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\n\nuniform mat4 worldReflectionViewProjection;\nuniform vec2 windDirection;\nuniform float waveLength;\nuniform float time;\nuniform float windForce;\nuniform float waveHeight;\nuniform float waveSpeed;\nuniform float waveCount;\n\nvarying vec3 vPosition;\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef BUMP\nif (vNormalInfos.x == 0.)\n{\nvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\n#endif\n}\nelse\n{\nvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\n#endif\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#elif INSTANCESCOLOR\nvColor=instanceColor;\n#endif\n\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\nvec3 p=position;\nfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\n+(cos(((p.z/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.y*5.0);\np.y+=abs(newY);\ngl_Position=viewProjection*finalWorld*vec4(p,1.0);\n#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\n\nvPosition=position;\nvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvRefractionMapTexCoord.z=worldPos.w;\nworldPos=worldReflectionViewProjection*vec4(position,1.0);\nvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvReflectionMapTexCoord.z=worldPos.w;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n";
|
19
|
+
ShaderStore.ShadersStore[name] = shader;
|
18
20
|
/** @hidden */
|
19
21
|
export var waterVertexShader = { name: name, shader: shader };
|
20
22
|
//# sourceMappingURL=water.vertex.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"water.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/water/water.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"water.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/water/water.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,yDAAyD,CAAC;AACjE,OAAO,wEAAwE,CAAC;AAChF,OAAO,6DAA6D,CAAC;AACrE,OAAO,mEAAmE,CAAC;AAC3E,OAAO,6DAA6D,CAAC;AACrE,OAAO,iEAAiE,CAAC;AACzE,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6DAA6D,CAAC;AACrE,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,uDAAuD,CAAC;AAE/D,IAAI,IAAI,GAAG,mBAAmB,CAAC;AAC/B,IAAI,MAAM,GAAG,ysGAgIZ,CAAC;AAEF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,iBAAiB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthVertex\";\n\nlet name = 'waterVertexShader';\nlet shader = `precision highp float;\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\n\nuniform mat4 worldReflectionViewProjection;\nuniform vec2 windDirection;\nuniform float waveLength;\nuniform float time;\nuniform float windForce;\nuniform float waveHeight;\nuniform float waveSpeed;\nuniform float waveCount;\n\nvarying vec3 vPosition;\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef BUMP\nif (vNormalInfos.x == 0.)\n{\nvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\n#endif\n}\nelse\n{\nvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\n#endif\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#elif INSTANCESCOLOR\nvColor=instanceColor;\n#endif\n\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\nvec3 p=position;\nfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\n+(cos(((p.z/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.y*5.0);\np.y+=abs(newY);\ngl_Position=viewProjection*finalWorld*vec4(p,1.0);\n#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\n\nvPosition=position;\nvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvRefractionMapTexCoord.z=worldPos.w;\nworldPos=worldReflectionViewProjection*vec4(position,1.0);\nvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvReflectionMapTexCoord.z=worldPos.w;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var waterVertexShader = { name, shader };\n"]}
|
package/water/waterMaterial.d.ts
CHANGED
@@ -105,7 +105,7 @@ export declare class WaterMaterial extends PushMaterial {
|
|
105
105
|
/**
|
106
106
|
* Constructor
|
107
107
|
*/
|
108
|
-
constructor(name: string, scene
|
108
|
+
constructor(name: string, scene?: Scene, renderTargetSize?: Vector2);
|
109
109
|
get useLogarithmicDepth(): boolean;
|
110
110
|
set useLogarithmicDepth(value: boolean);
|
111
111
|
get refractionTexture(): Nullable<RenderTargetTexture>;
|
package/water/waterMaterial.js
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
2
|
-
import { serializeAsVector2, serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators";
|
3
|
-
import { Matrix, Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
|
4
|
-
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
5
|
-
import { Plane } from '@babylonjs/core/Maths/math.plane';
|
6
|
-
import { Constants } from "@babylonjs/core/Engines/constants";
|
7
|
-
import { SmartArray } from "@babylonjs/core/Misc/smartArray";
|
8
|
-
import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture";
|
9
|
-
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines";
|
10
|
-
import { ImageProcessingConfiguration } from "@babylonjs/core/Materials/imageProcessingConfiguration";
|
11
|
-
import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper";
|
12
|
-
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial";
|
13
|
-
import { MaterialFlags } from "@babylonjs/core/Materials/materialFlags";
|
14
|
-
import { VertexBuffer } from "@babylonjs/core/
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import
|
18
|
-
import "./water.
|
19
|
-
import
|
20
|
-
import {
|
2
|
+
import { serializeAsVector2, serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
3
|
+
import { Matrix, Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
4
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
5
|
+
import { Plane } from '@babylonjs/core/Maths/math.plane.js';
|
6
|
+
import { Constants } from "@babylonjs/core/Engines/constants.js";
|
7
|
+
import { SmartArray } from "@babylonjs/core/Misc/smartArray.js";
|
8
|
+
import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture.js";
|
9
|
+
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
10
|
+
import { ImageProcessingConfiguration } from "@babylonjs/core/Materials/imageProcessingConfiguration.js";
|
11
|
+
import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.js";
|
12
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
13
|
+
import { MaterialFlags } from "@babylonjs/core/Materials/materialFlags.js";
|
14
|
+
import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
15
|
+
import { Scene } from "@babylonjs/core/scene.js";
|
16
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
17
|
+
import "./water.fragment.js";
|
18
|
+
import "./water.vertex.js";
|
19
|
+
import { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks.js';
|
20
|
+
import { CreateGround } from "@babylonjs/core/Meshes/Builders/groundBuilder.js";
|
21
21
|
var WaterMaterialDefines = /** @class */ (function (_super) {
|
22
22
|
__extends(WaterMaterialDefines, _super);
|
23
23
|
function WaterMaterialDefines() {
|
@@ -42,8 +42,10 @@ var WaterMaterialDefines = /** @class */ (function (_super) {
|
|
42
42
|
_this.NUM_BONE_INFLUENCERS = 0;
|
43
43
|
_this.BonesPerMesh = 0;
|
44
44
|
_this.INSTANCES = false;
|
45
|
+
_this.INSTANCESCOLOR = false;
|
45
46
|
_this.SPECULARTERM = false;
|
46
47
|
_this.LOGARITHMICDEPTH = false;
|
48
|
+
_this.USE_REVERSE_DEPTHBUFFER = false;
|
47
49
|
_this.FRESNELSEPARATE = false;
|
48
50
|
_this.BUMPSUPERIMPOSE = false;
|
49
51
|
_this.BUMPAFFECTSREFLECTION = false;
|
@@ -61,6 +63,7 @@ var WaterMaterialDefines = /** @class */ (function (_super) {
|
|
61
63
|
_this.SAMPLER3DGREENDEPTH = false;
|
62
64
|
_this.SAMPLER3DBGRMAP = false;
|
63
65
|
_this.IMAGEPROCESSINGPOSTPROCESS = false;
|
66
|
+
_this.SKIPFINALCOLORCLAMP = false;
|
64
67
|
_this.rebuild();
|
65
68
|
return _this;
|
66
69
|
}
|
@@ -149,7 +152,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
149
152
|
_this._reflectionTransform = Matrix.Zero();
|
150
153
|
_this._lastTime = 0;
|
151
154
|
_this._lastDeltaTime = 0;
|
152
|
-
_this._createRenderTargets(
|
155
|
+
_this._createRenderTargets(_this.getScene(), renderTargetSize);
|
153
156
|
// Create render targets
|
154
157
|
_this.getRenderTargetTextures = function () {
|
155
158
|
_this._renderTargets.reset();
|
@@ -244,10 +247,10 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
244
247
|
return true;
|
245
248
|
}
|
246
249
|
}
|
247
|
-
if (!subMesh.
|
248
|
-
subMesh.
|
250
|
+
if (!subMesh.materialDefines) {
|
251
|
+
subMesh.materialDefines = new WaterMaterialDefines();
|
249
252
|
}
|
250
|
-
var defines = subMesh.
|
253
|
+
var defines = subMesh.materialDefines;
|
251
254
|
var scene = this.getScene();
|
252
255
|
if (this._isReadyForSubMesh(subMesh)) {
|
253
256
|
return true;
|
@@ -301,7 +304,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
301
304
|
this._mesh = mesh;
|
302
305
|
if (this._waitingRenderList) {
|
303
306
|
for (var i = 0; i < this._waitingRenderList.length; i++) {
|
304
|
-
this.addToRenderList(scene.
|
307
|
+
this.addToRenderList(scene.getNodeById(this._waitingRenderList[i]));
|
305
308
|
}
|
306
309
|
this._waitingRenderList = null;
|
307
310
|
}
|
@@ -377,7 +380,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
377
380
|
onCompiled: this.onCompiled,
|
378
381
|
onError: this.onError,
|
379
382
|
indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights }
|
380
|
-
}, engine), defines);
|
383
|
+
}, engine), defines, this._materialContext);
|
381
384
|
}
|
382
385
|
if (!subMesh.effect || !subMesh.effect.isReady()) {
|
383
386
|
return false;
|
@@ -388,7 +391,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
388
391
|
};
|
389
392
|
WaterMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
|
390
393
|
var scene = this.getScene();
|
391
|
-
var defines = subMesh.
|
394
|
+
var defines = subMesh.materialDefines;
|
392
395
|
if (!defines) {
|
393
396
|
return;
|
394
397
|
}
|
@@ -415,7 +418,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
415
418
|
if (this.pointsCloud) {
|
416
419
|
this._activeEffect.setFloat("pointSize", this.pointSize);
|
417
420
|
}
|
418
|
-
|
421
|
+
scene.bindEyePosition(effect);
|
419
422
|
}
|
420
423
|
this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
|
421
424
|
if (defines.SPECULARTERM) {
|
@@ -526,7 +529,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
526
529
|
scene.clipPlane = clipPlane;
|
527
530
|
// Transform
|
528
531
|
scene.setTransformMatrix(savedViewMatrix, scene.getProjectionMatrix());
|
529
|
-
scene.getEngine().cullBackFaces =
|
532
|
+
scene.getEngine().cullBackFaces = null;
|
530
533
|
scene._mirroredCameraPosition = null;
|
531
534
|
};
|
532
535
|
};
|
@@ -589,7 +592,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
589
592
|
return SerializationHelper.Clone(function () { return new WaterMaterial(name, _this.getScene()); }, this);
|
590
593
|
};
|
591
594
|
WaterMaterial.prototype.serialize = function () {
|
592
|
-
var serializationObject =
|
595
|
+
var serializationObject = _super.prototype.serialize.call(this);
|
593
596
|
serializationObject.customType = "BABYLON.WaterMaterial";
|
594
597
|
serializationObject.renderList = [];
|
595
598
|
if (this._refractionRTT && this._refractionRTT.renderList) {
|
@@ -609,7 +612,7 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
609
612
|
return mat;
|
610
613
|
};
|
611
614
|
WaterMaterial.CreateDefaultMesh = function (name, scene) {
|
612
|
-
var mesh =
|
615
|
+
var mesh = CreateGround(name, { width: 512, height: 512, subdivisions: 32, updatable: false }, scene);
|
613
616
|
return mesh;
|
614
617
|
};
|
615
618
|
__decorate([
|
@@ -699,5 +702,5 @@ var WaterMaterial = /** @class */ (function (_super) {
|
|
699
702
|
return WaterMaterial;
|
700
703
|
}(PushMaterial));
|
701
704
|
export { WaterMaterial };
|
702
|
-
|
705
|
+
RegisterClass("BABYLON.WaterMaterial", WaterMaterial);
|
703
706
|
//# sourceMappingURL=waterMaterial.js.map
|