@babylonjs/materials 5.21.0 → 5.23.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.
Files changed (121) hide show
  1. package/cell/cell.fragment.js +14 -2
  2. package/cell/cell.fragment.js.map +1 -1
  3. package/cell/cell.vertex.js +45 -3
  4. package/cell/cell.vertex.js.map +1 -1
  5. package/cell/cellMaterial.js +112 -120
  6. package/cell/cellMaterial.js.map +1 -1
  7. package/custom/customMaterial.js +69 -81
  8. package/custom/customMaterial.js.map +1 -1
  9. package/custom/pbrCustomMaterial.js +80 -89
  10. package/custom/pbrCustomMaterial.js.map +1 -1
  11. package/fire/fire.fragment.js +44 -3
  12. package/fire/fire.fragment.js.map +1 -1
  13. package/fire/fire.vertex.js +54 -3
  14. package/fire/fire.vertex.js.map +1 -1
  15. package/fire/fireMaterial.js +101 -109
  16. package/fire/fireMaterial.js.map +1 -1
  17. package/fur/fur.fragment.js +67 -3
  18. package/fur/fur.fragment.js.map +1 -1
  19. package/fur/fur.vertex.js +97 -3
  20. package/fur/fur.vertex.js.map +1 -1
  21. package/fur/furMaterial.js +181 -193
  22. package/fur/furMaterial.js.map +1 -1
  23. package/gradient/gradient.fragment.js +36 -3
  24. package/gradient/gradient.fragment.js.map +1 -1
  25. package/gradient/gradient.vertex.js +41 -3
  26. package/gradient/gradient.vertex.js.map +1 -1
  27. package/gradient/gradientMaterial.js +113 -121
  28. package/gradient/gradientMaterial.js.map +1 -1
  29. package/grid/grid.fragment.js +8 -2
  30. package/grid/grid.fragment.js.map +1 -1
  31. package/grid/grid.vertex.js +22 -3
  32. package/grid/grid.vertex.js.map +1 -1
  33. package/grid/gridMaterial.js +93 -101
  34. package/grid/gridMaterial.js.map +1 -1
  35. package/lava/lava.fragment.js +62 -3
  36. package/lava/lava.fragment.js.map +1 -1
  37. package/lava/lava.vertex.js +84 -3
  38. package/lava/lava.vertex.js.map +1 -1
  39. package/lava/lavaMaterial.js +175 -183
  40. package/lava/lavaMaterial.js.map +1 -1
  41. package/legacy/legacy-cell.js +2 -2
  42. package/legacy/legacy-cell.js.map +1 -1
  43. package/legacy/legacy-custom.js +2 -2
  44. package/legacy/legacy-custom.js.map +1 -1
  45. package/legacy/legacy-fire.js +2 -2
  46. package/legacy/legacy-fire.js.map +1 -1
  47. package/legacy/legacy-fur.js +2 -2
  48. package/legacy/legacy-fur.js.map +1 -1
  49. package/legacy/legacy-gradient.js +2 -2
  50. package/legacy/legacy-gradient.js.map +1 -1
  51. package/legacy/legacy-grid.js +2 -2
  52. package/legacy/legacy-grid.js.map +1 -1
  53. package/legacy/legacy-lava.js +2 -2
  54. package/legacy/legacy-lava.js.map +1 -1
  55. package/legacy/legacy-mix.js +2 -2
  56. package/legacy/legacy-mix.js.map +1 -1
  57. package/legacy/legacy-normal.js +2 -2
  58. package/legacy/legacy-normal.js.map +1 -1
  59. package/legacy/legacy-shadowOnly.js +2 -2
  60. package/legacy/legacy-shadowOnly.js.map +1 -1
  61. package/legacy/legacy-simple.js +2 -2
  62. package/legacy/legacy-simple.js.map +1 -1
  63. package/legacy/legacy-sky.js +2 -2
  64. package/legacy/legacy-sky.js.map +1 -1
  65. package/legacy/legacy-terrain.js +2 -2
  66. package/legacy/legacy-terrain.js.map +1 -1
  67. package/legacy/legacy-triPlanar.js +2 -2
  68. package/legacy/legacy-triPlanar.js.map +1 -1
  69. package/legacy/legacy-water.js +2 -2
  70. package/legacy/legacy-water.js.map +1 -1
  71. package/legacy/legacy.js +2 -2
  72. package/legacy/legacy.js.map +1 -1
  73. package/mix/mix.fragment.js +33 -2
  74. package/mix/mix.fragment.js.map +1 -1
  75. package/mix/mix.vertex.js +67 -3
  76. package/mix/mix.vertex.js.map +1 -1
  77. package/mix/mixMaterial.js +166 -174
  78. package/mix/mixMaterial.js.map +1 -1
  79. package/normal/normal.fragment.js +41 -3
  80. package/normal/normal.fragment.js.map +1 -1
  81. package/normal/normal.vertex.js +42 -3
  82. package/normal/normal.vertex.js.map +1 -1
  83. package/normal/normalMaterial.js +143 -151
  84. package/normal/normalMaterial.js.map +1 -1
  85. package/package.json +3 -6
  86. package/shadowOnly/shadowOnly.fragment.js +21 -3
  87. package/shadowOnly/shadowOnly.fragment.js.map +1 -1
  88. package/shadowOnly/shadowOnly.vertex.js +30 -3
  89. package/shadowOnly/shadowOnly.vertex.js.map +1 -1
  90. package/shadowOnly/shadowOnlyMaterial.js +73 -89
  91. package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
  92. package/simple/simple.fragment.js +36 -3
  93. package/simple/simple.fragment.js.map +1 -1
  94. package/simple/simple.vertex.js +45 -3
  95. package/simple/simple.vertex.js.map +1 -1
  96. package/simple/simpleMaterial.js +102 -110
  97. package/simple/simpleMaterial.js.map +1 -1
  98. package/sky/sky.fragment.js +17 -3
  99. package/sky/sky.fragment.js.map +1 -1
  100. package/sky/sky.vertex.js +20 -3
  101. package/sky/sky.vertex.js.map +1 -1
  102. package/sky/skyMaterial.js +111 -119
  103. package/sky/skyMaterial.js.map +1 -1
  104. package/terrain/terrain.fragment.js +36 -2
  105. package/terrain/terrain.fragment.js.map +1 -1
  106. package/terrain/terrain.vertex.js +67 -3
  107. package/terrain/terrain.vertex.js.map +1 -1
  108. package/terrain/terrainMaterial.js +148 -156
  109. package/terrain/terrainMaterial.js.map +1 -1
  110. package/triPlanar/triPlanarMaterial.js +157 -165
  111. package/triPlanar/triPlanarMaterial.js.map +1 -1
  112. package/triPlanar/triplanar.fragment.js +64 -3
  113. package/triPlanar/triplanar.fragment.js.map +1 -1
  114. package/triPlanar/triplanar.vertex.js +45 -3
  115. package/triPlanar/triplanar.vertex.js.map +1 -1
  116. package/water/water.fragment.js +83 -3
  117. package/water/water.fragment.js.map +1 -1
  118. package/water/water.vertex.js +56 -3
  119. package/water/water.vertex.js.map +1 -1
  120. package/water/waterMaterial.js +284 -313
  121. package/water/waterMaterial.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { __decorate, __extends } from "tslib";
