@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/lava/lava.fragment.js
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
import {
|
2
|
-
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions";
|
3
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration";
|
4
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration";
|
5
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions";
|
6
|
-
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions";
|
7
|
-
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
|
8
|
-
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration";
|
9
|
-
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment";
|
10
|
-
import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass";
|
11
|
-
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment";
|
12
|
-
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment";
|
13
|
-
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility";
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
|
14
14
|
var name = 'lavaPixelShader';
|
15
|
-
var shader = "precision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n\nvarying vec3 vPositionW;\n\nuniform float time;\nuniform float speed;\nuniform float movingSpeed;\nuniform vec3 fogColor;\nuniform sampler2D noiseTexture;\nuniform float fogDensity;\n\nvarying float noise;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n\n#include<helperFunctions>\n\n#include<__decl__lightFragment>[0]\n#include<__decl__lightFragment>[1]\n#include<__decl__lightFragment>[2]\n#include<__decl__lightFragment>[3]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform sampler2D diffuseSampler;\nuniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n\n#include<fogFragmentDeclaration>\nfloat random( vec3 scale,float seed ){\nreturn fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;\n}\nvoid main(void) {\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 DIFFUSE\n\nvec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );\nvec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time*0.02;\nvec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;\nT1.x+=noiseTex.x*2.0;\nT1.y+=noiseTex.y*2.0;\nT2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;\nT2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;\nfloat p=texture2D( noiseTexture,T1*3.0 ).a;\nvec4 lavaColor=texture2D( diffuseSampler,T2*4.0);\nvec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );\nbaseColor=temp;\nfloat depth=gl_FragCoord.z*4.0;\nconst float LOG2=1.442695;\nfloat fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );\nfogFactor=1.0-clamp( fogFactor,0.0,1.0 );\nbaseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );\ndiffuseColor=baseColor.rgb;\n\n\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\nfloat glossiness=0.;\n#include<lightFragment>[0]\n#include<lightFragment>[1]\n#include<lightFragment>[2]\n#include<lightFragment>[3]\n#endif\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\n\nvec4 color=vec4(finalDiffuse,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n}";
|
16
|
-
|
15
|
+
var shader = "precision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n\nvarying vec3 vPositionW;\n\nuniform float time;\nuniform float speed;\nuniform float movingSpeed;\nuniform vec3 fogColor;\nuniform sampler2D noiseTexture;\nuniform float fogDensity;\n\nvarying float noise;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n\n#include<helperFunctions>\n\n#include<__decl__lightFragment>[0]\n#include<__decl__lightFragment>[1]\n#include<__decl__lightFragment>[2]\n#include<__decl__lightFragment>[3]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform sampler2D diffuseSampler;\nuniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n\n#include<fogFragmentDeclaration>\nfloat random( vec3 scale,float seed ){\nreturn fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\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 DIFFUSE\n\nvec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );\nvec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time*0.02;\nvec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;\nT1.x+=noiseTex.x*2.0;\nT1.y+=noiseTex.y*2.0;\nT2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;\nT2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;\nfloat p=texture2D( noiseTexture,T1*3.0 ).a;\nvec4 lavaColor=texture2D( diffuseSampler,T2*4.0);\nvec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );\nbaseColor=temp;\nfloat depth=gl_FragCoord.z*4.0;\nconst float LOG2=1.442695;\nfloat fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );\nfogFactor=1.0-clamp( fogFactor,0.0,1.0 );\nbaseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );\ndiffuseColor=baseColor.rgb;\n\n\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\nfloat glossiness=0.;\n#include<lightFragment>[0]\n#include<lightFragment>[1]\n#include<lightFragment>[2]\n#include<lightFragment>[3]\n#endif\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\n\nvec4 color=vec4(finalDiffuse,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}";
|
16
|
+
ShaderStore.ShadersStore[name] = shader;
|
17
17
|
/** @hidden */
|
18
18
|
export var lavaPixelShader = { name: name, shader: shader };
|
19
19
|
//# sourceMappingURL=lava.fragment.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"lava.fragment.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lava.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"lava.fragment.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lava.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,wDAAwD,CAAC;AAChE,OAAO,iEAAiE,CAAC;AACzE,OAAO,4DAA4D,CAAC;AACpE,OAAO,gEAAgE,CAAC;AACxE,OAAO,iEAAiE,CAAC;AACzE,OAAO,qEAAqE,CAAC;AAC7E,OAAO,+DAA+D,CAAC;AACvE,OAAO,0DAA0D,CAAC;AAClE,OAAO,qDAAqD,CAAC;AAC7D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,oDAAoD,CAAC;AAC5D,OAAO,qEAAqE,CAAC;AAE7E,IAAI,IAAI,GAAG,iBAAiB,CAAC;AAC7B,IAAI,MAAM,GAAG,kxFAgHX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,eAAe,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/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/fogFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/depthPrePass\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogFragment\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nlet name = 'lavaPixelShader';\nlet shader = `precision highp float;\n\nuniform vec4 vEyePosition;\nuniform vec4 vDiffuseColor;\n\nvarying vec3 vPositionW;\n\nuniform float time;\nuniform float speed;\nuniform float movingSpeed;\nuniform vec3 fogColor;\nuniform sampler2D noiseTexture;\nuniform float fogDensity;\n\nvarying float noise;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n\n#include<helperFunctions>\n\n#include<__decl__lightFragment>[0]\n#include<__decl__lightFragment>[1]\n#include<__decl__lightFragment>[2]\n#include<__decl__lightFragment>[3]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform sampler2D diffuseSampler;\nuniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n\n#include<fogFragmentDeclaration>\nfloat random( vec3 scale,float seed ){\nreturn fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\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 DIFFUSE\n\nvec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );\nvec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time*0.02;\nvec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;\nT1.x+=noiseTex.x*2.0;\nT1.y+=noiseTex.y*2.0;\nT2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;\nT2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;\nfloat p=texture2D( noiseTexture,T1*3.0 ).a;\nvec4 lavaColor=texture2D( diffuseSampler,T2*4.0);\nvec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );\nbaseColor=temp;\nfloat depth=gl_FragCoord.z*4.0;\nconst float LOG2=1.442695;\nfloat fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );\nfogFactor=1.0-clamp( fogFactor,0.0,1.0 );\nbaseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );\ndiffuseColor=baseColor.rgb;\n\n\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\nfloat glossiness=0.;\n#include<lightFragment>[0]\n#include<lightFragment>[1]\n#include<lightFragment>[2]\n#include<lightFragment>[3]\n#endif\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\n\nvec4 color=vec4(finalDiffuse,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var lavaPixelShader = { name, shader };\n"]}
|
package/lava/lava.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";
|
@@ -6,6 +7,7 @@ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration";
|
|
6
7
|
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration";
|
7
8
|
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex";
|
8
9
|
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex";
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation";
|
9
11
|
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex";
|
10
12
|
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex";
|
11
13
|
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex";
|
package/lava/lava.vertex.js
CHANGED
@@ -1,18 +1,20 @@
|
|
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/
|
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/instancesVertex.js";
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
13
15
|
var name = 'lavaVertexShader';
|
14
|
-
var shader = "precision highp float;\n\nuniform float time;\nuniform float lowFrequencySpeed;\n\nvarying float noise;\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 DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n\n\n\nvec3 mod289(vec3 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 mod289(vec4 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 permute(vec4 x)\n{\nreturn mod289(((x*34.0)+1.0)*x);\n}\nvec4 taylorInvSqrt(vec4 r)\n{\nreturn 1.79284291400159-0.85373472095314*r;\n}\nvec3 fade(vec3 t) {\nreturn t*t*t*(t*(t*6.0-15.0)+10.0);\n}\n\nfloat pnoise(vec3 P,vec3 rep)\n{\nvec3 Pi0=mod(floor(P),rep);\nvec3 Pi1=mod(Pi0+vec3(1.0),rep);\nPi0=mod289(Pi0);\nPi1=mod289(Pi1);\nvec3 Pf0=fract(P);\nvec3 Pf1=Pf0-vec3(1.0);\nvec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);\nvec4 iy=vec4(Pi0.yy,Pi1.yy);\nvec4 iz0=Pi0.zzzz;\nvec4 iz1=Pi1.zzzz;\nvec4 ixy=permute(permute(ix)+iy);\nvec4 ixy0=permute(ixy+iz0);\nvec4 ixy1=permute(ixy+iz1);\nvec4 gx0=ixy0*(1.0/7.0);\nvec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;\ngx0=fract(gx0);\nvec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);\nvec4 sz0=step(gz0,vec4(0.0));\ngx0-=sz0*(step(0.0,gx0)-0.5);\ngy0-=sz0*(step(0.0,gy0)-0.5);\nvec4 gx1=ixy1*(1.0/7.0);\nvec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;\ngx1=fract(gx1);\nvec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);\nvec4 sz1=step(gz1,vec4(0.0));\ngx1-=sz1*(step(0.0,gx1)-0.5);\ngy1-=sz1*(step(0.0,gy1)-0.5);\nvec3 g000=vec3(gx0.x,gy0.x,gz0.x);\nvec3 g100=vec3(gx0.y,gy0.y,gz0.y);\nvec3 g010=vec3(gx0.z,gy0.z,gz0.z);\nvec3 g110=vec3(gx0.w,gy0.w,gz0.w);\nvec3 g001=vec3(gx1.x,gy1.x,gz1.x);\nvec3 g101=vec3(gx1.y,gy1.y,gz1.y);\nvec3 g011=vec3(gx1.z,gy1.z,gz1.z);\nvec3 g111=vec3(gx1.w,gy1.w,gz1.w);\nvec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));\ng000*=norm0.x;\ng010*=norm0.y;\ng100*=norm0.z;\ng110*=norm0.w;\nvec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));\ng001*=norm1.x;\ng011*=norm1.y;\ng101*=norm1.z;\ng111*=norm1.w;\nfloat n000=dot(g000,Pf0);\nfloat n100=dot(g100,vec3(Pf1.x,Pf0.yz));\nfloat n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));\nfloat n110=dot(g110,vec3(Pf1.xy,Pf0.z));\nfloat n001=dot(g001,vec3(Pf0.xy,Pf1.z));\nfloat n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));\nfloat n011=dot(g011,vec3(Pf0.x,Pf1.yz));\nfloat n111=dot(g111,Pf1);\nvec3 fade_xyz=fade(Pf0);\nvec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);\nvec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);\nfloat n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);\nreturn 2.2*n_xyz;\n}\n\nfloat turbulence( vec3 p ) {\nfloat w=100.0;\nfloat t=-.5;\nfor (float f=1.0 ; f<=10.0 ; f++ ){\nfloat power=pow( 2.0,f );\nt+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );\n}\nreturn t;\n}\nvoid main(void) {\n#include<instancesVertex>\n#include<bonesVertex>\n#ifdef NORMAL\n\nnoise=10.0*-.10*turbulence( .5*normal+time*1.15 );\n\nfloat b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );\n\nfloat displacement =-1.5*noise+b;\n\nvec3 newPosition=position+normal*displacement;\ngl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );\nvec4 worldPos=finalWorld*vec4(newPosition,1.0);\nvPositionW=vec3(worldPos);\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 DIFFUSE\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#endif\n\n#
|
15
|
-
|
16
|
+
var shader = "precision highp float;\n\nuniform float time;\nuniform float lowFrequencySpeed;\n\nvarying float noise;\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 DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n\n\n\nvec3 mod289(vec3 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 mod289(vec4 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 permute(vec4 x)\n{\nreturn mod289(((x*34.0)+1.0)*x);\n}\nvec4 taylorInvSqrt(vec4 r)\n{\nreturn 1.79284291400159-0.85373472095314*r;\n}\nvec3 fade(vec3 t) {\nreturn t*t*t*(t*(t*6.0-15.0)+10.0);\n}\n\nfloat pnoise(vec3 P,vec3 rep)\n{\nvec3 Pi0=mod(floor(P),rep);\nvec3 Pi1=mod(Pi0+vec3(1.0),rep);\nPi0=mod289(Pi0);\nPi1=mod289(Pi1);\nvec3 Pf0=fract(P);\nvec3 Pf1=Pf0-vec3(1.0);\nvec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);\nvec4 iy=vec4(Pi0.yy,Pi1.yy);\nvec4 iz0=Pi0.zzzz;\nvec4 iz1=Pi1.zzzz;\nvec4 ixy=permute(permute(ix)+iy);\nvec4 ixy0=permute(ixy+iz0);\nvec4 ixy1=permute(ixy+iz1);\nvec4 gx0=ixy0*(1.0/7.0);\nvec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;\ngx0=fract(gx0);\nvec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);\nvec4 sz0=step(gz0,vec4(0.0));\ngx0-=sz0*(step(0.0,gx0)-0.5);\ngy0-=sz0*(step(0.0,gy0)-0.5);\nvec4 gx1=ixy1*(1.0/7.0);\nvec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;\ngx1=fract(gx1);\nvec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);\nvec4 sz1=step(gz1,vec4(0.0));\ngx1-=sz1*(step(0.0,gx1)-0.5);\ngy1-=sz1*(step(0.0,gy1)-0.5);\nvec3 g000=vec3(gx0.x,gy0.x,gz0.x);\nvec3 g100=vec3(gx0.y,gy0.y,gz0.y);\nvec3 g010=vec3(gx0.z,gy0.z,gz0.z);\nvec3 g110=vec3(gx0.w,gy0.w,gz0.w);\nvec3 g001=vec3(gx1.x,gy1.x,gz1.x);\nvec3 g101=vec3(gx1.y,gy1.y,gz1.y);\nvec3 g011=vec3(gx1.z,gy1.z,gz1.z);\nvec3 g111=vec3(gx1.w,gy1.w,gz1.w);\nvec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));\ng000*=norm0.x;\ng010*=norm0.y;\ng100*=norm0.z;\ng110*=norm0.w;\nvec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));\ng001*=norm1.x;\ng011*=norm1.y;\ng101*=norm1.z;\ng111*=norm1.w;\nfloat n000=dot(g000,Pf0);\nfloat n100=dot(g100,vec3(Pf1.x,Pf0.yz));\nfloat n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));\nfloat n110=dot(g110,vec3(Pf1.xy,Pf0.z));\nfloat n001=dot(g001,vec3(Pf0.xy,Pf1.z));\nfloat n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));\nfloat n011=dot(g011,vec3(Pf0.x,Pf1.yz));\nfloat n111=dot(g111,Pf1);\nvec3 fade_xyz=fade(Pf0);\nvec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);\nvec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);\nfloat n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);\nreturn 2.2*n_xyz;\n}\n\nfloat turbulence( vec3 p ) {\nfloat w=100.0;\nfloat t=-.5;\nfor (float f=1.0 ; f<=10.0 ; f++ ){\nfloat power=pow( 2.0,f );\nt+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );\n}\nreturn t;\n}\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\n#ifdef NORMAL\n\nnoise=10.0*-.10*turbulence( .5*normal+time*1.15 );\n\nfloat b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );\n\nfloat displacement =-1.5*noise+b;\n\nvec3 newPosition=position+normal*displacement;\ngl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );\nvec4 worldPos=finalWorld*vec4(newPosition,1.0);\nvPositionW=vec3(worldPos);\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 DIFFUSE\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\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\n#define CUSTOM_VERTEX_MAIN_END\n}";
|
17
|
+
ShaderStore.ShadersStore[name] = shader;
|
16
18
|
/** @hidden */
|
17
19
|
export var lavaVertexShader = { name: name, shader: shader };
|
18
20
|
//# sourceMappingURL=lava.vertex.js.map
|
package/lava/lava.vertex.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"lava.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lava.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"lava.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lava.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,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6DAA6D,CAAC;AACrE,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAE9D,IAAI,IAAI,GAAG,kBAAkB,CAAC;AAC9B,IAAI,MAAM,GAAG,y9IAgMX,CAAC;AAEH,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/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/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\";\n\nlet name = 'lavaVertexShader';\nlet shader = `precision highp float;\n\nuniform float time;\nuniform float lowFrequencySpeed;\n\nvarying float noise;\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 DIFFUSE\nvarying vec2 vDiffuseUV;\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n\n\n\nvec3 mod289(vec3 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 mod289(vec4 x)\n{\nreturn x-floor(x*(1.0/289.0))*289.0;\n}\nvec4 permute(vec4 x)\n{\nreturn mod289(((x*34.0)+1.0)*x);\n}\nvec4 taylorInvSqrt(vec4 r)\n{\nreturn 1.79284291400159-0.85373472095314*r;\n}\nvec3 fade(vec3 t) {\nreturn t*t*t*(t*(t*6.0-15.0)+10.0);\n}\n\nfloat pnoise(vec3 P,vec3 rep)\n{\nvec3 Pi0=mod(floor(P),rep);\nvec3 Pi1=mod(Pi0+vec3(1.0),rep);\nPi0=mod289(Pi0);\nPi1=mod289(Pi1);\nvec3 Pf0=fract(P);\nvec3 Pf1=Pf0-vec3(1.0);\nvec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);\nvec4 iy=vec4(Pi0.yy,Pi1.yy);\nvec4 iz0=Pi0.zzzz;\nvec4 iz1=Pi1.zzzz;\nvec4 ixy=permute(permute(ix)+iy);\nvec4 ixy0=permute(ixy+iz0);\nvec4 ixy1=permute(ixy+iz1);\nvec4 gx0=ixy0*(1.0/7.0);\nvec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;\ngx0=fract(gx0);\nvec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);\nvec4 sz0=step(gz0,vec4(0.0));\ngx0-=sz0*(step(0.0,gx0)-0.5);\ngy0-=sz0*(step(0.0,gy0)-0.5);\nvec4 gx1=ixy1*(1.0/7.0);\nvec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;\ngx1=fract(gx1);\nvec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);\nvec4 sz1=step(gz1,vec4(0.0));\ngx1-=sz1*(step(0.0,gx1)-0.5);\ngy1-=sz1*(step(0.0,gy1)-0.5);\nvec3 g000=vec3(gx0.x,gy0.x,gz0.x);\nvec3 g100=vec3(gx0.y,gy0.y,gz0.y);\nvec3 g010=vec3(gx0.z,gy0.z,gz0.z);\nvec3 g110=vec3(gx0.w,gy0.w,gz0.w);\nvec3 g001=vec3(gx1.x,gy1.x,gz1.x);\nvec3 g101=vec3(gx1.y,gy1.y,gz1.y);\nvec3 g011=vec3(gx1.z,gy1.z,gz1.z);\nvec3 g111=vec3(gx1.w,gy1.w,gz1.w);\nvec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));\ng000*=norm0.x;\ng010*=norm0.y;\ng100*=norm0.z;\ng110*=norm0.w;\nvec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));\ng001*=norm1.x;\ng011*=norm1.y;\ng101*=norm1.z;\ng111*=norm1.w;\nfloat n000=dot(g000,Pf0);\nfloat n100=dot(g100,vec3(Pf1.x,Pf0.yz));\nfloat n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));\nfloat n110=dot(g110,vec3(Pf1.xy,Pf0.z));\nfloat n001=dot(g001,vec3(Pf0.xy,Pf1.z));\nfloat n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));\nfloat n011=dot(g011,vec3(Pf0.x,Pf1.yz));\nfloat n111=dot(g111,Pf1);\nvec3 fade_xyz=fade(Pf0);\nvec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);\nvec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);\nfloat n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);\nreturn 2.2*n_xyz;\n}\n\nfloat turbulence( vec3 p ) {\nfloat w=100.0;\nfloat t=-.5;\nfor (float f=1.0 ; f<=10.0 ; f++ ){\nfloat power=pow( 2.0,f );\nt+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );\n}\nreturn t;\n}\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\n#ifdef NORMAL\n\nnoise=10.0*-.10*turbulence( .5*normal+time*1.15 );\n\nfloat b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );\n\nfloat displacement =-1.5*noise+b;\n\nvec3 newPosition=position+normal*displacement;\ngl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );\nvec4 worldPos=finalWorld*vec4(newPosition,1.0);\nvPositionW=vec3(worldPos);\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 DIFFUSE\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\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\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var lavaVertexShader = { name, shader };\n"]}
|
package/lava/lavaMaterial.d.ts
CHANGED
@@ -28,7 +28,7 @@ export declare class LavaMaterial extends PushMaterial {
|
|
28
28
|
private _maxSimultaneousLights;
|
29
29
|
maxSimultaneousLights: number;
|
30
30
|
private _scaledDiffuse;
|
31
|
-
constructor(name: string, scene
|
31
|
+
constructor(name: string, scene?: Scene);
|
32
32
|
needAlphaBlending(): boolean;
|
33
33
|
needAlphaTesting(): boolean;
|
34
34
|
getAlphaTestTexture(): Nullable<BaseTexture>;
|
package/lava/lavaMaterial.js
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
2
|
-
import { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators";
|
3
|
-
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
4
|
-
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines";
|
5
|
-
import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper";
|
6
|
-
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial";
|
7
|
-
import { MaterialFlags } from "@babylonjs/core/Materials/materialFlags";
|
8
|
-
import { VertexBuffer } from "@babylonjs/core/
|
9
|
-
import { Scene } from "@babylonjs/core/scene";
|
10
|
-
import {
|
11
|
-
import "./lava.fragment";
|
12
|
-
import "./lava.vertex";
|
13
|
-
import { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks';
|
2
|
+
import { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
3
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
4
|
+
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
5
|
+
import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.js";
|
6
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
7
|
+
import { MaterialFlags } from "@babylonjs/core/Materials/materialFlags.js";
|
8
|
+
import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
9
|
+
import { Scene } from "@babylonjs/core/scene.js";
|
10
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
11
|
+
import "./lava.fragment.js";
|
12
|
+
import "./lava.vertex.js";
|
13
|
+
import { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks.js';
|
14
14
|
var LavaMaterialDefines = /** @class */ (function (_super) {
|
15
15
|
__extends(LavaMaterialDefines, _super);
|
16
16
|
function LavaMaterialDefines() {
|
@@ -75,8 +75,10 @@ var LavaMaterialDefines = /** @class */ (function (_super) {
|
|
75
75
|
_this.NUM_BONE_INFLUENCERS = 0;
|
76
76
|
_this.BonesPerMesh = 0;
|
77
77
|
_this.INSTANCES = false;
|
78
|
+
_this.INSTANCESCOLOR = false;
|
78
79
|
_this.UNLIT = false;
|
79
80
|
_this.IMAGEPROCESSINGPOSTPROCESS = false;
|
81
|
+
_this.SKIPFINALCOLORCLAMP = false;
|
80
82
|
_this.rebuild();
|
81
83
|
return _this;
|
82
84
|
}
|
@@ -114,10 +116,10 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
114
116
|
return true;
|
115
117
|
}
|
116
118
|
}
|
117
|
-
if (!subMesh.
|
118
|
-
subMesh.
|
119
|
+
if (!subMesh.materialDefines) {
|
120
|
+
subMesh.materialDefines = new LavaMaterialDefines();
|
119
121
|
}
|
120
|
-
var defines = subMesh.
|
122
|
+
var defines = subMesh.materialDefines;
|
121
123
|
var scene = this.getScene();
|
122
124
|
if (this._isReadyForSubMesh(subMesh)) {
|
123
125
|
return true;
|
@@ -209,7 +211,7 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
209
211
|
onCompiled: this.onCompiled,
|
210
212
|
onError: this.onError,
|
211
213
|
indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights }
|
212
|
-
}, engine), defines);
|
214
|
+
}, engine), defines, this._materialContext);
|
213
215
|
}
|
214
216
|
if (!subMesh.effect || !subMesh.effect.isReady()) {
|
215
217
|
return false;
|
@@ -220,7 +222,7 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
220
222
|
};
|
221
223
|
LavaMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
|
222
224
|
var scene = this.getScene();
|
223
|
-
var defines = subMesh.
|
225
|
+
var defines = subMesh.materialDefines;
|
224
226
|
if (!defines) {
|
225
227
|
return;
|
226
228
|
}
|
@@ -251,7 +253,7 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
251
253
|
if (this.pointsCloud) {
|
252
254
|
this._activeEffect.setFloat("pointSize", this.pointSize);
|
253
255
|
}
|
254
|
-
|
256
|
+
scene.bindEyePosition(effect);
|
255
257
|
}
|
256
258
|
this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
|
257
259
|
if (scene.lightsEnabled && !this.disableLighting) {
|
@@ -314,7 +316,7 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
314
316
|
return SerializationHelper.Clone(function () { return new LavaMaterial(name, _this.getScene()); }, this);
|
315
317
|
};
|
316
318
|
LavaMaterial.prototype.serialize = function () {
|
317
|
-
var serializationObject =
|
319
|
+
var serializationObject = _super.prototype.serialize.call(this);
|
318
320
|
serializationObject.customType = "BABYLON.LavaMaterial";
|
319
321
|
return serializationObject;
|
320
322
|
};
|
@@ -373,5 +375,5 @@ var LavaMaterial = /** @class */ (function (_super) {
|
|
373
375
|
return LavaMaterial;
|
374
376
|
}(PushMaterial));
|
375
377
|
export { LavaMaterial };
|
376
|
-
|
378
|
+
RegisterClass("BABYLON.LavaMaterial", LavaMaterial);
|
377
379
|
//# sourceMappingURL=lavaMaterial.js.map
|
package/lava/lavaMaterial.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"lavaMaterial.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lavaMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\nimport { Matrix } from \"@babylonjs/core/Maths/math.vector\";\nimport { Color3 } from \"@babylonjs/core/Maths/math.color\";\nimport { IAnimatable } from '@babylonjs/core/Animations/animatable.interface';\nimport { BaseTexture } from \"@babylonjs/core/Materials/Textures/baseTexture\";\nimport { IEffectCreationOptions } from \"@babylonjs/core/Materials/effect\";\nimport { MaterialDefines } from \"@babylonjs/core/Materials/materialDefines\";\nimport { MaterialHelper } from \"@babylonjs/core/Materials/materialHelper\";\nimport { PushMaterial } from \"@babylonjs/core/Materials/pushMaterial\";\nimport { MaterialFlags } from \"@babylonjs/core/Materials/materialFlags\";\nimport { VertexBuffer } from \"@babylonjs/core/Meshes/buffer\";\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\nimport { SubMesh } from \"@babylonjs/core/Meshes/subMesh\";\nimport { Mesh } from \"@babylonjs/core/Meshes/mesh\";\nimport { Scene } from \"@babylonjs/core/scene\";\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\n\nimport \"./lava.fragment\";\nimport \"./lava.vertex\";\nimport { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks';\n\nclass LavaMaterialDefines extends MaterialDefines {\n public DIFFUSE = false;\n public CLIPPLANE = false;\n public CLIPPLANE2 = false;\n public CLIPPLANE3 = false;\n public CLIPPLANE4 = false;\n public CLIPPLANE5 = false;\n public CLIPPLANE6 = false;\n public ALPHATEST = false;\n public DEPTHPREPASS = false;\n public POINTSIZE = false;\n public FOG = false;\n public LIGHT0 = false;\n public LIGHT1 = false;\n public LIGHT2 = false;\n public LIGHT3 = false;\n public SPOTLIGHT0 = false;\n public SPOTLIGHT1 = false;\n public SPOTLIGHT2 = false;\n public SPOTLIGHT3 = false;\n public HEMILIGHT0 = false;\n public HEMILIGHT1 = false;\n public HEMILIGHT2 = false;\n public HEMILIGHT3 = false;\n public DIRLIGHT0 = false;\n public DIRLIGHT1 = false;\n public DIRLIGHT2 = false;\n public DIRLIGHT3 = false;\n public POINTLIGHT0 = false;\n public POINTLIGHT1 = false;\n public POINTLIGHT2 = false;\n public POINTLIGHT3 = false;\n public SHADOW0 = false;\n public SHADOW1 = false;\n public SHADOW2 = false;\n public SHADOW3 = false;\n public SHADOWS = false;\n public SHADOWESM0 = false;\n public SHADOWESM1 = false;\n public SHADOWESM2 = false;\n public SHADOWESM3 = false;\n public SHADOWPOISSON0 = false;\n public SHADOWPOISSON1 = false;\n public SHADOWPOISSON2 = false;\n public SHADOWPOISSON3 = false;\n public SHADOWPCF0 = false;\n public SHADOWPCF1 = false;\n public SHADOWPCF2 = false;\n public SHADOWPCF3 = false;\n public SHADOWPCSS0 = false;\n public SHADOWPCSS1 = false;\n public SHADOWPCSS2 = false;\n public SHADOWPCSS3 = false;\n public NORMAL = false;\n public UV1 = false;\n public UV2 = false;\n public VERTEXCOLOR = false;\n public VERTEXALPHA = false;\n public NUM_BONE_INFLUENCERS = 0;\n public BonesPerMesh = 0;\n public INSTANCES = false;\n public UNLIT = false;\n public IMAGEPROCESSINGPOSTPROCESS = false;\n\n constructor() {\n super();\n this.rebuild();\n }\n}\n\nexport class LavaMaterial extends PushMaterial {\n @serializeAsTexture(\"diffuseTexture\")\n private _diffuseTexture: BaseTexture;\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n public diffuseTexture: BaseTexture;\n\n @serializeAsTexture()\n public noiseTexture: BaseTexture;\n\n @serializeAsColor3()\n public fogColor: Color3;\n\n @serialize()\n public speed: number = 1;\n\n @serialize()\n public movingSpeed: number = 1;\n\n @serialize()\n public lowFrequencySpeed: number = 1;\n\n @serialize()\n public fogDensity: number = 0.15;\n\n private _lastTime: number = 0;\n\n @serializeAsColor3()\n public diffuseColor = new Color3(1, 1, 1);\n\n @serialize(\"disableLighting\")\n private _disableLighting = false;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public disableLighting: boolean;\n\n @serialize(\"unlit\")\n private _unlit = false;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public unlit: boolean;\n\n @serialize(\"maxSimultaneousLights\")\n private _maxSimultaneousLights = 4;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public maxSimultaneousLights: number;\n\n private _scaledDiffuse = new Color3();\n\n constructor(name: string, scene: Scene) {\n super(name, scene);\n }\n\n public needAlphaBlending(): boolean {\n return (this.alpha < 1.0);\n }\n\n public needAlphaTesting(): boolean {\n return false;\n }\n\n public getAlphaTestTexture(): Nullable<BaseTexture> {\n return null;\n }\n\n // Methods\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\n if (this.isFrozen) {\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {\n return true;\n }\n }\n\n if (!subMesh._materialDefines) {\n subMesh._materialDefines = new LavaMaterialDefines();\n }\n\n var defines = <LavaMaterialDefines>subMesh._materialDefines;\n var scene = this.getScene();\n\n if (this._isReadyForSubMesh(subMesh)) {\n return true;\n }\n\n var engine = scene.getEngine();\n\n // Textures\n if (defines._areTexturesDirty) {\n defines._needUVs = false;\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\n if (!this._diffuseTexture.isReady()) {\n return false;\n } else {\n defines._needUVs = true;\n defines.DIFFUSE = true;\n }\n }\n }\n }\n\n // Misc.\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\n\n // Lights\n defines._needNormals = true;\n\n MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\n\n // Values that need to be evaluated on every frame\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\n\n // Attribs\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, true);\n\n // Get correct effect\n if (defines.isDirty) {\n defines.markAsProcessed();\n scene.resetCachedMaterial();\n\n // Fallbacks\n var fallbacks = new EffectFallbacks();\n if (defines.FOG) {\n fallbacks.addFallback(1, \"FOG\");\n }\n\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\n\n if (defines.NUM_BONE_INFLUENCERS > 0) {\n fallbacks.addCPUSkinningFallback(0, mesh);\n }\n\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\n\n //Attributes\n var attribs = [VertexBuffer.PositionKind];\n\n if (defines.NORMAL) {\n attribs.push(VertexBuffer.NormalKind);\n }\n\n if (defines.UV1) {\n attribs.push(VertexBuffer.UVKind);\n }\n\n if (defines.UV2) {\n attribs.push(VertexBuffer.UV2Kind);\n }\n\n if (defines.VERTEXCOLOR) {\n attribs.push(VertexBuffer.ColorKind);\n }\n\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\n\n // Legacy browser patch\n var shaderName = \"lava\";\n var join = defines.toString();\n\n var uniforms = [\"world\", \"view\", \"viewProjection\", \"vEyePosition\", \"vLightsType\", \"vDiffuseColor\",\n \"vFogInfos\", \"vFogColor\", \"pointSize\",\n \"vDiffuseInfos\",\n \"mBones\",\n \"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"diffuseMatrix\",\n \"time\", \"speed\", \"movingSpeed\",\n \"fogColor\", \"fogDensity\", \"lowFrequencySpeed\"\n ];\n\n var samplers = [\"diffuseSampler\",\n \"noiseTexture\"\n ];\n var uniformBuffers = new Array<string>();\n\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: defines,\n maxSimultaneousLights: this.maxSimultaneousLights\n });\n\n subMesh.setEffect(scene.getEngine().createEffect(shaderName,\n <IEffectCreationOptions>{\n attributes: attribs,\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: join,\n fallbacks: fallbacks,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights }\n }, engine), defines);\n }\n if (!subMesh.effect || !subMesh.effect.isReady()) {\n return false;\n }\n\n defines._renderId = scene.getRenderId();\n subMesh.effect._wasPreviouslyReady = true;\n\n return true;\n }\n\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\n var scene = this.getScene();\n\n var defines = <LavaMaterialDefines>subMesh._materialDefines;\n if (!defines) {\n return;\n }\n\n var effect = subMesh.effect;\n\n if (!effect) {\n return;\n }\n this._activeEffect = effect;\n\n defines.UNLIT = this._unlit;\n\n // Matrices\n this.bindOnlyWorldMatrix(world);\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\n\n // Bones\n MaterialHelper.BindBonesParameters(mesh, this._activeEffect);\n\n if (this._mustRebind(scene, effect)) {\n // Textures\n if (this.diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\n this._activeEffect.setTexture(\"diffuseSampler\", this.diffuseTexture);\n\n this._activeEffect.setFloat2(\"vDiffuseInfos\", this.diffuseTexture.coordinatesIndex, this.diffuseTexture.level);\n this._activeEffect.setMatrix(\"diffuseMatrix\", this.diffuseTexture.getTextureMatrix());\n }\n\n if (this.noiseTexture) {\n this._activeEffect.setTexture(\"noiseTexture\", this.noiseTexture);\n }\n\n // Clip plane\n MaterialHelper.BindClipPlane(this._activeEffect, scene);\n\n // Point size\n if (this.pointsCloud) {\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\n }\n\n MaterialHelper.BindEyePosition(effect, scene);\n }\n\n this._activeEffect.setColor4(\"vDiffuseColor\", this._scaledDiffuse, this.alpha * mesh.visibility);\n\n if (scene.lightsEnabled && !this.disableLighting) {\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines);\n }\n\n // View\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\n }\n\n // Fog\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\n\n this._lastTime += scene.getEngine().getDeltaTime();\n this._activeEffect.setFloat(\"time\", this._lastTime * this.speed / 1000);\n\n if (!this.fogColor) {\n this.fogColor = Color3.Black();\n }\n this._activeEffect.setColor3(\"fogColor\", this.fogColor);\n this._activeEffect.setFloat(\"fogDensity\", this.fogDensity);\n\n this._activeEffect.setFloat(\"lowFrequencySpeed\", this.lowFrequencySpeed);\n this._activeEffect.setFloat(\"movingSpeed\", this.movingSpeed);\n\n this._afterBind(mesh, this._activeEffect);\n }\n\n public getAnimatables(): IAnimatable[] {\n var results = [];\n\n if (this.diffuseTexture && this.diffuseTexture.animations && this.diffuseTexture.animations.length > 0) {\n results.push(this.diffuseTexture);\n }\n\n if (this.noiseTexture && this.noiseTexture.animations && this.noiseTexture.animations.length > 0) {\n results.push(this.noiseTexture);\n }\n\n return results;\n }\n\n public getActiveTextures(): BaseTexture[] {\n var activeTextures = super.getActiveTextures();\n\n if (this._diffuseTexture) {\n activeTextures.push(this._diffuseTexture);\n }\n\n return activeTextures;\n }\n\n public hasTexture(texture: BaseTexture): boolean {\n if (super.hasTexture(texture)) {\n return true;\n }\n\n if (this.diffuseTexture === texture) {\n return true;\n }\n\n return false;\n }\n\n public dispose(forceDisposeEffect?: boolean): void {\n if (this.diffuseTexture) {\n this.diffuseTexture.dispose();\n }\n if (this.noiseTexture) {\n this.noiseTexture.dispose();\n }\n\n super.dispose(forceDisposeEffect);\n }\n\n public clone(name: string): LavaMaterial {\n return SerializationHelper.Clone(() => new LavaMaterial(name, this.getScene()), this);\n }\n\n public serialize(): any {\n var serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"BABYLON.LavaMaterial\";\n return serializationObject;\n }\n\n public getClassName(): string {\n return \"LavaMaterial\";\n }\n\n // Statics\n public static Parse(source: any, scene: Scene, rootUrl: string): LavaMaterial {\n return SerializationHelper.Parse(() => new LavaMaterial(source.name, scene), source, scene, rootUrl);\n }\n}\n\n_TypeStore.RegisteredTypes[\"BABYLON.LavaMaterial\"] = LavaMaterial;"]}
|
1
|
+
{"version":3,"file":"lavaMaterial.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/lava/lavaMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\nimport { Matrix } from \"@babylonjs/core/Maths/math.vector\";\nimport { Color3 } from \"@babylonjs/core/Maths/math.color\";\nimport { IAnimatable } from '@babylonjs/core/Animations/animatable.interface';\nimport { BaseTexture } from \"@babylonjs/core/Materials/Textures/baseTexture\";\nimport { IEffectCreationOptions } from \"@babylonjs/core/Materials/effect\";\nimport { MaterialDefines } from \"@babylonjs/core/Materials/materialDefines\";\nimport { MaterialHelper } from \"@babylonjs/core/Materials/materialHelper\";\nimport { PushMaterial } from \"@babylonjs/core/Materials/pushMaterial\";\nimport { MaterialFlags } from \"@babylonjs/core/Materials/materialFlags\";\nimport { VertexBuffer } from \"@babylonjs/core/Buffers/buffer\";\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\nimport { SubMesh } from \"@babylonjs/core/Meshes/subMesh\";\nimport { Mesh } from \"@babylonjs/core/Meshes/mesh\";\nimport { Scene } from \"@babylonjs/core/scene\";\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\n\nimport \"./lava.fragment\";\nimport \"./lava.vertex\";\nimport { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks';\n\nclass LavaMaterialDefines extends MaterialDefines {\n public DIFFUSE = false;\n public CLIPPLANE = false;\n public CLIPPLANE2 = false;\n public CLIPPLANE3 = false;\n public CLIPPLANE4 = false;\n public CLIPPLANE5 = false;\n public CLIPPLANE6 = false;\n public ALPHATEST = false;\n public DEPTHPREPASS = false;\n public POINTSIZE = false;\n public FOG = false;\n public LIGHT0 = false;\n public LIGHT1 = false;\n public LIGHT2 = false;\n public LIGHT3 = false;\n public SPOTLIGHT0 = false;\n public SPOTLIGHT1 = false;\n public SPOTLIGHT2 = false;\n public SPOTLIGHT3 = false;\n public HEMILIGHT0 = false;\n public HEMILIGHT1 = false;\n public HEMILIGHT2 = false;\n public HEMILIGHT3 = false;\n public DIRLIGHT0 = false;\n public DIRLIGHT1 = false;\n public DIRLIGHT2 = false;\n public DIRLIGHT3 = false;\n public POINTLIGHT0 = false;\n public POINTLIGHT1 = false;\n public POINTLIGHT2 = false;\n public POINTLIGHT3 = false;\n public SHADOW0 = false;\n public SHADOW1 = false;\n public SHADOW2 = false;\n public SHADOW3 = false;\n public SHADOWS = false;\n public SHADOWESM0 = false;\n public SHADOWESM1 = false;\n public SHADOWESM2 = false;\n public SHADOWESM3 = false;\n public SHADOWPOISSON0 = false;\n public SHADOWPOISSON1 = false;\n public SHADOWPOISSON2 = false;\n public SHADOWPOISSON3 = false;\n public SHADOWPCF0 = false;\n public SHADOWPCF1 = false;\n public SHADOWPCF2 = false;\n public SHADOWPCF3 = false;\n public SHADOWPCSS0 = false;\n public SHADOWPCSS1 = false;\n public SHADOWPCSS2 = false;\n public SHADOWPCSS3 = false;\n public NORMAL = false;\n public UV1 = false;\n public UV2 = false;\n public VERTEXCOLOR = false;\n public VERTEXALPHA = false;\n public NUM_BONE_INFLUENCERS = 0;\n public BonesPerMesh = 0;\n public INSTANCES = false;\n public INSTANCESCOLOR = false;\n public UNLIT = false;\n public IMAGEPROCESSINGPOSTPROCESS = false;\n public SKIPFINALCOLORCLAMP = false;\n\n constructor() {\n super();\n this.rebuild();\n }\n}\n\nexport class LavaMaterial extends PushMaterial {\n @serializeAsTexture(\"diffuseTexture\")\n private _diffuseTexture: BaseTexture;\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n public diffuseTexture: BaseTexture;\n\n @serializeAsTexture()\n public noiseTexture: BaseTexture;\n\n @serializeAsColor3()\n public fogColor: Color3;\n\n @serialize()\n public speed: number = 1;\n\n @serialize()\n public movingSpeed: number = 1;\n\n @serialize()\n public lowFrequencySpeed: number = 1;\n\n @serialize()\n public fogDensity: number = 0.15;\n\n private _lastTime: number = 0;\n\n @serializeAsColor3()\n public diffuseColor = new Color3(1, 1, 1);\n\n @serialize(\"disableLighting\")\n private _disableLighting = false;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public disableLighting: boolean;\n\n @serialize(\"unlit\")\n private _unlit = false;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public unlit: boolean;\n\n @serialize(\"maxSimultaneousLights\")\n private _maxSimultaneousLights = 4;\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n public maxSimultaneousLights: number;\n\n private _scaledDiffuse = new Color3();\n\n constructor(name: string, scene?: Scene) {\n super(name, scene);\n }\n\n public needAlphaBlending(): boolean {\n return (this.alpha < 1.0);\n }\n\n public needAlphaTesting(): boolean {\n return false;\n }\n\n public getAlphaTestTexture(): Nullable<BaseTexture> {\n return null;\n }\n\n // Methods\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\n if (this.isFrozen) {\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {\n return true;\n }\n }\n\n if (!subMesh.materialDefines) {\n subMesh.materialDefines = new LavaMaterialDefines();\n }\n\n var defines = <LavaMaterialDefines>subMesh.materialDefines;\n var scene = this.getScene();\n\n if (this._isReadyForSubMesh(subMesh)) {\n return true;\n }\n\n var engine = scene.getEngine();\n\n // Textures\n if (defines._areTexturesDirty) {\n defines._needUVs = false;\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\n if (!this._diffuseTexture.isReady()) {\n return false;\n } else {\n defines._needUVs = true;\n defines.DIFFUSE = true;\n }\n }\n }\n }\n\n // Misc.\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\n\n // Lights\n defines._needNormals = true;\n\n MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\n\n // Values that need to be evaluated on every frame\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\n\n // Attribs\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, true);\n\n // Get correct effect\n if (defines.isDirty) {\n defines.markAsProcessed();\n scene.resetCachedMaterial();\n\n // Fallbacks\n var fallbacks = new EffectFallbacks();\n if (defines.FOG) {\n fallbacks.addFallback(1, \"FOG\");\n }\n\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\n\n if (defines.NUM_BONE_INFLUENCERS > 0) {\n fallbacks.addCPUSkinningFallback(0, mesh);\n }\n\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\n\n //Attributes\n var attribs = [VertexBuffer.PositionKind];\n\n if (defines.NORMAL) {\n attribs.push(VertexBuffer.NormalKind);\n }\n\n if (defines.UV1) {\n attribs.push(VertexBuffer.UVKind);\n }\n\n if (defines.UV2) {\n attribs.push(VertexBuffer.UV2Kind);\n }\n\n if (defines.VERTEXCOLOR) {\n attribs.push(VertexBuffer.ColorKind);\n }\n\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\n\n // Legacy browser patch\n var shaderName = \"lava\";\n var join = defines.toString();\n\n var uniforms = [\"world\", \"view\", \"viewProjection\", \"vEyePosition\", \"vLightsType\", \"vDiffuseColor\",\n \"vFogInfos\", \"vFogColor\", \"pointSize\",\n \"vDiffuseInfos\",\n \"mBones\",\n \"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"diffuseMatrix\",\n \"time\", \"speed\", \"movingSpeed\",\n \"fogColor\", \"fogDensity\", \"lowFrequencySpeed\"\n ];\n\n var samplers = [\"diffuseSampler\",\n \"noiseTexture\"\n ];\n var uniformBuffers = new Array<string>();\n\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: defines,\n maxSimultaneousLights: this.maxSimultaneousLights\n });\n\n subMesh.setEffect(scene.getEngine().createEffect(shaderName,\n <IEffectCreationOptions>{\n attributes: attribs,\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: join,\n fallbacks: fallbacks,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights }\n }, engine), defines, this._materialContext);\n }\n if (!subMesh.effect || !subMesh.effect.isReady()) {\n return false;\n }\n\n defines._renderId = scene.getRenderId();\n subMesh.effect._wasPreviouslyReady = true;\n\n return true;\n }\n\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\n var scene = this.getScene();\n\n var defines = <LavaMaterialDefines>subMesh.materialDefines;\n if (!defines) {\n return;\n }\n\n var effect = subMesh.effect;\n\n if (!effect) {\n return;\n }\n this._activeEffect = effect;\n\n defines.UNLIT = this._unlit;\n\n // Matrices\n this.bindOnlyWorldMatrix(world);\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\n\n // Bones\n MaterialHelper.BindBonesParameters(mesh, this._activeEffect);\n\n if (this._mustRebind(scene, effect)) {\n // Textures\n if (this.diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\n this._activeEffect.setTexture(\"diffuseSampler\", this.diffuseTexture);\n\n this._activeEffect.setFloat2(\"vDiffuseInfos\", this.diffuseTexture.coordinatesIndex, this.diffuseTexture.level);\n this._activeEffect.setMatrix(\"diffuseMatrix\", this.diffuseTexture.getTextureMatrix());\n }\n\n if (this.noiseTexture) {\n this._activeEffect.setTexture(\"noiseTexture\", this.noiseTexture);\n }\n\n // Clip plane\n MaterialHelper.BindClipPlane(this._activeEffect, scene);\n\n // Point size\n if (this.pointsCloud) {\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\n }\n\n scene.bindEyePosition(effect);\n }\n\n this._activeEffect.setColor4(\"vDiffuseColor\", this._scaledDiffuse, this.alpha * mesh.visibility);\n\n if (scene.lightsEnabled && !this.disableLighting) {\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines);\n }\n\n // View\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\n }\n\n // Fog\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\n\n this._lastTime += scene.getEngine().getDeltaTime();\n this._activeEffect.setFloat(\"time\", this._lastTime * this.speed / 1000);\n\n if (!this.fogColor) {\n this.fogColor = Color3.Black();\n }\n this._activeEffect.setColor3(\"fogColor\", this.fogColor);\n this._activeEffect.setFloat(\"fogDensity\", this.fogDensity);\n\n this._activeEffect.setFloat(\"lowFrequencySpeed\", this.lowFrequencySpeed);\n this._activeEffect.setFloat(\"movingSpeed\", this.movingSpeed);\n\n this._afterBind(mesh, this._activeEffect);\n }\n\n public getAnimatables(): IAnimatable[] {\n var results = [];\n\n if (this.diffuseTexture && this.diffuseTexture.animations && this.diffuseTexture.animations.length > 0) {\n results.push(this.diffuseTexture);\n }\n\n if (this.noiseTexture && this.noiseTexture.animations && this.noiseTexture.animations.length > 0) {\n results.push(this.noiseTexture);\n }\n\n return results;\n }\n\n public getActiveTextures(): BaseTexture[] {\n var activeTextures = super.getActiveTextures();\n\n if (this._diffuseTexture) {\n activeTextures.push(this._diffuseTexture);\n }\n\n return activeTextures;\n }\n\n public hasTexture(texture: BaseTexture): boolean {\n if (super.hasTexture(texture)) {\n return true;\n }\n\n if (this.diffuseTexture === texture) {\n return true;\n }\n\n return false;\n }\n\n public dispose(forceDisposeEffect?: boolean): void {\n if (this.diffuseTexture) {\n this.diffuseTexture.dispose();\n }\n if (this.noiseTexture) {\n this.noiseTexture.dispose();\n }\n\n super.dispose(forceDisposeEffect);\n }\n\n public clone(name: string): LavaMaterial {\n return SerializationHelper.Clone(() => new LavaMaterial(name, this.getScene()), this);\n }\n\n public serialize(): any {\n var serializationObject = super.serialize();\n serializationObject.customType = \"BABYLON.LavaMaterial\";\n return serializationObject;\n }\n\n public getClassName(): string {\n return \"LavaMaterial\";\n }\n\n // Statics\n public static Parse(source: any, scene: Scene, rootUrl: string): LavaMaterial {\n return SerializationHelper.Parse(() => new LavaMaterial(source.name, scene), source, scene, rootUrl);\n }\n}\n\nRegisterClass(\"BABYLON.LavaMaterial\", LavaMaterial);"]}
|
package/legacy/legacy-cell.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../cell/index";
|
1
|
+
import * as MatLib from "../cell/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../cell/index";
|
12
|
+
export * from "../cell/index.js";
|
13
13
|
//# sourceMappingURL=legacy-cell.js.map
|
package/legacy/legacy-custom.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../custom/index";
|
1
|
+
import * as MatLib from "../custom/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../custom/index";
|
12
|
+
export * from "../custom/index.js";
|
13
13
|
//# sourceMappingURL=legacy-custom.js.map
|
package/legacy/legacy-fire.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../fire/index";
|
1
|
+
import * as MatLib from "../fire/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../fire/index";
|
12
|
+
export * from "../fire/index.js";
|
13
13
|
//# sourceMappingURL=legacy-fire.js.map
|
package/legacy/legacy-fur.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../fur/index";
|
1
|
+
import * as MatLib from "../fur/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../fur/index";
|
12
|
+
export * from "../fur/index.js";
|
13
13
|
//# sourceMappingURL=legacy-fur.js.map
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../gradient/index";
|
1
|
+
import * as MatLib from "../gradient/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../gradient/index";
|
12
|
+
export * from "../gradient/index.js";
|
13
13
|
//# sourceMappingURL=legacy-gradient.js.map
|
package/legacy/legacy-grid.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../grid/index";
|
1
|
+
import * as MatLib from "../grid/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../grid/index";
|
12
|
+
export * from "../grid/index.js";
|
13
13
|
//# sourceMappingURL=legacy-grid.js.map
|
package/legacy/legacy-lava.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../lava/index";
|
1
|
+
import * as MatLib from "../lava/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../lava/index";
|
12
|
+
export * from "../lava/index.js";
|
13
13
|
//# sourceMappingURL=legacy-lava.js.map
|
package/legacy/legacy-mix.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../mix/index";
|
1
|
+
import * as MatLib from "../mix/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../mix/index";
|
12
|
+
export * from "../mix/index.js";
|
13
13
|
//# sourceMappingURL=legacy-mix.js.map
|
package/legacy/legacy-normal.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../normal/index";
|
1
|
+
import * as MatLib from "../normal/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../normal/index";
|
12
|
+
export * from "../normal/index.js";
|
13
13
|
//# sourceMappingURL=legacy-normal.js.map
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../shadowOnly/index";
|
1
|
+
import * as MatLib from "../shadowOnly/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../shadowOnly/index";
|
12
|
+
export * from "../shadowOnly/index.js";
|
13
13
|
//# sourceMappingURL=legacy-shadowOnly.js.map
|
@@ -1 +1 @@
|
|
1
|
-
export * from "../simple";
|
1
|
+
export * from "../simple/index";
|
package/legacy/legacy-simple.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../simple";
|
1
|
+
import * as MatLib from "../simple/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../simple";
|
12
|
+
export * from "../simple/index.js";
|
13
13
|
//# sourceMappingURL=legacy-simple.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"legacy-simple.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/legacy/legacy-simple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,
|
1
|
+
{"version":3,"file":"legacy-simple.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/legacy/legacy-simple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IACrC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACd,YAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAS,MAAO,CAAC,GAAG,CAAC,CAAC;KACzD;CACJ;AAED,cAAc,iBAAiB,CAAC","sourcesContent":["import * as MatLib from \"../simple/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n for (var key in MatLib) {\r\n (<any>globalObject).BABYLON[key] = (<any>MatLib)[key];\r\n }\r\n}\r\n\r\nexport * from \"../simple/index\";"]}
|
package/legacy/legacy-sky.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "../sky";
|
1
|
+
export * from "../sky/index";
|
package/legacy/legacy-sky.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as MatLib from "../sky";
|
1
|
+
import * as MatLib from "../sky/index.js";
|
2
2
|
/**
|
3
3
|
* This is the entry point for the UMD module.
|
4
4
|
* The entry point for a future ESM package should be index.ts
|
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
|
|
9
9
|
globalObject.BABYLON[key] = MatLib[key];
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export * from "../sky";
|
12
|
+
export * from "../sky/index.js";
|
13
13
|
//# sourceMappingURL=legacy-sky.js.map
|