@babylonjs/materials 5.0.0-beta.9 → 5.0.0-rc.10

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 (230) hide show
  1. package/cell/cell.fragment.d.ts +17 -17
  2. package/cell/cell.fragment.js +20 -18
  3. package/cell/cell.fragment.js.map +1 -1
  4. package/cell/cell.vertex.d.ts +18 -18
  5. package/cell/cell.vertex.js +21 -19
  6. package/cell/cell.vertex.js.map +1 -1
  7. package/cell/cellMaterial.d.ts +37 -37
  8. package/cell/cellMaterial.js +304 -290
  9. package/cell/cellMaterial.js.map +1 -1
  10. package/cell/index.d.ts +1 -1
  11. package/cell/index.js +1 -1
  12. package/cell/index.js.map +1 -1
  13. package/custom/customMaterial.d.ts +69 -69
  14. package/custom/customMaterial.js +216 -218
  15. package/custom/customMaterial.js.map +1 -1
  16. package/custom/index.d.ts +2 -2
  17. package/custom/index.js +2 -2
  18. package/custom/index.js.map +1 -1
  19. package/custom/pbrCustomMaterial.d.ts +71 -71
  20. package/custom/pbrCustomMaterial.js +241 -243
  21. package/custom/pbrCustomMaterial.js.map +1 -1
  22. package/fire/fire.fragment.d.ts +11 -11
  23. package/fire/fire.fragment.js +14 -12
  24. package/fire/fire.fragment.js.map +1 -1
  25. package/fire/fire.vertex.d.ts +15 -15
  26. package/fire/fire.vertex.js +18 -16
  27. package/fire/fire.vertex.js.map +1 -1
  28. package/fire/fireMaterial.d.ts +38 -38
  29. package/fire/fireMaterial.js +342 -327
  30. package/fire/fireMaterial.js.map +1 -1
  31. package/fire/index.d.ts +1 -1
  32. package/fire/index.js +1 -1
  33. package/fire/index.js.map +1 -1
  34. package/fur/fur.fragment.d.ts +17 -17
  35. package/fur/fur.fragment.js +20 -18
  36. package/fur/fur.fragment.js.map +1 -1
  37. package/fur/fur.vertex.d.ts +18 -18
  38. package/fur/fur.vertex.js +21 -19
  39. package/fur/fur.vertex.js.map +1 -1
  40. package/fur/furMaterial.d.ts +57 -56
  41. package/fur/furMaterial.js +500 -480
  42. package/fur/furMaterial.js.map +1 -1
  43. package/fur/index.d.ts +1 -1
  44. package/fur/index.js +1 -1
  45. package/fur/index.js.map +1 -1
  46. package/gradient/gradient.fragment.d.ts +17 -17
  47. package/gradient/gradient.fragment.js +20 -18
  48. package/gradient/gradient.fragment.js.map +1 -1
  49. package/gradient/gradient.vertex.d.ts +18 -18
  50. package/gradient/gradient.vertex.js +21 -19
  51. package/gradient/gradient.vertex.js.map +1 -1
  52. package/gradient/gradientMaterial.d.ts +37 -37
  53. package/gradient/gradientMaterial.js +275 -259
  54. package/gradient/gradientMaterial.js.map +1 -1
  55. package/gradient/index.d.ts +1 -1
  56. package/gradient/index.js +1 -1
  57. package/gradient/index.js.map +1 -1
  58. package/grid/grid.fragment.d.ts +8 -8
  59. package/grid/grid.fragment.js +11 -9
  60. package/grid/grid.fragment.js.map +1 -1
  61. package/grid/grid.vertex.d.ts +9 -9
  62. package/grid/grid.vertex.js +12 -10
  63. package/grid/grid.vertex.js.map +1 -1
  64. package/grid/gridMaterial.d.ts +78 -77
  65. package/grid/gridMaterial.js +276 -261
  66. package/grid/gridMaterial.js.map +1 -1
  67. package/grid/index.d.ts +1 -1
  68. package/grid/index.js +1 -1
  69. package/grid/index.js.map +1 -1
  70. package/index.d.ts +15 -15
  71. package/index.js +16 -15
  72. package/index.js.map +1 -1
  73. package/lava/index.d.ts +1 -1
  74. package/lava/index.js +1 -1
  75. package/lava/index.js.map +1 -1
  76. package/lava/lava.fragment.d.ts +17 -17
  77. package/lava/lava.fragment.js +20 -18
  78. package/lava/lava.fragment.js.map +1 -1
  79. package/lava/lava.vertex.d.ts +18 -18
  80. package/lava/lava.vertex.js +21 -19
  81. package/lava/lava.vertex.js.map +1 -1
  82. package/lava/lavaMaterial.d.ts +45 -45
  83. package/lava/lavaMaterial.js +394 -378
  84. package/lava/lavaMaterial.js.map +1 -1
  85. package/legacy/legacy-cell.d.ts +1 -1
  86. package/legacy/legacy-cell.js +13 -12
  87. package/legacy/legacy-cell.js.map +1 -1
  88. package/legacy/legacy-custom.d.ts +1 -1
  89. package/legacy/legacy-custom.js +13 -12
  90. package/legacy/legacy-custom.js.map +1 -1
  91. package/legacy/legacy-fire.d.ts +1 -1
  92. package/legacy/legacy-fire.js +13 -12
  93. package/legacy/legacy-fire.js.map +1 -1
  94. package/legacy/legacy-fur.d.ts +1 -1
  95. package/legacy/legacy-fur.js +13 -12
  96. package/legacy/legacy-fur.js.map +1 -1
  97. package/legacy/legacy-gradient.d.ts +1 -1
  98. package/legacy/legacy-gradient.js +13 -12
  99. package/legacy/legacy-gradient.js.map +1 -1
  100. package/legacy/legacy-grid.d.ts +1 -1
  101. package/legacy/legacy-grid.js +13 -12
  102. package/legacy/legacy-grid.js.map +1 -1
  103. package/legacy/legacy-lava.d.ts +1 -1
  104. package/legacy/legacy-lava.js +13 -12
  105. package/legacy/legacy-lava.js.map +1 -1
  106. package/legacy/legacy-mix.d.ts +1 -1
  107. package/legacy/legacy-mix.js +13 -12
  108. package/legacy/legacy-mix.js.map +1 -1
  109. package/legacy/legacy-normal.d.ts +1 -1
  110. package/legacy/legacy-normal.js +13 -12
  111. package/legacy/legacy-normal.js.map +1 -1
  112. package/legacy/legacy-shadowOnly.d.ts +1 -1
  113. package/legacy/legacy-shadowOnly.js +13 -12
  114. package/legacy/legacy-shadowOnly.js.map +1 -1
  115. package/legacy/legacy-simple.d.ts +1 -1
  116. package/legacy/legacy-simple.js +13 -12
  117. package/legacy/legacy-simple.js.map +1 -1
  118. package/legacy/legacy-sky.d.ts +1 -1
  119. package/legacy/legacy-sky.js +13 -12
  120. package/legacy/legacy-sky.js.map +1 -1
  121. package/legacy/legacy-terrain.d.ts +1 -1
  122. package/legacy/legacy-terrain.js +13 -12
  123. package/legacy/legacy-terrain.js.map +1 -1
  124. package/legacy/legacy-triPlanar.d.ts +1 -1
  125. package/legacy/legacy-triPlanar.js +13 -12
  126. package/legacy/legacy-triPlanar.js.map +1 -1
  127. package/legacy/legacy-water.d.ts +1 -1
  128. package/legacy/legacy-water.js +13 -12
  129. package/legacy/legacy-water.js.map +1 -1
  130. package/legacy/legacy.d.ts +1 -1
  131. package/legacy/legacy.js +16 -15
  132. package/legacy/legacy.js.map +1 -1
  133. package/mix/index.d.ts +1 -1
  134. package/mix/index.js +1 -1
  135. package/mix/index.js.map +1 -1
  136. package/mix/mix.fragment.d.ts +17 -17
  137. package/mix/mix.fragment.js +20 -18
  138. package/mix/mix.fragment.js.map +1 -1
  139. package/mix/mix.vertex.d.ts +18 -18
  140. package/mix/mix.vertex.js +21 -19
  141. package/mix/mix.vertex.js.map +1 -1
  142. package/mix/mixMaterial.d.ts +65 -65
  143. package/mix/mixMaterial.js +510 -483
  144. package/mix/mixMaterial.js.map +1 -1
  145. package/normal/index.d.ts +1 -1
  146. package/normal/index.js +1 -1
  147. package/normal/index.js.map +1 -1
  148. package/normal/normal.fragment.d.ts +17 -17
  149. package/normal/normal.fragment.js +20 -18
  150. package/normal/normal.fragment.js.map +1 -1
  151. package/normal/normal.vertex.d.ts +18 -18
  152. package/normal/normal.vertex.js +21 -19
  153. package/normal/normal.vertex.js.map +1 -1
  154. package/normal/normalMaterial.d.ts +36 -36
  155. package/normal/normalMaterial.js +336 -322
  156. package/normal/normalMaterial.js.map +1 -1
  157. package/package.json +22 -254
  158. package/readme.md +2 -2
  159. package/shadowOnly/index.d.ts +1 -1
  160. package/shadowOnly/index.js +1 -1
  161. package/shadowOnly/index.js.map +1 -1
  162. package/shadowOnly/shadowOnly.fragment.d.ts +16 -16
  163. package/shadowOnly/shadowOnly.fragment.js +19 -17
  164. package/shadowOnly/shadowOnly.fragment.js.map +1 -1
  165. package/shadowOnly/shadowOnly.vertex.d.ts +18 -18
  166. package/shadowOnly/shadowOnly.vertex.js +21 -19
  167. package/shadowOnly/shadowOnly.vertex.js.map +1 -1
  168. package/shadowOnly/shadowOnlyMaterial.d.ts +30 -30
  169. package/shadowOnly/shadowOnlyMaterial.js +254 -240
  170. package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
  171. package/simple/index.d.ts +1 -1
  172. package/simple/index.js +1 -1
  173. package/simple/index.js.map +1 -1
  174. package/simple/simple.fragment.d.ts +17 -17
  175. package/simple/simple.fragment.js +20 -18
  176. package/simple/simple.fragment.js.map +1 -1
  177. package/simple/simple.vertex.d.ts +18 -18
  178. package/simple/simple.vertex.js +21 -19
  179. package/simple/simple.vertex.js.map +1 -1
  180. package/simple/simpleMaterial.d.ts +35 -35
  181. package/simple/simpleMaterial.js +295 -281
  182. package/simple/simpleMaterial.js.map +1 -1
  183. package/sky/index.d.ts +1 -1
  184. package/sky/index.js +1 -1
  185. package/sky/index.js.map +1 -1
  186. package/sky/sky.fragment.d.ts +10 -10
  187. package/sky/sky.fragment.js +13 -11
  188. package/sky/sky.fragment.js.map +1 -1
  189. package/sky/sky.vertex.d.ts +9 -9
  190. package/sky/sky.vertex.js +12 -10
  191. package/sky/sky.vertex.js.map +1 -1
  192. package/sky/skyMaterial.d.ts +147 -147
  193. package/sky/skyMaterial.js +359 -340
  194. package/sky/skyMaterial.js.map +1 -1
  195. package/terrain/index.d.ts +1 -1
  196. package/terrain/index.js +1 -1
  197. package/terrain/index.js.map +1 -1
  198. package/terrain/terrain.fragment.d.ts +17 -17
  199. package/terrain/terrain.fragment.js +20 -18
  200. package/terrain/terrain.fragment.js.map +1 -1
  201. package/terrain/terrain.vertex.d.ts +18 -18
  202. package/terrain/terrain.vertex.js +21 -19
  203. package/terrain/terrain.vertex.js.map +1 -1
  204. package/terrain/terrainMaterial.d.ts +50 -50
  205. package/terrain/terrainMaterial.js +426 -411
  206. package/terrain/terrainMaterial.js.map +1 -1
  207. package/triPlanar/index.d.ts +1 -1
  208. package/triPlanar/index.js +1 -1
  209. package/triPlanar/index.js.map +1 -1
  210. package/triPlanar/triPlanarMaterial.d.ts +49 -49
  211. package/triPlanar/triPlanarMaterial.js +403 -391
  212. package/triPlanar/triPlanarMaterial.js.map +1 -1
  213. package/triPlanar/triplanar.fragment.d.ts +17 -17
  214. package/triPlanar/triplanar.fragment.js +20 -18
  215. package/triPlanar/triplanar.fragment.js.map +1 -1
  216. package/triPlanar/triplanar.vertex.d.ts +18 -18
  217. package/triPlanar/triplanar.vertex.js +21 -19
  218. package/triPlanar/triplanar.vertex.js.map +1 -1
  219. package/water/index.d.ts +1 -1
  220. package/water/index.js +1 -1
  221. package/water/index.js.map +1 -1
  222. package/water/water.fragment.d.ts +19 -19
  223. package/water/water.fragment.js +22 -20
  224. package/water/water.fragment.js.map +1 -1
  225. package/water/water.vertex.d.ts +20 -20
  226. package/water/water.vertex.js +23 -21
  227. package/water/water.vertex.js.map +1 -1
  228. package/water/waterMaterial.d.ts +135 -132
  229. package/water/waterMaterial.js +736 -705
  230. package/water/waterMaterial.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"shadowOnly.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/shadowOnly/shadowOnly.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,yDAAyD,CAAC;AACjE,OAAO,wEAAwE,CAAC;AAChF,OAAO,6DAA6D,CAAC;AACrE,OAAO,mEAAmE,CAAC;AAC3E,OAAO,6DAA6D,CAAC;AACrE,OAAO,iEAAiE,CAAC;AACzE,OAAO,4DAA4D,CAAC;AACpE,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6DAA6D,CAAC;AACrE,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAE9D,IAAI,IAAI,GAAG,wBAAwB,CAAC;AACpC,IAAI,MAAM,GAAG,0lCAiDZ,CAAC;AAEF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,sBAAsB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/shadowsVertex\";\n\nlet name = 'shadowOnlyVertexShader';\nlet shader = `precision highp float;\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#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);\ngl_Position=viewProjection*worldPos;\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var shadowOnlyVertexShader = { name, shader };\n"]}