1
+ import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
2
  import { 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";
@@ -10,66 +10,61 @@ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
10
10
  import "./gradient.fragment.js";
11
11
  import "./gradient.vertex.js";
12
12
  import { EffectFallbacks } from "@babylonjs/core/Materials/effectFallbacks.js";
13
- var GradientMaterialDefines = /** @class */ (function (_super) {
14
- __extends(GradientMaterialDefines, _super);
15
- function GradientMaterialDefines() {
16
- var _this = _super.call(this) || this;
17
- _this.EMISSIVE = 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.NORMAL = false;
29
- _this.UV1 = false;
30
- _this.UV2 = false;
31
- _this.VERTEXCOLOR = false;
32
- _this.VERTEXALPHA = false;
33
- _this.NUM_BONE_INFLUENCERS = 0;
34
- _this.BonesPerMesh = 0;
35
- _this.INSTANCES = false;
36
- _this.INSTANCESCOLOR = false;
37
- _this.IMAGEPROCESSINGPOSTPROCESS = false;
38
- _this.SKIPFINALCOLORCLAMP = false;
39
- _this.rebuild();
40
- return _this;
13
+ class GradientMaterialDefines extends MaterialDefines {
14
+ constructor() {
15
+ super();
16
+ this.EMISSIVE = false;
17
+ this.CLIPPLANE = false;
18
+ this.CLIPPLANE2 = false;
19
+ this.CLIPPLANE3 = false;
20
+ this.CLIPPLANE4 = false;
21
+ this.CLIPPLANE5 = false;
22
+ this.CLIPPLANE6 = false;
23
+ this.ALPHATEST = false;
24
+ this.DEPTHPREPASS = false;
25
+ this.POINTSIZE = false;
26
+ this.FOG = false;
27
+ this.NORMAL = false;
28
+ this.UV1 = false;
29
+ this.UV2 = false;
30
+ this.VERTEXCOLOR = false;
31
+ this.VERTEXALPHA = false;
32
+ this.NUM_BONE_INFLUENCERS = 0;
33
+ this.BonesPerMesh = 0;
34
+ this.INSTANCES = false;
35
+ this.INSTANCESCOLOR = false;
36
+ this.IMAGEPROCESSINGPOSTPROCESS = false;
37
+ this.SKIPFINALCOLORCLAMP = false;
38
+ this.rebuild();
41
39
  }
42
- return GradientMaterialDefines;
43
- }(MaterialDefines));
44
- var GradientMaterial = /** @class */ (function (_super) {
45
- __extends(GradientMaterial, _super);
46
- function GradientMaterial(name, scene) {
47
- var _this = _super.call(this, name, scene) || this;
48
- _this._maxSimultaneousLights = 4;
40
+ }
41
+ export class GradientMaterial extends PushMaterial {
42
+ constructor(name, scene) {
43
+ super(name, scene);
44
+ this._maxSimultaneousLights = 4;
49
45
  // The gradient top color, red by default
50
- _this.topColor = new Color3(1, 0, 0);
51
- _this.topColorAlpha = 1.0;
46
+ this.topColor = new Color3(1, 0, 0);
47
+ this.topColorAlpha = 1.0;
52
48
  // The gradient top color, blue by default
53
- _this.bottomColor = new Color3(0, 0, 1);
54
- _this.bottomColorAlpha = 1.0;
49
+ this.bottomColor = new Color3(0, 0, 1);
50
+ this.bottomColorAlpha = 1.0;
55
51
  // Gradient offset
56
- _this.offset = 0;
57
- _this.scale = 1.0;
58
- _this.smoothness = 1.0;
59
- _this._disableLighting = false;
60
- return _this;
52
+ this.offset = 0;
53
+ this.scale = 1.0;
54
+ this.smoothness = 1.0;
55
+ this._disableLighting = false;
61
56
  }
62
- GradientMaterial.prototype.needAlphaBlending = function () {
57
+ needAlphaBlending() {
63
58
  return this.alpha < 1.0 || this.topColorAlpha < 1.0 || this.bottomColorAlpha < 1.0;
64
- };
65
- GradientMaterial.prototype.needAlphaTesting = function () {
59
+ }
60
+ needAlphaTesting() {
66
61
  return true;
67
- };
68
- GradientMaterial.prototype.getAlphaTestTexture = function () {
62
+ }
63
+ getAlphaTestTexture() {
69
64
  return null;
70
- };
65
+ }
71
66
  // Methods
72
- GradientMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
67
+ isReadyForSubMesh(mesh, subMesh, useInstances) {
73
68
  if (this.isFrozen) {
74
69
  if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {
75
70
  return true;
@@ -78,12 +73,12 @@ var GradientMaterial = /** @class */ (function (_super) {
78
73
  if (!subMesh.materialDefines) {
79
74
  subMesh.materialDefines = new GradientMaterialDefines();
80
75
  }
81
- var defines = subMesh.materialDefines;
82
- var scene = this.getScene();
76
+ const defines = subMesh.materialDefines;
77
+ const scene = this.getScene();
83
78
  if (this._isReadyForSubMesh(subMesh)) {
84
79
  return true;
85
80
  }
86
- var engine = scene.getEngine();
81
+ const engine = scene.getEngine();
87
82
  MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
88
83
  MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
89
84
  defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
@@ -95,7 +90,7 @@ var GradientMaterial = /** @class */ (function (_super) {
95
90
  defines.markAsProcessed();
96
91
  scene.resetCachedMaterial();
97
92
  // Fallbacks
98
- var fallbacks = new EffectFallbacks();
93
+ const fallbacks = new EffectFallbacks();
99
94
  if (defines.FOG) {
100
95
  fallbacks.addFallback(1, "FOG");
101
96
  }
@@ -105,7 +100,7 @@ var GradientMaterial = /** @class */ (function (_super) {
105
100
  }
106
101
  defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
107
102
  //Attributes
108
- var attribs = [VertexBuffer.PositionKind];
103
+ const attribs = [VertexBuffer.PositionKind];
109
104
  if (defines.NORMAL) {
110
105
  attribs.push(VertexBuffer.NormalKind);
111
106
  }
@@ -121,9 +116,9 @@ var GradientMaterial = /** @class */ (function (_super) {
121
116
  MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
122
117
  MaterialHelper.PrepareAttributesForInstances(attribs, defines);
123
118
  // Legacy browser patch
124
- var shaderName = "gradient";
125
- var join = defines.toString();
126
- var uniforms = [
119
+ const shaderName = "gradient";
120
+ const join = defines.toString();
121
+ const uniforms = [
127
122
  "world",
128
123
  "view",
129
124
  "viewProjection",
@@ -145,8 +140,8 @@ var GradientMaterial = /** @class */ (function (_super) {
145
140
  "smoothness",
146
141
  "scale",
147
142
  ];
148
- var samplers = [];
149
- var uniformBuffers = new Array();
143
+ const samplers = [];
144
+ const uniformBuffers = new Array();
150
145
  MaterialHelper.PrepareUniformsAndSamplersList({
151
146
  uniformsNames: uniforms,
152
147
  uniformBuffersNames: uniformBuffers,
@@ -173,14 +168,14 @@ var GradientMaterial = /** @class */ (function (_super) {
173
168
  subMesh.effect._wasPreviouslyReady = true;
174
169
  subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;
175
170
  return true;
176
- };
177
- GradientMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
178
- var scene = this.getScene();
179
- var defines = subMesh.materialDefines;
171
+ }
172
+ bindForSubMesh(world, mesh, subMesh) {
173
+ const scene = this.getScene();
174
+ const defines = subMesh.materialDefines;
180
175
  if (!defines) {
181
176
  return;
182
177
  }
183
- var effect = subMesh.effect;
178
+ const effect = subMesh.effect;
184
179
  if (!effect) {
185
180
  return;
186
181
  }
@@ -214,64 +209,61 @@ var GradientMaterial = /** @class */ (function (_super) {
214
209
  this._activeEffect.setFloat("scale", this.scale);
215
210
  this._activeEffect.setFloat("smoothness", this.smoothness);
216
211
  this._afterBind(mesh, this._activeEffect);
217
- };
218
- GradientMaterial.prototype.getAnimatables = function () {
212
+ }
213
+ getAnimatables() {
219
214
  return [];
220
- };
221
- GradientMaterial.prototype.dispose = function (forceDisposeEffect) {
222
- _super.prototype.dispose.call(this, forceDisposeEffect);
223
- };
224
- GradientMaterial.prototype.clone = function (name) {
225
- var _this = this;
226
- return SerializationHelper.Clone(function () { return new GradientMaterial(name, _this.getScene()); }, this);
227
- };
228
- GradientMaterial.prototype.serialize = function () {
229
- var serializationObject = _super.prototype.serialize.call(this);
215
+ }
216
+ dispose(forceDisposeEffect) {
217
+ super.dispose(forceDisposeEffect);
218
+ }
219
+ clone(name) {
220
+ return SerializationHelper.Clone(() => new GradientMaterial(name, this.getScene()), this);
221
+ }
222
+ serialize() {
223
+ const serializationObject = super.serialize();
230
224
  serializationObject.customType = "BABYLON.GradientMaterial";
231
225
  return serializationObject;
232
- };
233
- GradientMaterial.prototype.getClassName = function () {
226
+ }
227
+ getClassName() {
234
228
  return "GradientMaterial";
235
- };
229
+ }
236
230
  // Statics
237
- GradientMaterial.Parse = function (source, scene, rootUrl) {
238
- return SerializationHelper.Parse(function () { return new GradientMaterial(source.name, scene); }, source, scene, rootUrl);
239
- };
240
- __decorate([
241
- serialize("maxSimultaneousLights")
242
- ], GradientMaterial.prototype, "_maxSimultaneousLights", void 0);
243
- __decorate([
244
- expandToProperty("_markAllSubMeshesAsLightsDirty")
245
- ], GradientMaterial.prototype, "maxSimultaneousLights", void 0);
246
- __decorate([
247
- serializeAsColor3()
248
- ], GradientMaterial.prototype, "topColor", void 0);
249
- __decorate([
250
- serialize()
251
- ], GradientMaterial.prototype, "topColorAlpha", void 0);
252
- __decorate([
253
- serializeAsColor3()
254
- ], GradientMaterial.prototype, "bottomColor", void 0);
255
- __decorate([
256
- serialize()
257
- ], GradientMaterial.prototype, "bottomColorAlpha", void 0);
258
- __decorate([
259
- serialize()
260
- ], GradientMaterial.prototype, "offset", void 0);
261
- __decorate([
262
- serialize()
263
- ], GradientMaterial.prototype, "scale", void 0);
264
- __decorate([
265
- serialize()
266
- ], GradientMaterial.prototype, "smoothness", void 0);
267
- __decorate([
268
- serialize("disableLighting")
269
- ], GradientMaterial.prototype, "_disableLighting", void 0);
270
- __decorate([
271
- expandToProperty("_markAllSubMeshesAsLightsDirty")
272
- ], GradientMaterial.prototype, "disableLighting", void 0);
273
- return GradientMaterial;
274
- }(PushMaterial));
275
- export { GradientMaterial };
231
+ static Parse(source, scene, rootUrl) {
232
+ return SerializationHelper.Parse(() => new GradientMaterial(source.name, scene), source, scene, rootUrl);
233
+ }
234
+ }
235
+ __decorate([
236
+ serialize("maxSimultaneousLights")
237
+ ], GradientMaterial.prototype, "_maxSimultaneousLights", void 0);
238
+ __decorate([
239
+ expandToProperty("_markAllSubMeshesAsLightsDirty")
240
+ ], GradientMaterial.prototype, "maxSimultaneousLights", void 0);
241
+ __decorate([
242
+ serializeAsColor3()
243
+ ], GradientMaterial.prototype, "topColor", void 0);
244
+ __decorate([
245
+ serialize()
246
+ ], GradientMaterial.prototype, "topColorAlpha", void 0);
247
+ __decorate([
248
+ serializeAsColor3()
249
+ ], GradientMaterial.prototype, "bottomColor", void 0);
250
+ __decorate([
251
+ serialize()
252
+ ], GradientMaterial.prototype, "bottomColorAlpha", void 0);
253
+ __decorate([
254
+ serialize()
255
+ ], GradientMaterial.prototype, "offset", void 0);
256
+ __decorate([
257
+ serialize()
258
+ ], GradientMaterial.prototype, "scale", void 0);
259
+ __decorate([
260
+ serialize()
261
+ ], GradientMaterial.prototype, "smoothness", void 0);
262
+ __decorate([
263
+ serialize("disableLighting")
264
+ ], GradientMaterial.prototype, "_disableLighting", void 0);
265
+ __decorate([
266
+ expandToProperty("_markAllSubMeshesAsLightsDirty")
267
+ ], GradientMaterial.prototype, "disableLighting", void 0);
276
268
  RegisterClass("BABYLON.GradientMaterial", GradientMaterial);
277
269
  //# sourceMappingURL=gradientMaterial.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradientMaterial.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/gradient/gradientMaterial.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2CAA6B;AAE3G,OAAO,EAAE,MAAM,EAAE,4CAA8B;AAG/C,OAAO,EAAE,eAAe,EAAE,qDAAuC;AACjE,OAAO,EAAE,cAAc,EAAE,oDAAsC;AAE/D,OAAO,EAAE,YAAY,EAAE,kDAAoC;AAC3D,OAAO,EAAE,YAAY,EAAE,0CAA4B;AAInD,OAAO,EAAE,KAAK,EAAE,iCAAmB;AACnC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AAEpD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,qDAAuC;AAEjE;IAAsC,2CAAe;IAwBjD;QAAA,YACI,iBAAO,SAEV;QA1BM,cAAQ,GAAG,KAAK,CAAC;QACjB,eAAS,GAAG,KAAK,CAAC;QAClB,gBAAU,GAAG,KAAK,CAAC;QACnB,gBAAU,GAAG,KAAK,CAAC;QACnB,gBAAU,GAAG,KAAK,CAAC;QACnB,gBAAU,GAAG,KAAK,CAAC;QACnB,gBAAU,GAAG,KAAK,CAAC;QACnB,eAAS,GAAG,KAAK,CAAC;QAClB,kBAAY,GAAG,KAAK,CAAC;QACrB,eAAS,GAAG,KAAK,CAAC;QAClB,SAAG,GAAG,KAAK,CAAC;QACZ,YAAM,GAAG,KAAK,CAAC;QACf,SAAG,GAAG,KAAK,CAAC;QACZ,SAAG,GAAG,KAAK,CAAC;QACZ,iBAAW,GAAG,KAAK,CAAC;QACpB,iBAAW,GAAG,KAAK,CAAC;QACpB,0BAAoB,GAAG,CAAC,CAAC;QACzB,kBAAY,GAAG,CAAC,CAAC;QACjB,eAAS,GAAG,KAAK,CAAC;QAClB,oBAAc,GAAG,KAAK,CAAC;QACvB,gCAA0B,GAAG,KAAK,CAAC;QACnC,yBAAmB,GAAG,KAAK,CAAC;QAI/B,KAAI,CAAC,OAAO,EAAE,CAAC;;IACnB,CAAC;IACL,8BAAC;AAAD,CAAC,AA5BD,CAAsC,eAAe,GA4BpD;AAED;IAAsC,oCAAY;IAmC9C,0BAAY,IAAY,EAAE,KAAa;QAAvC,YACI,kBAAM,IAAI,EAAE,KAAK,CAAC,SACrB;QAnCO,4BAAsB,GAAG,CAAC,CAAC;QAInC,yCAAyC;QAElC,cAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAG/B,mBAAa,GAAG,GAAG,CAAC;QAE3B,0CAA0C;QAEnC,iBAAW,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAGlC,sBAAgB,GAAG,GAAG,CAAC;QAE9B,kBAAkB;QAEX,YAAM,GAAG,CAAC,CAAC;QAGX,WAAK,GAAG,GAAG,CAAC;QAGZ,gBAAU,GAAG,GAAG,CAAC;QAGhB,sBAAgB,GAAG,KAAK,CAAC;;IAMjC,CAAC;IAEM,4CAAiB,GAAxB;QACI,OAAO,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;IACvF,CAAC;IAEM,2CAAgB,GAAvB;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,8CAAmB,GAA1B;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;IACH,4CAAiB,GAAxB,UAAyB,IAAkB,EAAE,OAAgB,EAAE,YAAsB;QACjF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,4BAA4B,KAAK,YAAY,EAAE;gBACtH,OAAO,IAAI,CAAC;aACf;SACJ;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAC1B,OAAO,CAAC,eAAe,GAAG,IAAI,uBAAuB,EAAE,CAAC;SAC3D;QAED,IAAM,OAAO,GAA4B,OAAO,CAAC,eAAe,CAAC;QACjE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC;SACf;QAED,IAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAEjC,cAAc,CAAC,iCAAiC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtG,cAAc,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAExI,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE/I,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEzC,UAAU;QACV,cAAc,CAAC,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEvE,qBAAqB;QACrB,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,eAAe,EAAE,CAAC;YAE1B,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE5B,YAAY;YACZ,IAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,GAAG,EAAE;gBACb,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACnC;YAED,cAAc,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAE7D,IAAI,OAAO,CAAC,oBAAoB,GAAG,CAAC,EAAE;gBAClC,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC7C;YAED,OAAO,CAAC,0BAA0B,GAAG,KAAK,CAAC,4BAA4B,CAAC,kBAAkB,CAAC;YAE3F,YAAY;YACZ,IAAM,OAAO,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAE5C,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aACzC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACrC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aACtC;YAED,IAAI,OAAO,CAAC,WAAW,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aACxC;YAED,cAAc,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC5E,cAAc,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE/D,uBAAuB;YACvB,IAAM,UAAU,GAAG,UAAU,CAAC;YAC9B,IAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEhC,IAAM,QAAQ,GAAG;gBACb,OAAO;gBACP,MAAM;gBACN,gBAAgB;gBAChB,cAAc;gBACd,aAAa;gBACb,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,QAAQ;gBACR,YAAY;gBACZ,aAAa;gBACb,aAAa;gBACb,aAAa;gBACb,aAAa;gBACb,aAAa;gBACb,UAAU;gBACV,aAAa;gBACb,QAAQ;gBACR,YAAY;gBACZ,OAAO;aACV,CAAC;YACF,IAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAM,cAAc,GAAG,IAAI,KAAK,EAAU,CAAC;YAE3C,cAAc,CAAC,8BAA8B,CAAyB;gBAClE,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,cAAc;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAO;gBAChB,qBAAqB,EAAE,CAAC;aAC3B,CAAC,CAAC;YAEH,OAAO,CAAC,SAAS,CACb,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,CAC1B,UAAU,EACc;gBACpB,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,cAAc;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE;aAChD,EACD,MAAM,CACT,EACD,OAAO,EACP,IAAI,CAAC,gBAAgB,CACxB,CAAC;SACL;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAC,YAAY,CAAC;QAE7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yCAAc,GAArB,UAAsB,KAAa,EAAE,IAAU,EAAE,OAAgB;QAC7D,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAM,OAAO,GAA4B,OAAO,CAAC,eAAe,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QAED,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACT,OAAO;SACV;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAE5B,WAAW;QACX,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE3E,QAAQ;QACR,cAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YACjC,aAAa;YACb,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE5C,aAAa;YACb,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC5D;YAED,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACjC;QAED,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC9C,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACnG;QAED,OAAO;QACP,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,YAAY,EAAE;YAC3E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM;QACN,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,yCAAc,GAArB;QACI,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,kCAAO,GAAd,UAAe,kBAA4B;QACvC,iBAAM,OAAO,YAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAEM,gCAAK,GAAZ,UAAa,IAAY;QAAzB,iBAEC;QADG,OAAO,mBAAmB,CAAC,KAAK,CAAC,cAAM,OAAA,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,EAA3C,CAA2C,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAEM,oCAAS,GAAhB;QACI,IAAM,mBAAmB,GAAG,iBAAM,SAAS,WAAE,CAAC;QAC9C,mBAAmB,CAAC,UAAU,GAAG,0BAA0B,CAAC;QAC5D,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEM,uCAAY,GAAnB;QACI,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED,UAAU;IACI,sBAAK,GAAnB,UAAoB,MAAW,EAAE,KAAY,EAAE,OAAe;QAC1D,OAAO,mBAAmB,CAAC,KAAK,CAAC,cAAM,OAAA,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAxC,CAAwC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7G,CAAC;IA/QD;QADC,SAAS,CAAC,uBAAuB,CAAC;oEACA;IAEnC;QADC,gBAAgB,CAAC,gCAAgC,CAAC;mEACd;IAIrC;QADC,iBAAiB,EAAE;sDACkB;IAGtC;QADC,SAAS,EAAE;2DACe;IAI3B;QADC,iBAAiB,EAAE;yDACqB;IAGzC;QADC,SAAS,EAAE;8DACkB;IAI9B;QADC,SAAS,EAAE;oDACM;IAGlB;QADC,SAAS,EAAE;mDACO;IAGnB;QADC,SAAS,EAAE;wDACY;IAGxB;QADC,SAAS,CAAC,iBAAiB,CAAC;8DACI;IAEjC;QADC,gBAAgB,CAAC,gCAAgC,CAAC;6DACnB;IAiPpC,uBAAC;CAAA,AAlRD,CAAsC,YAAY,GAkRjD;SAlRY,gBAAgB;AAoR7B,aAAa,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nimport \"./gradient.fragment\";\r\nimport \"./gradient.vertex\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\n\r\nclass GradientMaterialDefines extends MaterialDefines {\r\n public EMISSIVE = false;\r\n public CLIPPLANE = false;\r\n public CLIPPLANE2 = false;\r\n public CLIPPLANE3 = false;\r\n public CLIPPLANE4 = false;\r\n public CLIPPLANE5 = false;\r\n public CLIPPLANE6 = false;\r\n public ALPHATEST = false;\r\n public DEPTHPREPASS = false;\r\n public POINTSIZE = false;\r\n public FOG = false;\r\n public NORMAL = false;\r\n public UV1 = false;\r\n public UV2 = false;\r\n public VERTEXCOLOR = false;\r\n public VERTEXALPHA = false;\r\n public NUM_BONE_INFLUENCERS = 0;\r\n public BonesPerMesh = 0;\r\n public INSTANCES = false;\r\n public INSTANCESCOLOR = false;\r\n public IMAGEPROCESSINGPOSTPROCESS = false;\r\n public SKIPFINALCOLORCLAMP = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class GradientMaterial extends PushMaterial {\r\n @serialize(\"maxSimultaneousLights\")\r\n private _maxSimultaneousLights = 4;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public maxSimultaneousLights: number;\r\n\r\n // The gradient top color, red by default\r\n @serializeAsColor3()\r\n public topColor = new Color3(1, 0, 0);\r\n\r\n @serialize()\r\n public topColorAlpha = 1.0;\r\n\r\n // The gradient top color, blue by default\r\n @serializeAsColor3()\r\n public bottomColor = new Color3(0, 0, 1);\r\n\r\n @serialize()\r\n public bottomColorAlpha = 1.0;\r\n\r\n // Gradient offset\r\n @serialize()\r\n public offset = 0;\r\n\r\n @serialize()\r\n public scale = 1.0;\r\n\r\n @serialize()\r\n public smoothness = 1.0;\r\n\r\n @serialize(\"disableLighting\")\r\n private _disableLighting = false;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public disableLighting: boolean;\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return this.alpha < 1.0 || this.topColorAlpha < 1.0 || this.bottomColorAlpha < 1.0;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return true;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new GradientMaterialDefines();\r\n }\r\n\r\n const defines = <GradientMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\r\n\r\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\r\n\r\n defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\r\n\r\n defines.EMISSIVE = this._disableLighting;\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\r\n\r\n if (defines.NUM_BONE_INFLUENCERS > 0) {\r\n fallbacks.addCPUSkinningFallback(0, mesh);\r\n }\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n // Legacy browser patch\r\n const shaderName = \"gradient\";\r\n const join = defines.toString();\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"view\",\r\n \"viewProjection\",\r\n \"vEyePosition\",\r\n \"vLightsType\",\r\n \"vFogInfos\",\r\n \"vFogColor\",\r\n \"pointSize\",\r\n \"mBones\",\r\n \"vClipPlane\",\r\n \"vClipPlane2\",\r\n \"vClipPlane3\",\r\n \"vClipPlane4\",\r\n \"vClipPlane5\",\r\n \"vClipPlane6\",\r\n \"topColor\",\r\n \"bottomColor\",\r\n \"offset\",\r\n \"smoothness\",\r\n \"scale\",\r\n ];\r\n const samplers: string[] = [];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4,\r\n });\r\n\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n },\r\n engine\r\n ),\r\n defines,\r\n this._materialContext\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <GradientMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\r\n\r\n // Bones\r\n MaterialHelper.BindBonesParameters(mesh, effect);\r\n\r\n if (this._mustRebind(scene, effect)) {\r\n // Clip plane\r\n MaterialHelper.BindClipPlane(effect, scene);\r\n\r\n // Point size\r\n if (this.pointsCloud) {\r\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\r\n }\r\n\r\n scene.bindEyePosition(effect);\r\n }\r\n\r\n if (scene.lightsEnabled && !this.disableLighting) {\r\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, this.maxSimultaneousLights);\r\n }\r\n\r\n // View\r\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\r\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\r\n }\r\n\r\n // Fog\r\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\r\n\r\n this._activeEffect.setColor4(\"topColor\", this.topColor, this.topColorAlpha);\r\n this._activeEffect.setColor4(\"bottomColor\", this.bottomColor, this.bottomColorAlpha);\r\n this._activeEffect.setFloat(\"offset\", this.offset);\r\n this._activeEffect.setFloat(\"scale\", this.scale);\r\n this._activeEffect.setFloat(\"smoothness\", this.smoothness);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n public getAnimatables(): IAnimatable[] {\r\n return [];\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public clone(name: string): GradientMaterial {\r\n return SerializationHelper.Clone(() => new GradientMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.GradientMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public getClassName(): string {\r\n return \"GradientMaterial\";\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): GradientMaterial {\r\n return SerializationHelper.Parse(() => new GradientMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GradientMaterial\", GradientMaterial);\r\n"]}
1
+ {"version":3,"file":"gradientMaterial.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/gradient/gradientMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nimport \"./gradient.fragment\";\r\nimport \"./gradient.vertex\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\n\r\nclass GradientMaterialDefines extends MaterialDefines {\r\n public EMISSIVE = false;\r\n public CLIPPLANE = false;\r\n public CLIPPLANE2 = false;\r\n public CLIPPLANE3 = false;\r\n public CLIPPLANE4 = false;\r\n public CLIPPLANE5 = false;\r\n public CLIPPLANE6 = false;\r\n public ALPHATEST = false;\r\n public DEPTHPREPASS = false;\r\n public POINTSIZE = false;\r\n public FOG = false;\r\n public NORMAL = false;\r\n public UV1 = false;\r\n public UV2 = false;\r\n public VERTEXCOLOR = false;\r\n public VERTEXALPHA = false;\r\n public NUM_BONE_INFLUENCERS = 0;\r\n public BonesPerMesh = 0;\r\n public INSTANCES = false;\r\n public INSTANCESCOLOR = false;\r\n public IMAGEPROCESSINGPOSTPROCESS = false;\r\n public SKIPFINALCOLORCLAMP = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class GradientMaterial extends PushMaterial {\r\n @serialize(\"maxSimultaneousLights\")\r\n private _maxSimultaneousLights = 4;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public maxSimultaneousLights: number;\r\n\r\n // The gradient top color, red by default\r\n @serializeAsColor3()\r\n public topColor = new Color3(1, 0, 0);\r\n\r\n @serialize()\r\n public topColorAlpha = 1.0;\r\n\r\n // The gradient top color, blue by default\r\n @serializeAsColor3()\r\n public bottomColor = new Color3(0, 0, 1);\r\n\r\n @serialize()\r\n public bottomColorAlpha = 1.0;\r\n\r\n // Gradient offset\r\n @serialize()\r\n public offset = 0;\r\n\r\n @serialize()\r\n public scale = 1.0;\r\n\r\n @serialize()\r\n public smoothness = 1.0;\r\n\r\n @serialize(\"disableLighting\")\r\n private _disableLighting = false;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public disableLighting: boolean;\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return this.alpha < 1.0 || this.topColorAlpha < 1.0 || this.bottomColorAlpha < 1.0;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return true;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new GradientMaterialDefines();\r\n }\r\n\r\n const defines = <GradientMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\r\n\r\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\r\n\r\n defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\r\n\r\n defines.EMISSIVE = this._disableLighting;\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\r\n\r\n if (defines.NUM_BONE_INFLUENCERS > 0) {\r\n fallbacks.addCPUSkinningFallback(0, mesh);\r\n }\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n // Legacy browser patch\r\n const shaderName = \"gradient\";\r\n const join = defines.toString();\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"view\",\r\n \"viewProjection\",\r\n \"vEyePosition\",\r\n \"vLightsType\",\r\n \"vFogInfos\",\r\n \"vFogColor\",\r\n \"pointSize\",\r\n \"mBones\",\r\n \"vClipPlane\",\r\n \"vClipPlane2\",\r\n \"vClipPlane3\",\r\n \"vClipPlane4\",\r\n \"vClipPlane5\",\r\n \"vClipPlane6\",\r\n \"topColor\",\r\n \"bottomColor\",\r\n \"offset\",\r\n \"smoothness\",\r\n \"scale\",\r\n ];\r\n const samplers: string[] = [];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4,\r\n });\r\n\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n },\r\n engine\r\n ),\r\n defines,\r\n this._materialContext\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <GradientMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\r\n\r\n // Bones\r\n MaterialHelper.BindBonesParameters(mesh, effect);\r\n\r\n if (this._mustRebind(scene, effect)) {\r\n // Clip plane\r\n MaterialHelper.BindClipPlane(effect, scene);\r\n\r\n // Point size\r\n if (this.pointsCloud) {\r\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\r\n }\r\n\r\n scene.bindEyePosition(effect);\r\n }\r\n\r\n if (scene.lightsEnabled && !this.disableLighting) {\r\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, this.maxSimultaneousLights);\r\n }\r\n\r\n // View\r\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\r\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\r\n }\r\n\r\n // Fog\r\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\r\n\r\n this._activeEffect.setColor4(\"topColor\", this.topColor, this.topColorAlpha);\r\n this._activeEffect.setColor4(\"bottomColor\", this.bottomColor, this.bottomColorAlpha);\r\n this._activeEffect.setFloat(\"offset\", this.offset);\r\n this._activeEffect.setFloat(\"scale\", this.scale);\r\n this._activeEffect.setFloat(\"smoothness\", this.smoothness);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n public getAnimatables(): IAnimatable[] {\r\n return [];\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public clone(name: string): GradientMaterial {\r\n return SerializationHelper.Clone(() => new GradientMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.GradientMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public getClassName(): string {\r\n return \"GradientMaterial\";\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): GradientMaterial {\r\n return SerializationHelper.Parse(() => new GradientMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GradientMaterial\", GradientMaterial);\r\n"]}
@@ -3,10 +3,35 @@ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
3
  import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
4
4
  import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
5
5
  import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
6
- var name = "gridPixelShader";
7
- var shader = "#extension GL_OES_standard_derivatives : enable\n#define SQRT2 1.41421356\n#define PI 3.14159\nprecision highp float;\nuniform float visibility;\nuniform vec3 mainColor;\nuniform vec3 lineColor;\nuniform vec4 gridControl;\nuniform vec3 gridOffset;\nvarying vec3 vPosition;\nvarying vec3 vNormal;\n#include<fogFragmentDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\nuniform sampler2D opacitySampler;\nuniform vec2 vOpacityInfos;\n#endif\nfloat getDynamicVisibility(float position) {\nfloat majorGridFrequency=gridControl.y;\nif (floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\n{\nreturn 1.0;\n} \nreturn gridControl.z;\n}\nfloat getAnisotropicAttenuation(float differentialLength) {\nconst float maxNumberOfLines=10.0;\nreturn clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);\n}\nfloat isPointOnLine(float position,float differentialLength) {\nfloat fractionPartOfPosition=position-floor(position+0.5); \nfractionPartOfPosition/=differentialLength; \nfractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);\nfloat result=0.5+0.5*cos(fractionPartOfPosition*PI); \nreturn result; \n}\nfloat contributionOnAxis(float position) {\nfloat differentialLength=length(vec2(dFdx(position),dFdy(position)));\ndifferentialLength*=SQRT2; \nfloat result=isPointOnLine(position,differentialLength);\nfloat dynamicVisibility=getDynamicVisibility(position);\nresult*=dynamicVisibility;\nfloat anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);\nresult*=anisotropicAttenuation;\nreturn result;\n}\nfloat normalImpactOnAxis(float x) {\nfloat normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);\nreturn normalImpact;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat gridRatio=gridControl.x;\nvec3 gridPos=(vPosition+gridOffset.xyz)/gridRatio;\nfloat x=contributionOnAxis(gridPos.x);\nfloat y=contributionOnAxis(gridPos.y);\nfloat z=contributionOnAxis(gridPos.z);\nvec3 normal=normalize(vNormal);\nx*=normalImpactOnAxis(normal.x);\ny*=normalImpactOnAxis(normal.y);\nz*=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";
6
+ const name = "gridPixelShader";
7
+ const shader = `#extension GL_OES_standard_derivatives : enable
8
+ #define SQRT2 1.41421356
9
+ #define PI 3.14159
10
+ precision highp float;
11
+ #ifdef OPACITY
12
+ varying vec2 vOpacityUV;
13
+ float getDynamicVisibility(float position) {
@@ -1 +1 @@
1
- {"version":3,"file":"grid.fragment.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/grid/grid.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,0EAA4D;AAC5D,+DAAiD;AACjD,gFAAkE;AAElE,IAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,IAAM,MAAM,GAAG,0oFAwFd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAM,eAAe,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,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;\runiform float visibility;\runiform vec3 mainColor;\runiform vec3 lineColor;\runiform vec4 gridControl;\runiform vec3 gridOffset;\rvarying vec3 vPosition;\rvarying vec3 vNormal;\r#include<fogFragmentDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\runiform sampler2D opacitySampler;\runiform vec2 vOpacityInfos;\r#endif\nfloat getDynamicVisibility(float position) {\rfloat majorGridFrequency=gridControl.y;\rif (floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\r{\rreturn 1.0;\r} \rreturn gridControl.z;\r}\rfloat getAnisotropicAttenuation(float differentialLength) {\rconst float maxNumberOfLines=10.0;\rreturn clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);\r}\rfloat isPointOnLine(float position,float differentialLength) {\rfloat fractionPartOfPosition=position-floor(position+0.5); \rfractionPartOfPosition/=differentialLength; \rfractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);\rfloat result=0.5+0.5*cos(fractionPartOfPosition*PI); \rreturn result; \r}\rfloat contributionOnAxis(float position) {\rfloat differentialLength=length(vec2(dFdx(position),dFdy(position)));\rdifferentialLength*=SQRT2; \rfloat result=isPointOnLine(position,differentialLength);\rfloat dynamicVisibility=getDynamicVisibility(position);\rresult*=dynamicVisibility;\rfloat anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);\rresult*=anisotropicAttenuation;\rreturn result;\r}\rfloat normalImpactOnAxis(float x) {\rfloat normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);\rreturn normalImpact;\r}\r#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat gridRatio=gridControl.x;\rvec3 gridPos=(vPosition+gridOffset.xyz)/gridRatio;\rfloat x=contributionOnAxis(gridPos.x);\rfloat y=contributionOnAxis(gridPos.y);\rfloat z=contributionOnAxis(gridPos.z);\rvec3 normal=normalize(vNormal);\rx*=normalImpactOnAxis(normal.x);\ry*=normalImpactOnAxis(normal.y);\rz*=normalImpactOnAxis(normal.z);\r#ifdef MAX_LINE \nfloat grid=clamp(max(max(x,y),z),0.,1.);\r#else\nfloat grid=clamp(x+y+z,0.,1.);\r#endif\nvec3 color=mix(mainColor,lineColor,grid);\r#ifdef FOG\n#include<fogFragment>\n#endif\nfloat opacity=1.0;\r#ifdef TRANSPARENT\nopacity=clamp(grid,0.08,gridControl.w*grid);\r#endif \n#ifdef OPACITY\nopacity*=texture2D(opacitySampler,vOpacityUV).a;\r#endif \ngl_FragColor=vec4(color.rgb,opacity*visibility);\r#ifdef TRANSPARENT\n#ifdef PREMULTIPLYALPHA\ngl_FragColor.rgb*=opacity;\r#endif\n#else \n#endif\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const gridPixelShader = { name, shader };\n"]}
1
+ {"version":3,"file":"grid.fragment.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,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;\runiform float visibility;\runiform vec3 mainColor;\runiform vec3 lineColor;\runiform vec4 gridControl;\runiform vec3 gridOffset;\rvarying vec3 vPosition;\rvarying vec3 vNormal;\r#include<fogFragmentDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\runiform sampler2D opacitySampler;\runiform vec2 vOpacityInfos;\r#endif\nfloat getDynamicVisibility(float position) {\rfloat majorGridFrequency=gridControl.y;\rif (floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\r{\rreturn 1.0;\r} \rreturn gridControl.z;\r}\rfloat getAnisotropicAttenuation(float differentialLength) {\rconst float maxNumberOfLines=10.0;\rreturn clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);\r}\rfloat isPointOnLine(float position,float differentialLength) {\rfloat fractionPartOfPosition=position-floor(position+0.5); \rfractionPartOfPosition/=differentialLength; \rfractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);\rfloat result=0.5+0.5*cos(fractionPartOfPosition*PI); \rreturn result; \r}\rfloat contributionOnAxis(float position) {\rfloat differentialLength=length(vec2(dFdx(position),dFdy(position)));\rdifferentialLength*=SQRT2; \rfloat result=isPointOnLine(position,differentialLength);\rfloat dynamicVisibility=getDynamicVisibility(position);\rresult*=dynamicVisibility;\rfloat anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);\rresult*=anisotropicAttenuation;\rreturn result;\r}\rfloat normalImpactOnAxis(float x) {\rfloat normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);\rreturn normalImpact;\r}\r#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat gridRatio=gridControl.x;\rvec3 gridPos=(vPosition+gridOffset.xyz)/gridRatio;\rfloat x=contributionOnAxis(gridPos.x);\rfloat y=contributionOnAxis(gridPos.y);\rfloat z=contributionOnAxis(gridPos.z);\rvec3 normal=normalize(vNormal);\rx*=normalImpactOnAxis(normal.x);\ry*=normalImpactOnAxis(normal.y);\rz*=normalImpactOnAxis(normal.z);\r#ifdef MAX_LINE \nfloat grid=clamp(max(max(x,y),z),0.,1.);\r#else\nfloat grid=clamp(x+y+z,0.,1.);\r#endif\nvec3 color=mix(mainColor,lineColor,grid);\r#ifdef FOG\n#include<fogFragment>\n#endif\nfloat opacity=1.0;\r#ifdef TRANSPARENT\nopacity=clamp(grid,0.08,gridControl.w*grid);\r#endif \n#ifdef OPACITY\nopacity*=texture2D(opacitySampler,vOpacityUV).a;\r#endif \ngl_FragColor=vec4(color.rgb,opacity*visibility);\r#ifdef TRANSPARENT\n#ifdef PREMULTIPLYALPHA\ngl_FragColor.rgb*=opacity;\r#endif\n#else \n#endif\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const gridPixelShader = { name, shader };\n"]}
@@ -4,10 +4,29 @@ import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
4
4
  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
- var name = "gridVertexShader";
8
- var shader = "precision highp float;\nattribute vec3 position;\nattribute vec3 normal;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#include<instancesDeclaration>\nuniform mat4 projection;\nuniform mat4 view;\nvarying vec3 vPosition;\nvarying vec3 vNormal;\n#include<fogVertexDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\nuniform mat4 opacityMatrix;\nuniform 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;\ngl_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{\nvOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\n}\n#endif \nvPosition=position;\nvNormal=normal;\n#define CUSTOM_VERTEX_MAIN_END\n}";
7
+ const name = "gridVertexShader";
8
+ const shader = `precision highp float;
9
+ attribute vec2 uv;
10
+ #ifdef UV2
11
+ attribute vec2 uv2;
12
+ #include<instancesDeclaration>
13
+ uniform mat4 projection;
14
+ #ifdef OPACITY
15
+ varying vec2 vOpacityUV;
16
+ #define CUSTOM_VERTEX_DEFINITIONS
17
+ void main(void) {
18
+ #include<instancesVertex>
19
+ vec4 worldPos=finalWorld*vec4(position,1.0);
20
+ vec4 cameraSpacePosition=view*worldPos;
21
+ #ifndef UV1
22
+ vec2 uv=vec2(0.,0.);
23
+ #ifndef UV2
24
+ vec2 uv2=vec2(0.,0.);
25
+ if (vOpacityInfos.x==0.)
26
+ vPosition=position;
27
+ }`;
9
28
  // Sideeffect
10
29
  ShaderStore.ShadersStore[name] = shader;
11
30
  /** @hidden */
12
- export var gridVertexShader = { name: name, shader: shader };
31
+ export const gridVertexShader = { name, shader };
13
32
  //# sourceMappingURL=grid.vertex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/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,IAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,IAAM,MAAM,GAAG,2/BA+Cb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAM,gBAAgB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,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;\rattribute vec3 position;\rattribute vec3 normal;\r#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#include<instancesDeclaration>\nuniform mat4 projection;\runiform mat4 view;\rvarying vec3 vPosition;\rvarying vec3 vNormal;\r#include<fogVertexDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\runiform mat4 opacityMatrix;\runiform vec2 vOpacityInfos;\r#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\nvec4 worldPos=finalWorld*vec4(position,1.0);\r#include<fogVertex>\nvec4 cameraSpacePosition=view*worldPos;\rgl_Position=projection*cameraSpacePosition;\r#ifdef OPACITY\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\nif (vOpacityInfos.x==0.)\r{\rvOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));\r}\relse\r{\rvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\r}\r#endif \nvPosition=position;\rvNormal=normal;\r#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const gridVertexShader = { name, shader };\n"]}
1
+ {"version":3,"file":"grid.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Cb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,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;\rattribute vec3 position;\rattribute vec3 normal;\r#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#include<instancesDeclaration>\nuniform mat4 projection;\runiform mat4 view;\rvarying vec3 vPosition;\rvarying vec3 vNormal;\r#include<fogVertexDeclaration>\n#ifdef OPACITY\nvarying vec2 vOpacityUV;\runiform mat4 opacityMatrix;\runiform vec2 vOpacityInfos;\r#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\nvec4 worldPos=finalWorld*vec4(position,1.0);\r#include<fogVertex>\nvec4 cameraSpacePosition=view*worldPos;\rgl_Position=projection*cameraSpacePosition;\r#ifdef OPACITY\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\nif (vOpacityInfos.x==0.)\r{\rvOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));\r}\relse\r{\rvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\r}\r#endif \nvPosition=position;\rvNormal=normal;\r#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const gridVertexShader = { name, shader };\n"]}