@babylonjs/materials 5.21.0 → 5.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cell/cell.fragment.js +14 -2
- package/cell/cell.fragment.js.map +1 -1
- package/cell/cell.vertex.js +45 -3
- package/cell/cell.vertex.js.map +1 -1
- package/cell/cellMaterial.js +112 -120
- package/cell/cellMaterial.js.map +1 -1
- package/custom/customMaterial.js +69 -81
- package/custom/customMaterial.js.map +1 -1
- package/custom/pbrCustomMaterial.js +80 -89
- package/custom/pbrCustomMaterial.js.map +1 -1
- package/fire/fire.fragment.js +44 -3
- package/fire/fire.fragment.js.map +1 -1
- package/fire/fire.vertex.js +54 -3
- package/fire/fire.vertex.js.map +1 -1
- package/fire/fireMaterial.js +101 -109
- package/fire/fireMaterial.js.map +1 -1
- package/fur/fur.fragment.js +67 -3
- package/fur/fur.fragment.js.map +1 -1
- package/fur/fur.vertex.js +97 -3
- package/fur/fur.vertex.js.map +1 -1
- package/fur/furMaterial.js +181 -193
- package/fur/furMaterial.js.map +1 -1
- package/gradient/gradient.fragment.js +36 -3
- package/gradient/gradient.fragment.js.map +1 -1
- package/gradient/gradient.vertex.js +41 -3
- package/gradient/gradient.vertex.js.map +1 -1
- package/gradient/gradientMaterial.js +113 -121
- package/gradient/gradientMaterial.js.map +1 -1
- package/grid/grid.fragment.js +8 -2
- package/grid/grid.fragment.js.map +1 -1
- package/grid/grid.vertex.js +22 -3
- package/grid/grid.vertex.js.map +1 -1
- package/grid/gridMaterial.js +93 -101
- package/grid/gridMaterial.js.map +1 -1
- package/lava/lava.fragment.js +62 -3
- package/lava/lava.fragment.js.map +1 -1
- package/lava/lava.vertex.js +84 -3
- package/lava/lava.vertex.js.map +1 -1
- package/lava/lavaMaterial.js +175 -183
- package/lava/lavaMaterial.js.map +1 -1
- package/legacy/legacy-cell.js +2 -2
- package/legacy/legacy-cell.js.map +1 -1
- package/legacy/legacy-custom.js +2 -2
- package/legacy/legacy-custom.js.map +1 -1
- package/legacy/legacy-fire.js +2 -2
- package/legacy/legacy-fire.js.map +1 -1
- package/legacy/legacy-fur.js +2 -2
- package/legacy/legacy-fur.js.map +1 -1
- package/legacy/legacy-gradient.js +2 -2
- package/legacy/legacy-gradient.js.map +1 -1
- package/legacy/legacy-grid.js +2 -2
- package/legacy/legacy-grid.js.map +1 -1
- package/legacy/legacy-lava.js +2 -2
- package/legacy/legacy-lava.js.map +1 -1
- package/legacy/legacy-mix.js +2 -2
- package/legacy/legacy-mix.js.map +1 -1
- package/legacy/legacy-normal.js +2 -2
- package/legacy/legacy-normal.js.map +1 -1
- package/legacy/legacy-shadowOnly.js +2 -2
- package/legacy/legacy-shadowOnly.js.map +1 -1
- package/legacy/legacy-simple.js +2 -2
- package/legacy/legacy-simple.js.map +1 -1
- package/legacy/legacy-sky.js +2 -2
- package/legacy/legacy-sky.js.map +1 -1
- package/legacy/legacy-terrain.js +2 -2
- package/legacy/legacy-terrain.js.map +1 -1
- package/legacy/legacy-triPlanar.js +2 -2
- package/legacy/legacy-triPlanar.js.map +1 -1
- package/legacy/legacy-water.js +2 -2
- package/legacy/legacy-water.js.map +1 -1
- package/legacy/legacy.js +2 -2
- package/legacy/legacy.js.map +1 -1
- package/mix/mix.fragment.js +33 -2
- package/mix/mix.fragment.js.map +1 -1
- package/mix/mix.vertex.js +67 -3
- package/mix/mix.vertex.js.map +1 -1
- package/mix/mixMaterial.js +166 -174
- package/mix/mixMaterial.js.map +1 -1
- package/normal/normal.fragment.js +41 -3
- package/normal/normal.fragment.js.map +1 -1
- package/normal/normal.vertex.js +42 -3
- package/normal/normal.vertex.js.map +1 -1
- package/normal/normalMaterial.js +143 -151
- package/normal/normalMaterial.js.map +1 -1
- package/package.json +2 -5
- package/shadowOnly/shadowOnly.fragment.js +21 -3
- package/shadowOnly/shadowOnly.fragment.js.map +1 -1
- package/shadowOnly/shadowOnly.vertex.js +30 -3
- package/shadowOnly/shadowOnly.vertex.js.map +1 -1
- package/shadowOnly/shadowOnlyMaterial.js +73 -89
- package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
- package/simple/simple.fragment.js +36 -3
- package/simple/simple.fragment.js.map +1 -1
- package/simple/simple.vertex.js +45 -3
- package/simple/simple.vertex.js.map +1 -1
- package/simple/simpleMaterial.js +102 -110
- package/simple/simpleMaterial.js.map +1 -1
- package/sky/sky.fragment.js +17 -3
- package/sky/sky.fragment.js.map +1 -1
- package/sky/sky.vertex.js +20 -3
- package/sky/sky.vertex.js.map +1 -1
- package/sky/skyMaterial.js +111 -119
- package/sky/skyMaterial.js.map +1 -1
- package/terrain/terrain.fragment.js +36 -2
- package/terrain/terrain.fragment.js.map +1 -1
- package/terrain/terrain.vertex.js +67 -3
- package/terrain/terrain.vertex.js.map +1 -1
- package/terrain/terrainMaterial.js +148 -156
- package/terrain/terrainMaterial.js.map +1 -1
- package/triPlanar/triPlanarMaterial.js +157 -165
- package/triPlanar/triPlanarMaterial.js.map +1 -1
- package/triPlanar/triplanar.fragment.js +64 -3
- package/triPlanar/triplanar.fragment.js.map +1 -1
- package/triPlanar/triplanar.vertex.js +45 -3
- package/triPlanar/triplanar.vertex.js.map +1 -1
- package/water/water.fragment.js +83 -3
- package/water/water.fragment.js.map +1 -1
- package/water/water.vertex.js +56 -3
- package/water/water.vertex.js.map +1 -1
- package/water/waterMaterial.js +283 -313
- package/water/waterMaterial.js.map +1 -1
@@ -12,10 +12,48 @@ import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
|
|
12
12
|
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
|
13
13
|
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
|
14
14
|
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
|
15
|
-
|
16
|
-
|
15
|
+
const name = "normalPixelShader";
|
16
|
+
const shader = `precision highp float;
|
17
|
+
varying vec3 vNormalW;
|
18
|
+
#ifdef LIGHTING
|
19
|
+
#include<helperFunctions>
|
20
|
+
#include<__decl__lightFragment>[0]
|
21
|
+
#include<__decl__lightFragment>[1]
|
22
|
+
#include<__decl__lightFragment>[2]
|
23
|
+
#include<__decl__lightFragment>[3]
|
24
|
+
#include<lightsFragmentFunctions>
|
25
|
+
#include<shadowsFragmentFunctions>
|
26
|
+
#endif
|
27
|
+
#ifdef DIFFUSE
|
28
|
+
varying vec2 vDiffuseUV;
|
29
|
+
#include<clipPlaneFragmentDeclaration>
|
30
|
+
#include<fogFragmentDeclaration>
|
31
|
+
#define CUSTOM_FRAGMENT_DEFINITIONS
|
32
|
+
void main(void) {
|
33
|
+
#include<clipPlaneFragment>
|
34
|
+
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
|
35
|
+
baseColor=texture2D(diffuseSampler,vDiffuseUV);
|
36
|
+
if (baseColor.a<0.4)
|
37
|
+
#include<depthPrePass>
|
38
|
+
baseColor.rgb*=vDiffuseInfos.y;
|
39
|
+
#ifdef NORMAL
|
40
|
+
baseColor=mix(baseColor,vec4(vNormalW,1.0),0.5);
|
41
|
+
#ifdef NORMAL
|
42
|
+
vec3 normalW=normalize(vNormalW);
|
43
|
+
vec3 normalW=vec3(1.0,1.0,1.0);
|
44
|
+
#ifdef LIGHTING
|
45
|
+
vec3 diffuseBase=vec3(0.,0.,0.);
|
46
|
+
#include<lightFragment>[1]
|
47
|
+
#include<lightFragment>[2]
|
48
|
+
#include<lightFragment>[3]
|
49
|
+
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;
|
50
|
+
vec3 finalDiffuse= baseColor.rgb;
|
51
|
+
vec4 color=vec4(finalDiffuse,alpha);
|
52
|
+
gl_FragColor=color;
|
53
|
+
#define CUSTOM_FRAGMENT_MAIN_END
|
54
|
+
}`;
|
17
55
|
// Sideeffect
|
18
56
|
ShaderStore.ShadersStore[name] = shader;
|
19
57
|
/** @hidden */
|
20
|
-
export
|
58
|
+
export const normalPixelShader = { name, shader };
|
21
59
|
//# sourceMappingURL=normal.fragment.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normal.fragment.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/normal/normal.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,mEAAqD;AACrD,4EAA8D;AAC9D,uEAAyD;AACzD,2EAA6D;AAC7D,4EAA8D;AAC9D,gFAAkE;AAClE,0EAA4D;AAC5D,qEAAuD;AACvD,gEAAkD;AAClD,iEAAmD;AACnD,+DAAiD;AACjD,gFAAkE;AAElE,
|
1
|
+
{"version":3,"file":"normal.fragment.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/normal/normal.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,mEAAqD;AACrD,4EAA8D;AAC9D,uEAAyD;AACzD,2EAA6D;AAC7D,4EAA8D;AAC9D,gFAAkE;AAClE,0EAA4D;AAC5D,qEAAuD;AACvD,gEAAkD;AAClD,iEAAmD;AACnD,+DAAiD;AACjD,gFAAkE;AAElE,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/helperFunctions\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/shadowsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"core/Shaders/ShadersInclude/depthPrePass\";\nimport \"core/Shaders/ShadersInclude/lightFragment\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"normalPixelShader\";\nconst shader = `precision highp float;\runiform vec4 vEyePosition;\runiform vec4 vDiffuseColor;\rvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef LIGHTING\n#include<helperFunctions>\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#endif\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform sampler2D diffuseSampler;\runiform vec2 vDiffuseInfos;\r#endif\n#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\rvec4 baseColor=vec4(1.,1.,1.,1.);\rvec3 diffuseColor=vDiffuseColor.rgb;\rfloat alpha=vDiffuseColor.a;\r#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV);\r#ifdef ALPHATEST\nif (baseColor.a<0.4)\rdiscard;\r#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\r#endif\n#ifdef NORMAL\nbaseColor=mix(baseColor,vec4(vNormalW,1.0),0.5);\r#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\r#else\nvec3 normalW=vec3(1.0,1.0,1.0);\r#endif\n#ifdef LIGHTING\nvec3 diffuseBase=vec3(0.,0.,0.);\rlightingInfo info;\rfloat shadow=1.;\rfloat glossiness=0.;\r#include<lightFragment>[0]\n#include<lightFragment>[1]\n#include<lightFragment>[2]\n#include<lightFragment>[3]\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\r#else\nvec3 finalDiffuse= baseColor.rgb;\r#endif\nvec4 color=vec4(finalDiffuse,alpha);\r#include<fogFragment>\ngl_FragColor=color;\r#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const normalPixelShader = { name, shader };\n"]}
|
package/normal/normal.vertex.js
CHANGED
@@ -13,10 +13,49 @@ import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
|
|
13
13
|
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
|
14
14
|
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
15
15
|
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
16
|
-
|
17
|
-
|
16
|
+
const name = "normalVertexShader";
|
17
|
+
const shader = `precision highp float;
|
18
|
+
attribute vec3 normal;
|
19
|
+
#ifdef UV1
|
20
|
+
attribute vec2 uv;
|
21
|
+
#ifdef UV2
|
22
|
+
attribute vec2 uv2;
|
23
|
+
#ifdef VERTEXCOLOR
|
24
|
+
attribute vec4 color;
|
25
|
+
#include<bonesDeclaration>
|
26
|
+
#include<bakedVertexAnimationDeclaration>
|
27
|
+
#include<instancesDeclaration>
|
28
|
+
uniform mat4 view;
|
29
|
+
varying vec2 vDiffuseUV;
|
30
|
+
#ifdef POINTSIZE
|
31
|
+
uniform float pointSize;
|
32
|
+
varying vec3 vPositionW;
|
33
|
+
varying vec3 vNormalW;
|
34
|
+
#include<clipPlaneVertexDeclaration>
|
35
|
+
#include<fogVertexDeclaration>
|
36
|
+
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
37
|
+
#define CUSTOM_VERTEX_DEFINITIONS
|
38
|
+
void main(void) {
|
39
|
+
#include<instancesVertex>
|
40
|
+
#include<bonesVertex>
|
41
|
+
#include<bakedVertexAnimation>
|
42
|
+
vec4 worldPos=finalWorld*vec4(position,1.0);
|
43
|
+
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
|
44
|
+
#ifndef UV1
|
45
|
+
vec2 uv=vec2(0.,0.);
|
46
|
+
#ifndef UV2
|
47
|
+
vec2 uv2=vec2(0.,0.);
|
48
|
+
#ifdef DIFFUSE
|
49
|
+
if (vDiffuseInfos.x==0.)
|
50
|
+
#include<clipPlaneVertex>
|
51
|
+
#include<fogVertex>
|
52
|
+
#include<shadowsVertex>[0..maxSimultaneousLights]
|
53
|
+
#if defined(POINTSIZE) && !defined(WEBGPU)
|
54
|
+
gl_PointSize=pointSize;
|
55
|
+
#define CUSTOM_VERTEX_MAIN_END
|
56
|
+
}
|
18
57
|
// Sideeffect
|
19
58
|
ShaderStore.ShadersStore[name] = shader;
|
20
59
|
/** @hidden */
|
21
|
-
export
|
60
|
+
export const normalVertexShader = { name, shader };
|
22
61
|
//# sourceMappingURL=normal.vertex.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normal.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/normal/normal.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAC/C,iEAAmD;AAEnD,
|
1
|
+
{"version":3,"file":"normal.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/normal/normal.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAC/C,iEAAmD;AAEnD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/bonesVertex\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\n\nconst name = \"normalVertexShader\";\nconst shader = `precision highp float;\rattribute vec3 position;\r#ifdef NORMAL\nattribute vec3 normal;\r#endif\n#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\r#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;\runiform mat4 viewProjection;\r#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform mat4 diffuseMatrix;\runiform vec2 vDiffuseInfos;\r#endif\n#ifdef POINTSIZE\nuniform float pointSize;\r#endif\nvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\rgl_Position=viewProjection*worldPos;\rvPositionW=vec3(worldPos);\r#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\r#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\n#ifdef DIFFUSE\nif (vDiffuseInfos.x==0.)\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\r}\relse\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\r}\r#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\r#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const normalVertexShader = { name, shader };\n"]}
|
package/normal/normalMaterial.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { __decorate
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
2
2
|
import { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
3
3
|
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
4
4
|
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
@@ -11,99 +11,94 @@ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
11
11
|
import "./normal.fragment.js";
|
12
12
|
import "./normal.vertex.js";
|
13
13
|
import { EffectFallbacks } from "@babylonjs/core/Materials/effectFallbacks.js";
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
_this.rebuild();
|
80
|
-
return _this;
|
14
|
+
class NormalMaterialDefines extends MaterialDefines {
|
15
|
+
constructor() {
|
16
|
+
super();
|
17
|
+
this.DIFFUSE = false;
|
18
|
+
this.CLIPPLANE = false;
|
19
|
+
this.CLIPPLANE2 = false;
|
20
|
+
this.CLIPPLANE3 = false;
|
21
|
+
this.CLIPPLANE4 = false;
|
22
|
+
this.CLIPPLANE5 = false;
|
23
|
+
this.CLIPPLANE6 = false;
|
24
|
+
this.ALPHATEST = false;
|
25
|
+
this.DEPTHPREPASS = false;
|
26
|
+
this.POINTSIZE = false;
|
27
|
+
this.FOG = false;
|
28
|
+
this.LIGHT0 = false;
|
29
|
+
this.LIGHT1 = false;
|
30
|
+
this.LIGHT2 = false;
|
31
|
+
this.LIGHT3 = false;
|
32
|
+
this.SPOTLIGHT0 = false;
|
33
|
+
this.SPOTLIGHT1 = false;
|
34
|
+
this.SPOTLIGHT2 = false;
|
35
|
+
this.SPOTLIGHT3 = false;
|
36
|
+
this.HEMILIGHT0 = false;
|
37
|
+
this.HEMILIGHT1 = false;
|
38
|
+
this.HEMILIGHT2 = false;
|
39
|
+
this.HEMILIGHT3 = false;
|
40
|
+
this.DIRLIGHT0 = false;
|
41
|
+
this.DIRLIGHT1 = false;
|
42
|
+
this.DIRLIGHT2 = false;
|
43
|
+
this.DIRLIGHT3 = false;
|
44
|
+
this.POINTLIGHT0 = false;
|
45
|
+
this.POINTLIGHT1 = false;
|
46
|
+
this.POINTLIGHT2 = false;
|
47
|
+
this.POINTLIGHT3 = false;
|
48
|
+
this.SHADOW0 = false;
|
49
|
+
this.SHADOW1 = false;
|
50
|
+
this.SHADOW2 = false;
|
51
|
+
this.SHADOW3 = false;
|
52
|
+
this.SHADOWS = false;
|
53
|
+
this.SHADOWESM0 = false;
|
54
|
+
this.SHADOWESM1 = false;
|
55
|
+
this.SHADOWESM2 = false;
|
56
|
+
this.SHADOWESM3 = false;
|
57
|
+
this.SHADOWPOISSON0 = false;
|
58
|
+
this.SHADOWPOISSON1 = false;
|
59
|
+
this.SHADOWPOISSON2 = false;
|
60
|
+
this.SHADOWPOISSON3 = false;
|
61
|
+
this.SHADOWPCF0 = false;
|
62
|
+
this.SHADOWPCF1 = false;
|
63
|
+
this.SHADOWPCF2 = false;
|
64
|
+
this.SHADOWPCF3 = false;
|
65
|
+
this.SHADOWPCSS0 = false;
|
66
|
+
this.SHADOWPCSS1 = false;
|
67
|
+
this.SHADOWPCSS2 = false;
|
68
|
+
this.SHADOWPCSS3 = false;
|
69
|
+
this.NORMAL = false;
|
70
|
+
this.UV1 = false;
|
71
|
+
this.UV2 = false;
|
72
|
+
this.NUM_BONE_INFLUENCERS = 0;
|
73
|
+
this.BonesPerMesh = 0;
|
74
|
+
this.INSTANCES = false;
|
75
|
+
this.LIGHTING = false;
|
76
|
+
this.IMAGEPROCESSINGPOSTPROCESS = false;
|
77
|
+
this.SKIPFINALCOLORCLAMP = false;
|
78
|
+
this.rebuild();
|
81
79
|
}
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
_this._disableLighting = false;
|
90
|
-
_this._maxSimultaneousLights = 4;
|
91
|
-
return _this;
|
80
|
+
}
|
81
|
+
export class NormalMaterial extends PushMaterial {
|
82
|
+
constructor(name, scene) {
|
83
|
+
super(name, scene);
|
84
|
+
this.diffuseColor = new Color3(1, 1, 1);
|
85
|
+
this._disableLighting = false;
|
86
|
+
this._maxSimultaneousLights = 4;
|
92
87
|
}
|
93
|
-
|
88
|
+
needAlphaBlending() {
|
94
89
|
return this.alpha < 1.0;
|
95
|
-
}
|
96
|
-
|
90
|
+
}
|
91
|
+
needAlphaBlendingForMesh(mesh) {
|
97
92
|
return this.needAlphaBlending() || mesh.visibility < 1.0;
|
98
|
-
}
|
99
|
-
|
93
|
+
}
|
94
|
+
needAlphaTesting() {
|
100
95
|
return false;
|
101
|
-
}
|
102
|
-
|
96
|
+
}
|
97
|
+
getAlphaTestTexture() {
|
103
98
|
return null;
|
104
|
-
}
|
99
|
+
}
|
105
100
|
// Methods
|
106
|
-
|
101
|
+
isReadyForSubMesh(mesh, subMesh, useInstances) {
|
107
102
|
if (this.isFrozen) {
|
108
103
|
if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {
|
109
104
|
return true;
|
@@ -112,12 +107,12 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
112
107
|
if (!subMesh.materialDefines) {
|
113
108
|
subMesh.materialDefines = new NormalMaterialDefines();
|
114
109
|
}
|
115
|
-
|
116
|
-
|
110
|
+
const defines = subMesh.materialDefines;
|
111
|
+
const scene = this.getScene();
|
117
112
|
if (this._isReadyForSubMesh(subMesh)) {
|
118
113
|
return true;
|
119
114
|
}
|
120
|
-
|
115
|
+
const engine = scene.getEngine();
|
121
116
|
// Textures
|
122
117
|
if (defines._areTexturesDirty) {
|
123
118
|
defines._needUVs = false;
|
@@ -148,7 +143,7 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
148
143
|
defines.markAsProcessed();
|
149
144
|
scene.resetCachedMaterial();
|
150
145
|
// Fallbacks
|
151
|
-
|
146
|
+
const fallbacks = new EffectFallbacks();
|
152
147
|
if (defines.FOG) {
|
153
148
|
fallbacks.addFallback(1, "FOG");
|
154
149
|
}
|
@@ -158,7 +153,7 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
158
153
|
}
|
159
154
|
defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
|
160
155
|
//Attributes
|
161
|
-
|
156
|
+
const attribs = [VertexBuffer.PositionKind];
|
162
157
|
if (defines.NORMAL) {
|
163
158
|
attribs.push(VertexBuffer.NormalKind);
|
164
159
|
}
|
@@ -170,9 +165,9 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
170
165
|
}
|
171
166
|
MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
|
172
167
|
MaterialHelper.PrepareAttributesForInstances(attribs, defines);
|
173
|
-
|
174
|
-
|
175
|
-
|
168
|
+
const shaderName = "normal";
|
169
|
+
const join = defines.toString();
|
170
|
+
const uniforms = [
|
176
171
|
"world",
|
177
172
|
"view",
|
178
173
|
"viewProjection",
|
@@ -192,8 +187,8 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
192
187
|
"vClipPlane6",
|
193
188
|
"diffuseMatrix",
|
194
189
|
];
|
195
|
-
|
196
|
-
|
190
|
+
const samplers = ["diffuseSampler"];
|
191
|
+
const uniformBuffers = new Array();
|
197
192
|
MaterialHelper.PrepareUniformsAndSamplersList({
|
198
193
|
uniformsNames: uniforms,
|
199
194
|
uniformBuffersNames: uniformBuffers,
|
@@ -220,14 +215,14 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
220
215
|
subMesh.effect._wasPreviouslyReady = true;
|
221
216
|
subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;
|
222
217
|
return true;
|
223
|
-
}
|
224
|
-
|
225
|
-
|
226
|
-
|
218
|
+
}
|
219
|
+
bindForSubMesh(world, mesh, subMesh) {
|
220
|
+
const scene = this.getScene();
|
221
|
+
const defines = subMesh.materialDefines;
|
227
222
|
if (!defines) {
|
228
223
|
return;
|
229
224
|
}
|
230
|
-
|
225
|
+
const effect = subMesh.effect;
|
231
226
|
if (!effect) {
|
232
227
|
return;
|
233
228
|
}
|
@@ -264,75 +259,72 @@ var NormalMaterial = /** @class */ (function (_super) {
|
|
264
259
|
// Fog
|
265
260
|
MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);
|
266
261
|
this._afterBind(mesh, this._activeEffect);
|
267
|
-
}
|
268
|
-
|
269
|
-
|
262
|
+
}
|
263
|
+
getAnimatables() {
|
264
|
+
const results = [];
|
270
265
|
if (this.diffuseTexture && this.diffuseTexture.animations && this.diffuseTexture.animations.length > 0) {
|
271
266
|
results.push(this.diffuseTexture);
|
272
267
|
}
|
273
268
|
return results;
|
274
|
-
}
|
275
|
-
|
276
|
-
|
269
|
+
}
|
270
|
+
getActiveTextures() {
|
271
|
+
const activeTextures = super.getActiveTextures();
|
277
272
|
if (this._diffuseTexture) {
|
278
273
|
activeTextures.push(this._diffuseTexture);
|
279
274
|
}
|
280
275
|
return activeTextures;
|
281
|
-
}
|
282
|
-
|
283
|
-
if (
|
276
|
+
}
|
277
|
+
hasTexture(texture) {
|
278
|
+
if (super.hasTexture(texture)) {
|
284
279
|
return true;
|
285
280
|
}
|
286
281
|
if (this.diffuseTexture === texture) {
|
287
282
|
return true;
|
288
283
|
}
|
289
284
|
return false;
|
290
|
-
}
|
291
|
-
|
285
|
+
}
|
286
|
+
dispose(forceDisposeEffect) {
|
292
287
|
if (this.diffuseTexture) {
|
293
288
|
this.diffuseTexture.dispose();
|
294
289
|
}
|
295
|
-
|
296
|
-
}
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
var serializationObject = _super.prototype.serialize.call(this);
|
290
|
+
super.dispose(forceDisposeEffect);
|
291
|
+
}
|
292
|
+
clone(name) {
|
293
|
+
return SerializationHelper.Clone(() => new NormalMaterial(name, this.getScene()), this);
|
294
|
+
}
|
295
|
+
serialize() {
|
296
|
+
const serializationObject = super.serialize();
|
303
297
|
serializationObject.customType = "BABYLON.NormalMaterial";
|
304
298
|
return serializationObject;
|
305
|
-
}
|
306
|
-
|
299
|
+
}
|
300
|
+
getClassName() {
|
307
301
|
return "NormalMaterial";
|
308
|
-
}
|
302
|
+
}
|
309
303
|
// Statics
|
310
|
-
|
311
|
-
return SerializationHelper.Parse(
|
312
|
-
}
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
}(PushMaterial));
|
336
|
-
export { NormalMaterial };
|
304
|
+
static Parse(source, scene, rootUrl) {
|
305
|
+
return SerializationHelper.Parse(() => new NormalMaterial(source.name, scene), source, scene, rootUrl);
|
306
|
+
}
|
307
|
+
}
|
308
|
+
__decorate([
|
309
|
+
serializeAsTexture("diffuseTexture")
|
310
|
+
], NormalMaterial.prototype, "_diffuseTexture", void 0);
|
311
|
+
__decorate([
|
312
|
+
expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
313
|
+
], NormalMaterial.prototype, "diffuseTexture", void 0);
|
314
|
+
__decorate([
|
315
|
+
serializeAsColor3()
|
316
|
+
], NormalMaterial.prototype, "diffuseColor", void 0);
|
317
|
+
__decorate([
|
318
|
+
serialize("disableLighting")
|
319
|
+
], NormalMaterial.prototype, "_disableLighting", void 0);
|
320
|
+
__decorate([
|
321
|
+
expandToProperty("_markAllSubMeshesAsLightsDirty")
|
322
|
+
], NormalMaterial.prototype, "disableLighting", void 0);
|
323
|
+
__decorate([
|
324
|
+
serialize("maxSimultaneousLights")
|
325
|
+
], NormalMaterial.prototype, "_maxSimultaneousLights", void 0);
|
326
|
+
__decorate([
|
327
|
+
expandToProperty("_markAllSubMeshesAsLightsDirty")
|
328
|
+
], NormalMaterial.prototype, "maxSimultaneousLights", void 0);
|
337
329
|
RegisterClass("BABYLON.NormalMaterial", NormalMaterial);
|
338
330
|
//# sourceMappingURL=normalMaterial.js.map
|