@babylonjs/materials 6.15.0 → 6.16.1
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 +8 -5
- package/cell/cell.fragment.js.map +1 -1
- package/cell/cell.vertex.js +41 -19
- package/cell/cell.vertex.js.map +1 -1
- package/gradient/gradient.fragment.js +33 -16
- package/gradient/gradient.fragment.js.map +1 -1
- package/gradient/gradient.vertex.js +34 -17
- package/gradient/gradient.vertex.js.map +1 -1
- package/grid/grid.fragment.js +2 -3
- package/grid/grid.fragment.js.map +1 -1
- package/grid/grid.vertex.js +27 -12
- package/grid/grid.vertex.js.map +1 -1
- package/mix/mix.fragment.js +34 -19
- package/mix/mix.fragment.js.map +1 -1
- package/normal/normal.fragment.js +33 -16
- package/normal/normal.fragment.js.map +1 -1
- package/normal/normal.vertex.js +39 -18
- package/normal/normal.vertex.js.map +1 -1
- package/package.json +2 -2
- package/shadowOnly/shadowOnly.fragment.js +18 -9
- package/shadowOnly/shadowOnly.fragment.js.map +1 -1
- package/shadowOnly/shadowOnly.vertex.js +24 -12
- package/shadowOnly/shadowOnly.vertex.js.map +1 -1
- package/simple/simple.fragment.js +35 -17
- package/simple/simple.fragment.js.map +1 -1
- package/simple/simple.vertex.js +41 -19
- package/simple/simple.vertex.js.map +1 -1
- package/sky/sky.fragment.js +50 -12
- package/sky/sky.fragment.js.map +1 -1
- package/sky/sky.vertex.js +22 -11
- package/sky/sky.vertex.js.map +1 -1
- package/terrain/terrain.fragment.js +40 -19
- package/terrain/terrain.fragment.js.map +1 -1
- package/triPlanar/triplanar.fragment.js +69 -34
- package/triPlanar/triplanar.fragment.js.map +1 -1
- package/triPlanar/triplanar.vertex.js +45 -22
- package/triPlanar/triplanar.vertex.js.map +1 -1
- package/water/water.fragment.js +106 -51
- package/water/water.fragment.js.map +1 -1
- package/water/water.vertex.js +71 -33
- package/water/water.vertex.js.map +1 -1
package/cell/cell.fragment.js
CHANGED
@@ -13,41 +13,75 @@ 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
15
|
const name = "cellPixelShader";
|
16
|
-
const shader = `precision highp float;
|
17
|
-
|
16
|
+
const shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;
|
17
|
+
#ifdef NORMAL
|
18
|
+
varying vec3 vNormalW;
|
19
|
+
#endif
|
18
20
|
#ifdef VERTEXCOLOR
|
19
|
-
varying vec4 vColor;
|
21
|
+
varying vec4 vColor;
|
22
|
+
#endif
|
20
23
|
#include<helperFunctions>
|
21
24
|
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
22
25
|
#include<lightsFragmentFunctions>
|
23
26
|
#include<shadowsFragmentFunctions>
|
24
27
|
#ifdef DIFFUSE
|
25
|
-
varying vec2 vDiffuseUV;
|
28
|
+
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
|
29
|
+
#endif
|
26
30
|
#include<clipPlaneFragmentDeclaration>
|
27
31
|
#include<fogFragmentDeclaration>
|
28
|
-
vec3 computeCustomDiffuseLighting(lightingInfo info,vec3 diffuseBase,float shadow)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cell.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/cell/cell.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,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"cell.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/cell/cell.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,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,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 = \"cellPixelShader\";\nconst shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\nvec3 computeCustomDiffuseLighting(lightingInfo info,vec3 diffuseBase,float shadow)\n{diffuseBase=info.diffuse*shadow;\n#ifdef CELLBASIC\nfloat level=1.0;if (info.ndl<0.5)\nlevel=0.5;diffuseBase.rgb*vec3(level,level,level);\n#else\nfloat ToonThresholds[4];ToonThresholds[0]=0.95;ToonThresholds[1]=0.5;ToonThresholds[2]=0.2;ToonThresholds[3]=0.03;float ToonBrightnessLevels[5];ToonBrightnessLevels[0]=1.0;ToonBrightnessLevels[1]=0.8;ToonBrightnessLevels[2]=0.6;ToonBrightnessLevels[3]=0.35;ToonBrightnessLevels[4]=0.2;if (info.ndl>ToonThresholds[0])\n{diffuseBase.rgb*=ToonBrightnessLevels[0];}\nelse if (info.ndl>ToonThresholds[1])\n{diffuseBase.rgb*=ToonBrightnessLevels[1];}\nelse if (info.ndl>ToonThresholds[2])\n{diffuseBase.rgb*=ToonBrightnessLevels[2];}\nelse if (info.ndl>ToonThresholds[3])\n{diffuseBase.rgb*=ToonBrightnessLevels[3];}\nelse\n{diffuseBase.rgb*=ToonBrightnessLevels[4];}\n#endif\nreturn max(diffuseBase,vec3(0.2));}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV);\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#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\nlightingInfo info;vec3 diffuseBase=vec3(0.,0.,0.);float shadow=1.;float glossiness=0.;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif \n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const cellPixelShader = { name, shader };\n"]}
|
package/cell/cell.vertex.js
CHANGED
@@ -15,49 +15,71 @@ import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
|
15
15
|
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
16
16
|
import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
|
17
17
|
const name = "cellVertexShader";
|
18
|
-
const shader = `precision highp float;
|
19
|
-
|
18
|
+
const shader = `precision highp float;attribute vec3 position;
|
19
|
+
#ifdef NORMAL
|
20
|
+
attribute vec3 normal;
|
21
|
+
#endif
|
20
22
|
#ifdef UV1
|
21
|
-
attribute vec2 uv;
|
23
|
+
attribute vec2 uv;
|
24
|
+
#endif
|
22
25
|
#ifdef UV2
|
23
|
-
attribute vec2 uv2;
|
26
|
+
attribute vec2 uv2;
|
27
|
+
#endif
|
24
28
|
#ifdef VERTEXCOLOR
|
25
|
-
attribute vec4 color;
|
29
|
+
attribute vec4 color;
|
30
|
+
#endif
|
26
31
|
#include<bonesDeclaration>
|
27
32
|
#include<bakedVertexAnimationDeclaration>
|
28
33
|
#include<instancesDeclaration>
|
29
|
-
uniform mat4 view;
|
30
|
-
|
34
|
+
uniform mat4 view;uniform mat4 viewProjection;
|
35
|
+
#ifdef DIFFUSE
|
36
|
+
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
|
37
|
+
#endif
|
31
38
|
#ifdef POINTSIZE
|
32
|
-
uniform float pointSize;
|
33
|
-
|
34
|
-
varying vec3
|
39
|
+
uniform float pointSize;
|
40
|
+
#endif
|
41
|
+
varying vec3 vPositionW;
|
42
|
+
#ifdef NORMAL
|
43
|
+
varying vec3 vNormalW;
|
44
|
+
#endif
|
35
45
|
#ifdef VERTEXCOLOR
|
36
|
-
varying vec4 vColor;
|
46
|
+
varying vec4 vColor;
|
47
|
+
#endif
|
37
48
|
#include<clipPlaneVertexDeclaration>
|
38
49
|
#include<fogVertexDeclaration>
|
39
50
|
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
40
51
|
#define CUSTOM_VERTEX_DEFINITIONS
|
41
|
-
void main(void) {
|
52
|
+
void main(void) {
|
53
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
42
54
|
#include<instancesVertex>
|
43
55
|
#include<bonesVertex>
|
44
56
|
#include<bakedVertexAnimation>
|
45
|
-
vec4 worldPos=finalWorld*vec4(position,1.0);
|
46
|
-
|
57
|
+
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
|
58
|
+
#ifdef NORMAL
|
59
|
+
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
|
60
|
+
#endif
|
47
61
|
#ifndef UV1
|
48
|
-
vec2 uv=vec2(0.,0.);
|
62
|
+
vec2 uv=vec2(0.,0.);
|
63
|
+
#endif
|
49
64
|
#ifndef UV2
|
50
|
-
vec2 uv2=vec2(0.,0.);
|
65
|
+
vec2 uv2=vec2(0.,0.);
|
66
|
+
#endif
|
51
67
|
#ifdef DIFFUSE
|
52
|
-
if (vDiffuseInfos.x==0.)
|
68
|
+
if (vDiffuseInfos.x==0.)
|
69
|
+
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
|
70
|
+
else
|
71
|
+
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
|
72
|
+
#endif
|
53
73
|
#include<clipPlaneVertex>
|
54
74
|
#include<fogVertex>
|
55
75
|
#include<shadowsVertex>[0..maxSimultaneousLights]
|
56
76
|
#include<vertexColorMixing>
|
57
77
|
#if defined(POINTSIZE) && !defined(WEBGPU)
|
58
|
-
gl_PointSize=pointSize;
|
78
|
+
gl_PointSize=pointSize;
|
79
|
+
#endif
|
59
80
|
#define CUSTOM_VERTEX_MAIN_END
|
60
|
-
}
|
81
|
+
}
|
82
|
+
`;
|
61
83
|
// Sideeffect
|
62
84
|
ShaderStore.ShadersStore[name] = shader;
|
63
85
|
/** @internal */
|
package/cell/cell.vertex.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cell.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/cell/cell.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;AACnD,qEAAuD;AAEvD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"cell.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/cell/cell.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;AACnD,qEAAuD;AAEvD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,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\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\n\nconst name = \"cellVertexShader\";\nconst shader = `precision highp float;attribute 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#include<instancesDeclaration>\nuniform mat4 view;uniform mat4 viewProjection;\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\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#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\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{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\nelse\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const cellVertexShader = { name, shader };\n"]}
|
@@ -13,10 +13,13 @@ 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
15
|
const name = "gradientPixelShader";
|
16
|
-
const shader = `precision highp float;
|
17
|
-
|
16
|
+
const shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 topColor;uniform vec4 bottomColor;uniform float offset;uniform float scale;uniform float smoothness;varying vec3 vPositionW;varying vec3 vPosition;
|
17
|
+
#ifdef NORMAL
|
18
|
+
varying vec3 vNormalW;
|
19
|
+
#endif
|
18
20
|
#ifdef VERTEXCOLOR
|
19
|
-
varying vec4 vColor;
|
21
|
+
varying vec4 vColor;
|
22
|
+
#endif
|
20
23
|
#include<helperFunctions>
|
21
24
|
#include<__decl__lightFragment>[0]
|
22
25
|
#include<__decl__lightFragment>[1]
|
@@ -27,26 +30,40 @@ varying vec4 vColor;
|
|
27
30
|
#include<clipPlaneFragmentDeclaration>
|
28
31
|
#include<fogFragmentDeclaration>
|
29
32
|
#define CUSTOM_FRAGMENT_DEFINITIONS
|
30
|
-
void main(void) {
|
33
|
+
void main(void) {
|
34
|
+
#define CUSTOM_FRAGMENT_MAIN_BEGIN
|
31
35
|
#include<clipPlaneFragment>
|
32
|
-
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
|
33
|
-
|
36
|
+
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);float h=vPosition.y*scale+offset;float mysmoothness=clamp(smoothness,0.01,max(smoothness,10.));vec4 baseColor=mix(bottomColor,topColor,max(pow(max(h,0.0),mysmoothness),0.0));vec3 diffuseColor=baseColor.rgb;float alpha=baseColor.a;
|
37
|
+
#ifdef ALPHATEST
|
38
|
+
if (baseColor.a<0.4)
|
39
|
+
discard;
|
40
|
+
#endif
|
34
41
|
#include<depthPrePass>
|
35
42
|
#ifdef VERTEXCOLOR
|
36
|
-
baseColor.rgb*=vColor.rgb;
|
43
|
+
baseColor.rgb*=vColor.rgb;
|
44
|
+
#endif
|
37
45
|
#ifdef NORMAL
|
38
|
-
vec3 normalW=normalize(vNormalW);
|
39
|
-
|
46
|
+
vec3 normalW=normalize(vNormalW);
|
47
|
+
#else
|
48
|
+
vec3 normalW=vec3(1.0,1.0,1.0);
|
49
|
+
#endif
|
40
50
|
#ifdef EMISSIVE
|
41
|
-
vec3 diffuseBase=baseColor.rgb;
|
42
|
-
|
43
|
-
|
51
|
+
vec3 diffuseBase=baseColor.rgb;
|
52
|
+
#else
|
53
|
+
vec3 diffuseBase=vec3(0.,0.,0.);
|
54
|
+
#endif
|
55
|
+
lightingInfo info;float shadow=1.;float glossiness=0.;
|
56
|
+
#include<lightFragment>[0..maxSimultaneousLights]
|
44
57
|
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
45
|
-
alpha*=vColor.a;
|
46
|
-
|
47
|
-
|
58
|
+
alpha*=vColor.a;
|
59
|
+
#endif
|
60
|
+
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
|
61
|
+
#include<fogFragment>
|
62
|
+
gl_FragColor=color;
|
63
|
+
#include<imageProcessingCompatibility>
|
48
64
|
#define CUSTOM_FRAGMENT_MAIN_END
|
49
|
-
}
|
65
|
+
}
|
66
|
+
`;
|
50
67
|
// Sideeffect
|
51
68
|
ShaderStore.ShadersStore[name] = shader;
|
52
69
|
/** @internal */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gradient.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/gradient/gradient.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,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"gradient.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/gradient/gradient.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,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,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 = \"gradientPixelShader\";\nconst shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 topColor;uniform vec4 bottomColor;uniform float offset;uniform float scale;uniform float smoothness;varying vec3 vPositionW;varying vec3 vPosition;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\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#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);float h=vPosition.y*scale+offset;float mysmoothness=clamp(smoothness,0.01,max(smoothness,10.));vec4 baseColor=mix(bottomColor,topColor,max(pow(max(h,0.0),mysmoothness),0.0));vec3 diffuseColor=baseColor.rgb;float alpha=baseColor.a;\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef EMISSIVE\nvec3 diffuseBase=baseColor.rgb;\n#else\nvec3 diffuseBase=vec3(0.,0.,0.);\n#endif\nlightingInfo info;float shadow=1.;float glossiness=0.;\n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gradientPixelShader = { name, shader };\n"]}
|
@@ -15,45 +15,62 @@ import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
|
15
15
|
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
16
16
|
import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
|
17
17
|
const name = "gradientVertexShader";
|
18
|
-
const shader = `precision highp float;
|
19
|
-
|
18
|
+
const shader = `precision highp float;attribute vec3 position;
|
19
|
+
#ifdef NORMAL
|
20
|
+
attribute vec3 normal;
|
21
|
+
#endif
|
20
22
|
#ifdef UV1
|
21
|
-
attribute vec2 uv;
|
23
|
+
attribute vec2 uv;
|
24
|
+
#endif
|
22
25
|
#ifdef UV2
|
23
|
-
attribute vec2 uv2;
|
26
|
+
attribute vec2 uv2;
|
27
|
+
#endif
|
24
28
|
#ifdef VERTEXCOLOR
|
25
|
-
attribute vec4 color;
|
29
|
+
attribute vec4 color;
|
30
|
+
#endif
|
26
31
|
#include<bonesDeclaration>
|
27
32
|
#include<bakedVertexAnimationDeclaration>
|
28
33
|
#include<instancesDeclaration>
|
29
|
-
uniform mat4 view;
|
30
|
-
|
31
|
-
|
32
|
-
|
34
|
+
uniform mat4 view;uniform mat4 viewProjection;
|
35
|
+
#ifdef POINTSIZE
|
36
|
+
uniform float pointSize;
|
37
|
+
#endif
|
38
|
+
varying vec3 vPositionW;varying vec3 vPosition;
|
39
|
+
#ifdef NORMAL
|
40
|
+
varying vec3 vNormalW;
|
41
|
+
#endif
|
33
42
|
#ifdef VERTEXCOLOR
|
34
|
-
varying vec4 vColor;
|
43
|
+
varying vec4 vColor;
|
44
|
+
#endif
|
35
45
|
#include<clipPlaneVertexDeclaration>
|
36
46
|
#include<fogVertexDeclaration>
|
37
47
|
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
38
48
|
#define CUSTOM_VERTEX_DEFINITIONS
|
39
|
-
void main(void) {
|
49
|
+
void main(void) {
|
50
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
40
51
|
#include<instancesVertex>
|
41
52
|
#include<bonesVertex>
|
42
53
|
#include<bakedVertexAnimation>
|
43
|
-
vec4 worldPos=finalWorld*vec4(position,1.0);
|
44
|
-
|
54
|
+
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);vPosition=position;
|
55
|
+
#ifdef NORMAL
|
56
|
+
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
|
57
|
+
#endif
|
45
58
|
#ifndef UV1
|
46
|
-
vec2 uv=vec2(0.,0.);
|
59
|
+
vec2 uv=vec2(0.,0.);
|
60
|
+
#endif
|
47
61
|
#ifndef UV2
|
48
|
-
vec2 uv2=vec2(0.,0.);
|
62
|
+
vec2 uv2=vec2(0.,0.);
|
63
|
+
#endif
|
49
64
|
#include<clipPlaneVertex>
|
50
65
|
#include<fogVertex>
|
51
66
|
#include<shadowsVertex>[0..maxSimultaneousLights]
|
52
67
|
#include<vertexColorMixing>
|
53
68
|
#if defined(POINTSIZE) && !defined(WEBGPU)
|
54
|
-
gl_PointSize=pointSize;
|
69
|
+
gl_PointSize=pointSize;
|
70
|
+
#endif
|
55
71
|
#define CUSTOM_VERTEX_MAIN_END
|
56
|
-
}
|
72
|
+
}
|
73
|
+
`;
|
57
74
|
// Sideeffect
|
58
75
|
ShaderStore.ShadersStore[name] = shader;
|
59
76
|
/** @internal */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gradient.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/gradient/gradient.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;AACnD,qEAAuD;AAEvD,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"gradient.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/gradient/gradient.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;AACnD,qEAAuD;AAEvD,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,oBAAoB,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\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\n\nconst name = \"gradientVertexShader\";\nconst shader = `precision highp float;attribute 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#include<instancesDeclaration>\nuniform mat4 view;uniform mat4 viewProjection;\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\nvarying vec3 vPositionW;varying vec3 vPosition;\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#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);vPosition=position;\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gradientVertexShader = { name, shader };\n"]}
|
package/grid/grid.fragment.js
CHANGED
@@ -7,29 +7,53 @@ const name = "gridPixelShader";
|
|
7
7
|
const shader = `#extension GL_OES_standard_derivatives : enable
|
8
8
|
#define SQRT2 1.41421356
|
9
9
|
#define PI 3.14159
|
10
|
-
precision highp float;
|
10
|
+
precision highp float;uniform float visibility;uniform vec3 mainColor;uniform vec3 lineColor;uniform vec4 gridControl;uniform vec3 gridOffset;varying vec3 vPosition;varying vec3 vNormal;
|
11
|
+
#include<fogFragmentDeclaration>
|
11
12
|
#ifdef OPACITY
|
12
|
-
varying vec2 vOpacityUV;
|
13
|
-
float getDynamicVisibility(float position) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"grid.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/grid/grid.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,0EAA4D;AAC5D,+DAAiD;AACjD,gFAAkE;AAElE,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"grid.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/grid/grid.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,0EAA4D;AAC5D,+DAAiD;AACjD,gFAAkE;AAElE,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"gridPixelShader\";\nconst shader = `#extension GL_OES_standard_derivatives : enable\n#define SQRT2 1.41421356\n#define PI 3.14159\nprecision highp float;uniform float visibility;uniform vec3 mainColor;uniform vec3 lineColor;uniform vec4 gridControl;uniform vec3 gridOffset;varying vec3 vPosition;varying vec3 vNormal;\n#include<fogFragmentDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;uniform sampler2D opacitySampler;uniform vec2 vOpacityInfos;\n#endif\nfloat getDynamicVisibility(float position) {float majorGridFrequency=gridControl.y;if (floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\n{return 1.0;} \nreturn gridControl.z;}\nfloat getAnisotropicAttenuation(float differentialLength) {const float maxNumberOfLines=10.0;return clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);}\nfloat isPointOnLine(float position,float differentialLength) {float fractionPartOfPosition=position-floor(position+0.5); \nfractionPartOfPosition/=differentialLength; \nfractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);float result=0.5+0.5*cos(fractionPartOfPosition*PI); \nreturn result; }\nfloat contributionOnAxis(float position) {float differentialLength=length(vec2(dFdx(position),dFdy(position)));differentialLength*=SQRT2; \nfloat result=isPointOnLine(position,differentialLength);float dynamicVisibility=getDynamicVisibility(position);result*=dynamicVisibility;float anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);result*=anisotropicAttenuation;return result;}\nfloat normalImpactOnAxis(float x) {float normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);return normalImpact;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat gridRatio=gridControl.x;vec3 gridPos=(vPosition+gridOffset.xyz)/gridRatio;float x=contributionOnAxis(gridPos.x);float y=contributionOnAxis(gridPos.y);float z=contributionOnAxis(gridPos.z);vec3 normal=normalize(vNormal);x*=normalImpactOnAxis(normal.x);y*=normalImpactOnAxis(normal.y);z*=normalImpactOnAxis(normal.z);\n#ifdef MAX_LINE \nfloat grid=clamp(max(max(x,y),z),0.,1.);\n#else\nfloat grid=clamp(x+y+z,0.,1.);\n#endif\nvec3 color=mix(mainColor,lineColor,grid);\n#ifdef FOG\n#include<fogFragment>\n#endif\nfloat opacity=1.0;\n#ifdef TRANSPARENT\nopacity=clamp(grid,0.08,gridControl.w*grid);\n#endif \n#ifdef OPACITY\nopacity*=texture2D(opacitySampler,vOpacityUV).a;\n#endif \ngl_FragColor=vec4(color.rgb,opacity*visibility);\n#ifdef TRANSPARENT\n#ifdef PREMULTIPLYALPHA\ngl_FragColor.rgb*=opacity;\n#endif\n#else \n#endif\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gridPixelShader = { name, shader };\n"]}
|
package/grid/grid.vertex.js
CHANGED
@@ -5,25 +5,40 @@ import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
|
|
5
5
|
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
|
6
6
|
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
7
7
|
const name = "gridVertexShader";
|
8
|
-
const shader = `precision highp float;
|
9
|
-
|
8
|
+
const shader = `precision highp float;attribute vec3 position;attribute vec3 normal;
|
9
|
+
#ifdef UV1
|
10
|
+
attribute vec2 uv;
|
11
|
+
#endif
|
10
12
|
#ifdef UV2
|
11
|
-
attribute vec2 uv2;
|
13
|
+
attribute vec2 uv2;
|
14
|
+
#endif
|
12
15
|
#include<instancesDeclaration>
|
13
|
-
uniform mat4 projection;
|
16
|
+
uniform mat4 projection;uniform mat4 view;varying vec3 vPosition;varying vec3 vNormal;
|
17
|
+
#include<fogVertexDeclaration>
|
14
18
|
#ifdef OPACITY
|
15
|
-
varying vec2 vOpacityUV;
|
19
|
+
varying vec2 vOpacityUV;uniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;
|
20
|
+
#endif
|
16
21
|
#define CUSTOM_VERTEX_DEFINITIONS
|
17
|
-
void main(void) {
|
22
|
+
void main(void) {
|
23
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
18
24
|
#include<instancesVertex>
|
19
|
-
vec4 worldPos=finalWorld*vec4(position,1.0);
|
20
|
-
|
25
|
+
vec4 worldPos=finalWorld*vec4(position,1.0);
|
26
|
+
#include<fogVertex>
|
27
|
+
vec4 cameraSpacePosition=view*worldPos;gl_Position=projection*cameraSpacePosition;
|
28
|
+
#ifdef OPACITY
|
21
29
|
#ifndef UV1
|
22
|
-
vec2 uv=vec2(0.,0.);
|
30
|
+
vec2 uv=vec2(0.,0.);
|
31
|
+
#endif
|
23
32
|
#ifndef UV2
|
24
|
-
vec2 uv2=vec2(0.,0.);
|
25
|
-
|
26
|
-
|
33
|
+
vec2 uv2=vec2(0.,0.);
|
34
|
+
#endif
|
35
|
+
if (vOpacityInfos.x==0.)
|
36
|
+
{vOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));}
|
37
|
+
else
|
38
|
+
{vOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));}
|
39
|
+
#endif
|
40
|
+
vPosition=position;vNormal=normal;
|
41
|
+
#define CUSTOM_VERTEX_MAIN_END
|
27
42
|
}`;
|
28
43
|
// Sideeffect
|
29
44
|
ShaderStore.ShadersStore[name] = shader;
|
package/grid/grid.vertex.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"grid.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/grid/grid.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,wEAA0D;AAC1D,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAE/C,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"grid.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/grid/grid.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,wEAA0D;AAC1D,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAE/C,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\n\nconst name = \"gridVertexShader\";\nconst shader = `precision highp float;attribute vec3 position;attribute vec3 normal;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#include<instancesDeclaration>\nuniform mat4 projection;uniform mat4 view;varying vec3 vPosition;varying vec3 vNormal;\n#include<fogVertexDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;uniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\nvec4 worldPos=finalWorld*vec4(position,1.0);\n#include<fogVertex>\nvec4 cameraSpacePosition=view*worldPos;gl_Position=projection*cameraSpacePosition;\n#ifdef OPACITY\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\nif (vOpacityInfos.x==0.)\n{vOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));}\nelse\n{vOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));}\n#endif \nvPosition=position;vNormal=normal;\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gridVertexShader = { name, shader };\n"]}
|
package/mix/mix.fragment.js
CHANGED
@@ -13,54 +13,83 @@ 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
15
|
const name = "mixPixelShader";
|
16
|
-
const shader = `precision highp float;
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
const shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;
|
17
|
+
#ifdef SPECULARTERM
|
18
|
+
uniform vec4 vSpecularColor;
|
19
|
+
#endif
|
20
|
+
varying vec3 vPositionW;
|
21
|
+
#ifdef NORMAL
|
22
|
+
varying vec3 vNormalW;
|
23
|
+
#endif
|
20
24
|
#ifdef VERTEXCOLOR
|
21
|
-
varying vec4 vColor;
|
25
|
+
varying vec4 vColor;
|
26
|
+
#endif
|
22
27
|
#include<helperFunctions>
|
23
28
|
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
24
29
|
#ifdef DIFFUSE
|
25
|
-
varying vec2 vTextureUV;
|
26
|
-
|
27
|
-
uniform sampler2D
|
28
|
-
|
30
|
+
varying vec2 vTextureUV;uniform sampler2D mixMap1Sampler;uniform vec2 vTextureInfos;
|
31
|
+
#ifdef MIXMAP2
|
32
|
+
uniform sampler2D mixMap2Sampler;
|
33
|
+
#endif
|
34
|
+
uniform sampler2D diffuse1Sampler;uniform sampler2D diffuse2Sampler;uniform sampler2D diffuse3Sampler;uniform sampler2D diffuse4Sampler;uniform vec2 diffuse1Infos;uniform vec2 diffuse2Infos;uniform vec2 diffuse3Infos;uniform vec2 diffuse4Infos;
|
35
|
+
#ifdef MIXMAP2
|
36
|
+
uniform sampler2D diffuse5Sampler;uniform sampler2D diffuse6Sampler;uniform sampler2D diffuse7Sampler;uniform sampler2D diffuse8Sampler;uniform vec2 diffuse5Infos;uniform vec2 diffuse6Infos;uniform vec2 diffuse7Infos;uniform vec2 diffuse8Infos;
|
37
|
+
#endif
|
29
38
|
#endif
|
30
39
|
#include<lightsFragmentFunctions>
|
31
40
|
#include<shadowsFragmentFunctions>
|
32
41
|
#include<clipPlaneFragmentDeclaration>
|
33
42
|
#include<fogFragmentDeclaration>
|
34
43
|
#define CUSTOM_FRAGMENT_DEFINITIONS
|
35
|
-
void main(void) {
|
44
|
+
void main(void) {
|
45
|
+
#define CUSTOM_FRAGMENT_MAIN_BEGIN
|
36
46
|
#include<clipPlaneFragment>
|
37
|
-
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
|
38
|
-
|
47
|
+
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 finalMixColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;
|
48
|
+
#ifdef MIXMAP2
|
49
|
+
vec4 mixColor2=vec4(1.,1.,1.,1.);
|
50
|
+
#endif
|
39
51
|
#ifdef SPECULARTERM
|
40
|
-
float glossiness=vSpecularColor.a;
|
41
|
-
|
42
|
-
float
|
43
|
-
|
44
|
-
|
52
|
+
float glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;
|
53
|
+
#else
|
54
|
+
float glossiness=0.;
|
55
|
+
#endif
|
56
|
+
float alpha=vDiffuseColor.a;
|
57
|
+
#ifdef NORMAL
|
58
|
+
vec3 normalW=normalize(vNormalW);
|
59
|
+
#else
|
60
|
+
vec3 normalW=vec3(1.0,1.0,1.0);
|
61
|
+
#endif
|
45
62
|
#ifdef DIFFUSE
|
46
|
-
vec4 mixColor=texture2D(mixMap1Sampler,vTextureUV);
|
47
|
-
mixColor.rgb*=vTextureInfos.y;
|
package/mix/mix.fragment.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mix.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/mix/mix.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,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG
|
1
|
+
{"version":3,"file":"mix.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/mix/mix.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,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ed,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,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 = \"mixPixelShader\";\nconst shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#ifdef DIFFUSE\nvarying vec2 vTextureUV;uniform sampler2D mixMap1Sampler;uniform vec2 vTextureInfos;\n#ifdef MIXMAP2\nuniform sampler2D mixMap2Sampler;\n#endif\nuniform sampler2D diffuse1Sampler;uniform sampler2D diffuse2Sampler;uniform sampler2D diffuse3Sampler;uniform sampler2D diffuse4Sampler;uniform vec2 diffuse1Infos;uniform vec2 diffuse2Infos;uniform vec2 diffuse3Infos;uniform vec2 diffuse4Infos;\n#ifdef MIXMAP2\nuniform sampler2D diffuse5Sampler;uniform sampler2D diffuse6Sampler;uniform sampler2D diffuse7Sampler;uniform sampler2D diffuse8Sampler;uniform vec2 diffuse5Infos;uniform vec2 diffuse6Infos;uniform vec2 diffuse7Infos;uniform vec2 diffuse8Infos;\n#endif\n#endif\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 finalMixColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;\n#ifdef MIXMAP2\nvec4 mixColor2=vec4(1.,1.,1.,1.);\n#endif\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\nfloat alpha=vDiffuseColor.a;\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef DIFFUSE\nvec4 mixColor=texture2D(mixMap1Sampler,vTextureUV);\n#include<depthPrePass>\nmixColor.rgb*=vTextureInfos.y;vec4 diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);vec4 diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);vec4 diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);vec4 diffuse4Color=texture2D(diffuse4Sampler,vTextureUV*diffuse4Infos);diffuse1Color.rgb*=mixColor.r;diffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,mixColor.g);diffuse3Color.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse3Color.rgb,diffuse4Color.rgb,1.0-mixColor.a);\n#ifdef MIXMAP2\nmixColor=texture2D(mixMap2Sampler,vTextureUV);mixColor.rgb*=vTextureInfos.y;vec4 diffuse5Color=texture2D(diffuse5Sampler,vTextureUV*diffuse5Infos);vec4 diffuse6Color=texture2D(diffuse6Sampler,vTextureUV*diffuse6Infos);vec4 diffuse7Color=texture2D(diffuse7Sampler,vTextureUV*diffuse7Infos);vec4 diffuse8Color=texture2D(diffuse8Sampler,vTextureUV*diffuse8Infos);diffuse5Color.rgb=mix(finalMixColor.rgb,diffuse5Color.rgb,mixColor.r);diffuse6Color.rgb=mix(diffuse5Color.rgb,diffuse6Color.rgb,mixColor.g);diffuse7Color.rgb=mix(diffuse6Color.rgb,diffuse7Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse7Color.rgb,diffuse8Color.rgb,1.0-mixColor.a);\n#endif\n#endif\n#ifdef VERTEXCOLOR\nfinalMixColor.rgb*=vColor.rgb;\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor*finalMixColor.rgb,0.0,1.0);vec4 color=vec4(finalDiffuse+finalSpecular,alpha);\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const mixPixelShader = { name, shader };\n"]}
|