1
+ {"version":3,"file":"shadowOnly.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/shadowOnly/shadowOnly.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAC/C,iEAAmD;AAEnD,IAAM,IAAI,GAAG,wBAAwB,CAAC;AACtC,IAAM,MAAM,GAAG,wmCA2Cd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAM,sBAAsB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/bonesVertex\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\n\nconst name = \"shadowOnlyVertexShader\";\nconst shader = `precision highp float;\rattribute vec3 position;\r#ifdef NORMAL\nattribute vec3 normal;\r#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;\runiform mat4 viewProjection;\r#ifdef POINTSIZE\nuniform float pointSize;\r#endif\nvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\r#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\rgl_Position=viewProjection*worldPos;\rvPositionW=vec3(worldPos);\r#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\r#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\r#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const shadowOnlyVertexShader = { name, shader };\n"]}
@@ -1,30 +1,30 @@
1
- import { Nullable } from "@babylonjs/core/types";
2
- import { Matrix } from "@babylonjs/core/Maths/math.vector";
3
- import { Color3 } from "@babylonjs/core/Maths/math.color";
4
- import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
5
- import { IShadowLight } from "@babylonjs/core/Lights/shadowLight";
6
- import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial";
7
- import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh";
8
- import { SubMesh } from "@babylonjs/core/Meshes/subMesh";
9
- import { Mesh } from "@babylonjs/core/Meshes/mesh";
10
- import { Scene } from "@babylonjs/core/scene";
11
- import "./shadowOnly.fragment";
12
- import "./shadowOnly.vertex";
13
- export declare class ShadowOnlyMaterial extends PushMaterial {
14
- private _activeLight;
15
- private _needAlphaBlending;
16
- constructor(name: string, scene?: Scene);
17
- shadowColor: Color3;
18
- needAlphaBlending(): boolean;
19
- needAlphaTesting(): boolean;
20
- getAlphaTestTexture(): Nullable<BaseTexture>;
21
- get activeLight(): IShadowLight;
22
- set activeLight(light: IShadowLight);
23
- private _getFirstShadowLightForMesh;
24
- isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
25
- bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
26
- clone(name: string): ShadowOnlyMaterial;
27
- serialize(): any;
28
- getClassName(): string;
29
- static Parse(source: any, scene: Scene, rootUrl: string): ShadowOnlyMaterial;
30
- }
1
+ import type { Nullable } from "@babylonjs/core/types.js";
2
+ import type { Matrix } from "@babylonjs/core/Maths/math.vector.js";
3
+ import { Color3 } from "@babylonjs/core/Maths/math.color.js";
4
+ import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
5
+ import type { IShadowLight } from "@babylonjs/core/Lights/shadowLight.js";
6
+ import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
7
+ import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
8
+ import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
9
+ import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
10
+ import { Scene } from "@babylonjs/core/scene.js";
11
+ import "./shadowOnly.fragment";
12
+ import "./shadowOnly.vertex";
13
+ export declare class ShadowOnlyMaterial extends PushMaterial {
14
+ private _activeLight;
15
+ private _needAlphaBlending;
16
+ constructor(name: string, scene?: Scene);
17
+ shadowColor: Color3;
18
+ needAlphaBlending(): boolean;
19
+ needAlphaTesting(): boolean;
20
+ getAlphaTestTexture(): Nullable<BaseTexture>;
21
+ get activeLight(): IShadowLight;
22
+ set activeLight(light: IShadowLight);
23
+ private _getFirstShadowLightForMesh;
24
+ isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
25
+ bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
26
+ clone(name: string): ShadowOnlyMaterial;
27
+ serialize(): any;
28
+ getClassName(): string;
29
+ static Parse(source: any, scene: Scene, rootUrl: string): ShadowOnlyMaterial;
30
+ }
@@ -1,241 +1,255 @@
1
- import { __extends } from "tslib";
2
- import { SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
3
- import { Color3 } from "@babylonjs/core/Maths/math.color.js";
4
- import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
5
- import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.js";
6
- import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
7
- import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
8
- import { Scene } from "@babylonjs/core/scene.js";
9
- import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
10
- import "./shadowOnly.fragment.js";
11
- import "./shadowOnly.vertex.js";
12
- import { EffectFallbacks } from '@babylonjs/core/Materials/effectFallbacks.js';
13
- var ShadowOnlyMaterialDefines = /** @class */ (function (_super) {
14
- __extends(ShadowOnlyMaterialDefines, _super);
15
- function ShadowOnlyMaterialDefines() {
16
- var _this = _super.call(this) || this;
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.POINTSIZE = false;
24
- _this.FOG = false;
25
- _this.NORMAL = false;
26
- _this.NUM_BONE_INFLUENCERS = 0;
27
- _this.BonesPerMesh = 0;
28
- _this.INSTANCES = false;
29
- _this.IMAGEPROCESSINGPOSTPROCESS = false;
30
- _this.SKIPFINALCOLORCLAMP = false;
31
- _this.rebuild();
32
- return _this;
33
- }
34
- return ShadowOnlyMaterialDefines;
35
- }(MaterialDefines));
36
- var ShadowOnlyMaterial = /** @class */ (function (_super) {
37
- __extends(ShadowOnlyMaterial, _super);
38
- function ShadowOnlyMaterial(name, scene) {
39
- var _this = _super.call(this, name, scene) || this;
40
- _this._needAlphaBlending = true;
41
- _this.shadowColor = Color3.Black();
42
- return _this;
43
- }
44
- ShadowOnlyMaterial.prototype.needAlphaBlending = function () {
45
- return this._needAlphaBlending;
46
- };
47
- ShadowOnlyMaterial.prototype.needAlphaTesting = function () {
48
- return false;
49
- };
50
- ShadowOnlyMaterial.prototype.getAlphaTestTexture = function () {
51
- return null;
52
- };
53
- Object.defineProperty(ShadowOnlyMaterial.prototype, "activeLight", {
54
- get: function () {
55
- return this._activeLight;
56
- },
57
- set: function (light) {
58
- this._activeLight = light;
59
- },
60
- enumerable: false,
61
- configurable: true
62
- });
63
- ShadowOnlyMaterial.prototype._getFirstShadowLightForMesh = function (mesh) {
64
- for (var _i = 0, _a = mesh.lightSources; _i < _a.length; _i++) {
65
- var light = _a[_i];
66
- if (light.shadowEnabled) {
67
- return light;
68
- }
69
- }
70
- return null;
71
- };
72
- // Methods
73
- ShadowOnlyMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
74
- var _a;
75
- if (this.isFrozen) {
76
- if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {
77
- return true;
78
- }
79
- }
80
- if (!subMesh.materialDefines) {
81
- subMesh.materialDefines = new ShadowOnlyMaterialDefines();
82
- }
83
- var defines = subMesh.materialDefines;
84
- var scene = this.getScene();
85
- if (this._isReadyForSubMesh(subMesh)) {
86
- return true;
87
- }
88
- var engine = scene.getEngine();
89
- // Ensure that active light is the first shadow light
90
- if (this._activeLight) {
91
- for (var _i = 0, _b = mesh.lightSources; _i < _b.length; _i++) {
92
- var light = _b[_i];
93
- if (light.shadowEnabled) {
94
- if (this._activeLight === light) {
95
- break; // We are good
96
- }
97
- var lightPosition = mesh.lightSources.indexOf(this._activeLight);
98
- if (lightPosition !== -1) {
99
- mesh.lightSources.splice(lightPosition, 1);
100
- mesh.lightSources.splice(0, 0, this._activeLight);
101
- }
102
- break;
103
- }
104
- }
105
- }
106
- MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
107
- MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
108
- defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, 1);
109
- var shadowGenerator = (_a = this._getFirstShadowLightForMesh(mesh)) === null || _a === void 0 ? void 0 : _a.getShadowGenerator();
110
- this._needAlphaBlending = true;
111
- if (shadowGenerator && shadowGenerator.getClassName && shadowGenerator.getClassName() === 'CascadedShadowGenerator') {
112
- var csg = shadowGenerator;
113
- this._needAlphaBlending = !csg.autoCalcDepthBounds;
114
- }
115
- // Attribs
116
- MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true);
117
- // Get correct effect
118
- if (defines.isDirty) {
119
- defines.markAsProcessed();
120
- scene.resetCachedMaterial();
121
- // Fallbacks
122
- var fallbacks = new EffectFallbacks();
123
- if (defines.FOG) {
124
- fallbacks.addFallback(1, "FOG");
125
- }
126
- MaterialHelper.HandleFallbacksForShadows(defines, fallbacks, 1);
127
- if (defines.NUM_BONE_INFLUENCERS > 0) {
128
- fallbacks.addCPUSkinningFallback(0, mesh);
129
- }
130
- defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
131
- //Attributes
132
- var attribs = [VertexBuffer.PositionKind];
133
- if (defines.NORMAL) {
134
- attribs.push(VertexBuffer.NormalKind);
135
- }
136
- MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
137
- MaterialHelper.PrepareAttributesForInstances(attribs, defines);
138
- var shaderName = "shadowOnly";
139
- var join = defines.toString();
140
- var uniforms = ["world", "view", "viewProjection", "vEyePosition", "vLightsType",
141
- "vFogInfos", "vFogColor", "pointSize", "alpha", "shadowColor",
142
- "mBones",
143
- "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6"
144
- ];
145
- var samplers = new Array();
146
- var uniformBuffers = new Array();
147
- MaterialHelper.PrepareUniformsAndSamplersList({
148
- uniformsNames: uniforms,
149
- uniformBuffersNames: uniformBuffers,
150
- samplers: samplers,
151
- defines: defines,
152
- maxSimultaneousLights: 1
153
- });
154
- subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
155
- attributes: attribs,
156
- uniformsNames: uniforms,
157
- uniformBuffersNames: uniformBuffers,
158
- samplers: samplers,
159
- defines: join,
160
- fallbacks: fallbacks,
161
- onCompiled: this.onCompiled,
162
- onError: this.onError,
163
- indexParameters: { maxSimultaneousLights: 1 }
164
- }, engine), defines, this._materialContext);
165
- }
166
- if (!subMesh.effect || !subMesh.effect.isReady()) {
167
- return false;
168
- }
169
- defines._renderId = scene.getRenderId();
170
- subMesh.effect._wasPreviouslyReady = true;
171
- return true;
172
- };
173
- ShadowOnlyMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
174
- var scene = this.getScene();
175
- var defines = subMesh.materialDefines;
176
- if (!defines) {
177
- return;
178
- }
179
- var effect = subMesh.effect;
180
- if (!effect) {
181
- return;
182
- }
183
- this._activeEffect = effect;
184
- // Matrices
185
- this.bindOnlyWorldMatrix(world);
186
- this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
187
- // Bones
188
- MaterialHelper.BindBonesParameters(mesh, this._activeEffect);
189
- if (this._mustRebind(scene, effect)) {
190
- // Clip plane
191
- MaterialHelper.BindClipPlane(this._activeEffect, scene);
192
- // Point size
193
- if (this.pointsCloud) {
194
- this._activeEffect.setFloat("pointSize", this.pointSize);
195
- }
196
- this._activeEffect.setFloat("alpha", this.alpha);
197
- this._activeEffect.setColor3("shadowColor", this.shadowColor);
198
- scene.bindEyePosition(effect);
199
- }
200
- // Lights
201
- if (scene.lightsEnabled) {
202
- MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, 1);
203
- var light = this._getFirstShadowLightForMesh(mesh);
204
- if (light) {
205
- // Make sure the uniforms for this light will be rebound for other materials using this light when rendering the current frame.
206
- // Indeed, there is an optimization in Light that binds the light uniforms only once per frame for a given light (if using ubo).
207
- // Doing this way assumes that all uses of this light are the same, meaning all parameters passed to Light._bindLlight
208
- // are the same, notably useSpecular. However, isReadyForSubMesh (see above) is passing false for this parameter, which may not be
209
- // the value the other materials may pass.
210
- light._renderId = -1;
211
- }
212
- }
213
- // View
214
- if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE || defines["SHADOWCSM0"]) {
215
- this._activeEffect.setMatrix("view", scene.getViewMatrix());
216
- }
217
- // Fog
218
- MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);
219
- this._afterBind(mesh, this._activeEffect);
220
- };
221
- ShadowOnlyMaterial.prototype.clone = function (name) {
222
- var _this = this;
223
- return SerializationHelper.Clone(function () { return new ShadowOnlyMaterial(name, _this.getScene()); }, this);
224
- };
225
- ShadowOnlyMaterial.prototype.serialize = function () {
226
- var serializationObject = _super.prototype.serialize.call(this);
227
- serializationObject.customType = "BABYLON.ShadowOnlyMaterial";
228
- return serializationObject;
229
- };
230
- ShadowOnlyMaterial.prototype.getClassName = function () {
231
- return "ShadowOnlyMaterial";
232
- };
233
- // Statics
234
- ShadowOnlyMaterial.Parse = function (source, scene, rootUrl) {
235
- return SerializationHelper.Parse(function () { return new ShadowOnlyMaterial(source.name, scene); }, source, scene, rootUrl);
236
- };
237
- return ShadowOnlyMaterial;
238
- }(PushMaterial));
239
- export { ShadowOnlyMaterial };
240
- RegisterClass("BABYLON.ShadowOnlyMaterial", ShadowOnlyMaterial);
1
+ import { __extends } from "tslib";
2
+ import { SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
3
+ import { Color3 } from "@babylonjs/core/Maths/math.color.js";
4
+ import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
5
+ import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.js";
6
+ import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
7
+ import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
8
+ import { Scene } from "@babylonjs/core/scene.js";
9
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
10
+ import "./shadowOnly.fragment";
11
+ import "./shadowOnly.vertex";
12
+ import { EffectFallbacks } from "@babylonjs/core/Materials/effectFallbacks.js";
13
+ var ShadowOnlyMaterialDefines = /** @class */ (function (_super) {
14
+ __extends(ShadowOnlyMaterialDefines, _super);
15
+ function ShadowOnlyMaterialDefines() {
16
+ var _this = _super.call(this) || this;
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.POINTSIZE = false;
24
+ _this.FOG = false;
25
+ _this.NORMAL = false;
26
+ _this.NUM_BONE_INFLUENCERS = 0;
27
+ _this.BonesPerMesh = 0;
28
+ _this.INSTANCES = false;
29
+ _this.IMAGEPROCESSINGPOSTPROCESS = false;
30
+ _this.SKIPFINALCOLORCLAMP = false;
31
+ _this.rebuild();
32
+ return _this;
33
+ }
34
+ return ShadowOnlyMaterialDefines;
35
+ }(MaterialDefines));
36
+ var ShadowOnlyMaterial = /** @class */ (function (_super) {
37
+ __extends(ShadowOnlyMaterial, _super);
38
+ function ShadowOnlyMaterial(name, scene) {
39
+ var _this = _super.call(this, name, scene) || this;
40
+ _this._needAlphaBlending = true;
41
+ _this.shadowColor = Color3.Black();
42
+ return _this;
43
+ }
44
+ ShadowOnlyMaterial.prototype.needAlphaBlending = function () {
45
+ return this._needAlphaBlending;
46
+ };
47
+ ShadowOnlyMaterial.prototype.needAlphaTesting = function () {
48
+ return false;
49
+ };
50
+ ShadowOnlyMaterial.prototype.getAlphaTestTexture = function () {
51
+ return null;
52
+ };
53
+ Object.defineProperty(ShadowOnlyMaterial.prototype, "activeLight", {
54
+ get: function () {
55
+ return this._activeLight;
56
+ },
57
+ set: function (light) {
58
+ this._activeLight = light;
59
+ },
60
+ enumerable: false,
61
+ configurable: true
62
+ });
63
+ ShadowOnlyMaterial.prototype._getFirstShadowLightForMesh = function (mesh) {
64
+ for (var _i = 0, _a = mesh.lightSources; _i < _a.length; _i++) {
65
+ var light = _a[_i];
66
+ if (light.shadowEnabled) {
67
+ return light;
68
+ }
69
+ }
70
+ return null;
71
+ };
72
+ // Methods
73
+ ShadowOnlyMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
74
+ var _a;
75
+ if (this.isFrozen) {
76
+ if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {
77
+ return true;
78
+ }
79
+ }
80
+ if (!subMesh.materialDefines) {
81
+ subMesh.materialDefines = new ShadowOnlyMaterialDefines();
82
+ }
83
+ var defines = subMesh.materialDefines;
84
+ var scene = this.getScene();
85
+ if (this._isReadyForSubMesh(subMesh)) {
86
+ return true;
87
+ }
88
+ var engine = scene.getEngine();
89
+ // Ensure that active light is the first shadow light
90
+ if (this._activeLight) {
91
+ for (var _i = 0, _b = mesh.lightSources; _i < _b.length; _i++) {
92
+ var light = _b[_i];
93
+ if (light.shadowEnabled) {
94
+ if (this._activeLight === light) {
95
+ break; // We are good
96
+ }
97
+ var lightPosition = mesh.lightSources.indexOf(this._activeLight);
98
+ if (lightPosition !== -1) {
99
+ mesh.lightSources.splice(lightPosition, 1);
100
+ mesh.lightSources.splice(0, 0, this._activeLight);
101
+ }
102
+ break;
103
+ }
104
+ }
105
+ }
106
+ MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
107
+ MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
108
+ defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, 1);
109
+ var shadowGenerator = (_a = this._getFirstShadowLightForMesh(mesh)) === null || _a === void 0 ? void 0 : _a.getShadowGenerator();
110
+ this._needAlphaBlending = true;
111
+ if (shadowGenerator && shadowGenerator.getClassName && shadowGenerator.getClassName() === "CascadedShadowGenerator") {
112
+ var csg = shadowGenerator;
113
+ this._needAlphaBlending = !csg.autoCalcDepthBounds;
114
+ }
115
+ // Attribs
116
+ MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true);
117
+ // Get correct effect
118
+ if (defines.isDirty) {
119
+ defines.markAsProcessed();
120
+ scene.resetCachedMaterial();
121
+ // Fallbacks
122
+ var fallbacks = new EffectFallbacks();
123
+ if (defines.FOG) {
124
+ fallbacks.addFallback(1, "FOG");
125
+ }
126
+ MaterialHelper.HandleFallbacksForShadows(defines, fallbacks, 1);
127
+ if (defines.NUM_BONE_INFLUENCERS > 0) {
128
+ fallbacks.addCPUSkinningFallback(0, mesh);
129
+ }
130
+ defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
131
+ //Attributes
132
+ var attribs = [VertexBuffer.PositionKind];
133
+ if (defines.NORMAL) {
134
+ attribs.push(VertexBuffer.NormalKind);
135
+ }
136
+ MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
137
+ MaterialHelper.PrepareAttributesForInstances(attribs, defines);
138
+ var shaderName = "shadowOnly";
139
+ var join = defines.toString();
140
+ var uniforms = [
141
+ "world",
142
+ "view",
143
+ "viewProjection",
144
+ "vEyePosition",
145
+ "vLightsType",
146
+ "vFogInfos",
147
+ "vFogColor",
148
+ "pointSize",
149
+ "alpha",
150
+ "shadowColor",
151
+ "mBones",
152
+ "vClipPlane",
153
+ "vClipPlane2",
154
+ "vClipPlane3",
155
+ "vClipPlane4",
156
+ "vClipPlane5",
157
+ "vClipPlane6",
158
+ ];
159
+ var samplers = new Array();
160
+ var uniformBuffers = new Array();
161
+ MaterialHelper.PrepareUniformsAndSamplersList({
162
+ uniformsNames: uniforms,
163
+ uniformBuffersNames: uniformBuffers,
164
+ samplers: samplers,
165
+ defines: defines,
166
+ maxSimultaneousLights: 1,
167
+ });
168
+ subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
169
+ attributes: attribs,
170
+ uniformsNames: uniforms,
171
+ uniformBuffersNames: uniformBuffers,
172
+ samplers: samplers,
173
+ defines: join,
174
+ fallbacks: fallbacks,
175
+ onCompiled: this.onCompiled,
176
+ onError: this.onError,
177
+ indexParameters: { maxSimultaneousLights: 1 },
178
+ }, engine), defines, this._materialContext);
179
+ }
180
+ if (!subMesh.effect || !subMesh.effect.isReady()) {
181
+ return false;
182
+ }
183
+ defines._renderId = scene.getRenderId();
184
+ subMesh.effect._wasPreviouslyReady = true;
185
+ return true;
186
+ };
187
+ ShadowOnlyMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
188
+ var scene = this.getScene();
189
+ var defines = subMesh.materialDefines;
190
+ if (!defines) {
191
+ return;
192
+ }
193
+ var effect = subMesh.effect;
194
+ if (!effect) {
195
+ return;
196
+ }
197
+ this._activeEffect = effect;
198
+ // Matrices
199
+ this.bindOnlyWorldMatrix(world);
200
+ this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
201
+ // Bones
202
+ MaterialHelper.BindBonesParameters(mesh, this._activeEffect);
203
+ if (this._mustRebind(scene, effect)) {
204
+ // Clip plane
205
+ MaterialHelper.BindClipPlane(this._activeEffect, scene);
206
+ // Point size
207
+ if (this.pointsCloud) {
208
+ this._activeEffect.setFloat("pointSize", this.pointSize);
209
+ }
210
+ this._activeEffect.setFloat("alpha", this.alpha);
211
+ this._activeEffect.setColor3("shadowColor", this.shadowColor);
212
+ scene.bindEyePosition(effect);
213
+ }
214
+ // Lights
215
+ if (scene.lightsEnabled) {
216
+ MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, 1);
217
+ var light = this._getFirstShadowLightForMesh(mesh);
218
+ if (light) {
219
+ // Make sure the uniforms for this light will be rebound for other materials using this light when rendering the current frame.
220
+ // Indeed, there is an optimization in Light that binds the light uniforms only once per frame for a given light (if using ubo).
221
+ // Doing this way assumes that all uses of this light are the same, meaning all parameters passed to Light._bindLlight
222
+ // are the same, notably useSpecular. However, isReadyForSubMesh (see above) is passing false for this parameter, which may not be
223
+ // the value the other materials may pass.
224
+ light._renderId = -1;
225
+ }
226
+ }
227
+ // View
228
+ if ((scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) || defines["SHADOWCSM0"]) {
229
+ this._activeEffect.setMatrix("view", scene.getViewMatrix());
230
+ }
231
+ // Fog
232
+ MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);
233
+ this._afterBind(mesh, this._activeEffect);
234
+ };
235
+ ShadowOnlyMaterial.prototype.clone = function (name) {
236
+ var _this = this;
237
+ return SerializationHelper.Clone(function () { return new ShadowOnlyMaterial(name, _this.getScene()); }, this);
238
+ };
239
+ ShadowOnlyMaterial.prototype.serialize = function () {
240
+ var serializationObject = _super.prototype.serialize.call(this);
241
+ serializationObject.customType = "BABYLON.ShadowOnlyMaterial";
242
+ return serializationObject;
243
+ };
244
+ ShadowOnlyMaterial.prototype.getClassName = function () {
245
+ return "ShadowOnlyMaterial";
246
+ };
247
+ // Statics
248
+ ShadowOnlyMaterial.Parse = function (source, scene, rootUrl) {
249
+ return SerializationHelper.Parse(function () { return new ShadowOnlyMaterial(source.name, scene); }, source, scene, rootUrl);
250
+ };
251
+ return ShadowOnlyMaterial;
252
+ }(PushMaterial));
253
+ export { ShadowOnlyMaterial };
254
+ RegisterClass("BABYLON.ShadowOnlyMaterial", ShadowOnlyMaterial);
241
255
  //# sourceMappingURL=shadowOnlyMaterial.js.map