@babylonjs/core 6.44.0 → 6.45.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 (133) hide show
  1. package/Buffers/buffer.d.ts +22 -22
  2. package/Buffers/buffer.js +16 -15
  3. package/Buffers/buffer.js.map +1 -1
  4. package/Cameras/camera.d.ts +5 -5
  5. package/Cameras/camera.js +19 -19
  6. package/Cameras/camera.js.map +1 -1
  7. package/Engines/ICanvas.d.ts +2 -1
  8. package/Engines/ICanvas.js.map +1 -1
  9. package/Engines/constants.d.ts +96 -0
  10. package/Engines/constants.js +96 -0
  11. package/Engines/constants.js.map +1 -1
  12. package/Engines/thinEngine.js +2 -2
  13. package/Engines/thinEngine.js.map +1 -1
  14. package/Gizmos/gizmo.d.ts +14 -0
  15. package/Gizmos/gizmo.js +16 -0
  16. package/Gizmos/gizmo.js.map +1 -1
  17. package/Gizmos/gizmoManager.d.ts +12 -0
  18. package/Gizmos/gizmoManager.js +26 -0
  19. package/Gizmos/gizmoManager.js.map +1 -1
  20. package/Gizmos/positionGizmo.d.ts +16 -2
  21. package/Gizmos/positionGizmo.js +12 -2
  22. package/Gizmos/positionGizmo.js.map +1 -1
  23. package/Gizmos/rotationGizmo.d.ts +8 -0
  24. package/Gizmos/rotationGizmo.js +9 -0
  25. package/Gizmos/rotationGizmo.js.map +1 -1
  26. package/Gizmos/scaleGizmo.d.ts +15 -1
  27. package/Gizmos/scaleGizmo.js +11 -1
  28. package/Gizmos/scaleGizmo.js.map +1 -1
  29. package/Layers/effectLayer.js +4 -4
  30. package/Layers/effectLayer.js.map +1 -1
  31. package/Lights/Shadows/shadowGenerator.js +5 -5
  32. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  33. package/Materials/Background/backgroundMaterial.js +16 -16
  34. package/Materials/Background/backgroundMaterial.js.map +1 -1
  35. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +8 -8
  36. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
  37. package/Materials/Node/Blocks/Dual/fogBlock.js +2 -2
  38. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  39. package/Materials/Node/Blocks/Dual/lightBlock.js +6 -6
  40. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  41. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +2 -2
  42. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  43. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +7 -7
  44. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  45. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  46. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  47. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +3 -3
  48. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  49. package/Materials/Node/nodeMaterial.js +3 -3
  50. package/Materials/Node/nodeMaterial.js.map +1 -1
  51. package/Materials/PBR/pbrAnisotropicConfiguration.js +3 -3
  52. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  53. package/Materials/PBR/pbrBaseMaterial.js +41 -41
  54. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  55. package/Materials/PBR/pbrClearCoatConfiguration.js +10 -10
  56. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  57. package/Materials/PBR/pbrIridescenceConfiguration.js +6 -6
  58. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  59. package/Materials/PBR/pbrSheenConfiguration.js +6 -6
  60. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  61. package/Materials/PBR/pbrSubSurfaceConfiguration.js +7 -7
  62. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  63. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  64. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  65. package/Materials/Textures/dynamicTexture.js +1 -1
  66. package/Materials/Textures/dynamicTexture.js.map +1 -1
  67. package/Materials/Textures/texture.js +1 -1
  68. package/Materials/Textures/texture.js.map +1 -1
  69. package/Materials/index.d.ts +1 -0
  70. package/Materials/index.js +1 -0
  71. package/Materials/index.js.map +1 -1
  72. package/Materials/material.decalMapConfiguration.js +3 -3
  73. package/Materials/material.decalMapConfiguration.js.map +1 -1
  74. package/Materials/material.detailMapConfiguration.js +3 -3
  75. package/Materials/material.detailMapConfiguration.js.map +1 -1
  76. package/Materials/material.js +2 -2
  77. package/Materials/material.js.map +1 -1
  78. package/Materials/materialHelper.d.ts +1 -4
  79. package/Materials/materialHelper.functions.d.ts +275 -0
  80. package/Materials/materialHelper.functions.js +823 -0
  81. package/Materials/materialHelper.functions.js.map +1 -0
  82. package/Materials/materialHelper.js +64 -589
  83. package/Materials/materialHelper.js.map +1 -1
  84. package/Materials/materialPluginBase.d.ts +1 -1
  85. package/Materials/materialPluginBase.js +1 -1
  86. package/Materials/materialPluginBase.js.map +1 -1
  87. package/Materials/shaderMaterial.js +8 -8
  88. package/Materials/shaderMaterial.js.map +1 -1
  89. package/Materials/standardMaterial.js +33 -33
  90. package/Materials/standardMaterial.js.map +1 -1
  91. package/Meshes/Compression/dracoCompression.d.ts +23 -2
  92. package/Meshes/Compression/dracoCompression.js +76 -236
  93. package/Meshes/Compression/dracoCompression.js.map +1 -1
  94. package/Meshes/Compression/dracoCompressionWorker.d.ts +44 -0
  95. package/Meshes/Compression/dracoCompressionWorker.js +189 -0
  96. package/Meshes/Compression/dracoCompressionWorker.js.map +1 -0
  97. package/Meshes/trailMesh.js +1 -1
  98. package/Meshes/trailMesh.js.map +1 -1
  99. package/Misc/basis.d.ts +6 -1
  100. package/Misc/basis.js +11 -231
  101. package/Misc/basis.js.map +1 -1
  102. package/Misc/basisWorker.d.ts +13 -0
  103. package/Misc/basisWorker.js +249 -0
  104. package/Misc/basisWorker.js.map +1 -0
  105. package/Misc/khronosTextureContainer2.d.ts +25 -3
  106. package/Misc/khronosTextureContainer2.js +35 -106
  107. package/Misc/khronosTextureContainer2.js.map +1 -1
  108. package/Misc/khronosTextureContainer2Worker.d.ts +12 -0
  109. package/Misc/khronosTextureContainer2Worker.js +136 -0
  110. package/Misc/khronosTextureContainer2Worker.js.map +1 -0
  111. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  112. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  113. package/Particles/gpuParticleSystem.js +3 -3
  114. package/Particles/gpuParticleSystem.js.map +1 -1
  115. package/Particles/particleSystem.js +7 -3
  116. package/Particles/particleSystem.js.map +1 -1
  117. package/Physics/v2/IPhysicsEnginePlugin.d.ts +8 -0
  118. package/Physics/v2/IPhysicsEnginePlugin.js +9 -0
  119. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  120. package/Physics/v2/Plugins/havokPlugin.d.ts +7 -1
  121. package/Physics/v2/Plugins/havokPlugin.js +19 -1
  122. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  123. package/PostProcesses/volumetricLightScatteringPostProcess.js +2 -2
  124. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  125. package/Rendering/depthRenderer.js +4 -4
  126. package/Rendering/depthRenderer.js.map +1 -1
  127. package/Rendering/geometryBufferRenderer.js +5 -5
  128. package/Rendering/geometryBufferRenderer.js.map +1 -1
  129. package/Rendering/outlineRenderer.js +4 -4
  130. package/Rendering/outlineRenderer.js.map +1 -1
  131. package/package.json +1 -1
  132. package/scene.d.ts +4 -4
  133. package/scene.js.map +1 -1
@@ -4,10 +4,10 @@ import { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } f
4
4
  import { VertexBuffer } from "../../Buffers/buffer.js";
5
5
  import { Vector2 } from "../../Maths/math.vector.js";
6
6
  import { MaterialFlags } from "../../Materials/materialFlags.js";
7
- import { MaterialHelper } from "../../Materials/materialHelper.js";
8
7
  import { MaterialPluginBase } from "../materialPluginBase.js";
9
8
 
10
9
  import { MaterialDefines } from "../materialDefines.js";
10
+ import { BindTextureMatrix, PrepareDefinesForMergedUV } from "../materialHelper.functions.js";
11
11
  /**
12
12
  * @internal
13
13
  */
@@ -105,7 +105,7 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
105
105
  if (defines._areTexturesDirty) {
106
106
  if (scene.texturesEnabled) {
107
107
  if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {
108
- MaterialHelper.PrepareDefinesForMergedUV(this._texture, defines, "ANISOTROPIC_TEXTURE");
108
+ PrepareDefinesForMergedUV(this._texture, defines, "ANISOTROPIC_TEXTURE");
109
109
  }
110
110
  else {
111
111
  defines.ANISOTROPIC_TEXTURE = false;
@@ -131,7 +131,7 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
131
131
  if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {
132
132
  if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {
133
133
  uniformBuffer.updateFloat2("vAnisotropyInfos", this._texture.coordinatesIndex, this._texture.level);
134
- MaterialHelper.BindTextureMatrix(this._texture, uniformBuffer, "anisotropy");
134
+ BindTextureMatrix(this._texture, uniformBuffer, "anisotropy");
135
135
  }
136
136
  // Anisotropy
137
137
  uniformBuffer.updateFloat3("vAnisotropy", this.direction.x, this.direction.y, this.intensity);
@@ -1 +1 @@
1
- {"version":3,"file":"pbrAnisotropicConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrAnisotropicConfiguration.ts"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAA/D;;QACW,gBAAW,GAAG,KAAK,CAAC;QACpB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,gCAA2B,GAAG,CAAC,CAAC;QAChC,uBAAkB,GAAG,KAAK,CAAC;QAC3B,YAAO,GAAG,KAAK,CAAC;IAC3B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,kBAAkB;IAsB/D;;OAEG;IACH,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAuBD,gBAAgB;IACT,gCAAgC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,wCAAwC,EAAE,CAAC;IACpD,CAAC;IAKD,gBAAgB;IACT,4BAA4B;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAChD,CAAC;IAED,YAAY,QAAyB,EAAE,eAAe,GAAG,IAAI;QACzD,KAAK,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,0BAA0B,EAAE,EAAE,eAAe,CAAC,CAAC;QA1EtF,eAAU,GAAG,KAAK,CAAC;QAC3B;;WAEG;QAGI,cAAS,GAAG,KAAK,CAAC;QAEzB;;WAEG;QAEI,cAAS,GAAW,CAAC,CAAC;QAE7B;;;WAGG;QAEI,cAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAkB7B,aAAQ,GAA0B,IAAI,CAAC;QAC/C;;;;WAIG;QAGI,YAAO,GAA0B,IAAI,CAAC;QAErC,YAAO,GAAG,KAAK,CAAC;QACxB;;WAEG;QAGI,WAAM,GAAY,KAAK,CAAC;QAuB3B,IAAI,CAAC,wCAAwC,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC9G,IAAI,CAAC,oCAAoC,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC3G,CAAC;IAEM,iBAAiB,CAAC,OAAmC,EAAE,KAAY;QACtE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC3B,IAAI,KAAK,CAAC,eAAe,EAAE;gBACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,yBAAyB,EAAE;oBAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE;wBACvC,OAAO,KAAK,CAAC;qBAChB;iBACJ;aACJ;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,8BAA8B,CAAC,OAAmC,EAAE,KAAY,EAAE,IAAkB;QACvG,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;gBAC1E,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;aAC1B;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,KAAK,CAAC,eAAe,EAAE;oBACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,yBAAyB,EAAE;wBAC1D,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;qBAC3F;yBAAM;wBACH,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;qBACvC;iBACJ;aACJ;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACvB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC;aAC7C;SACJ;aAAM;YACH,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YAC5B,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACpC,OAAO,CAAC,2BAA2B,GAAG,CAAC,CAAC;YACxC,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACtC;IACL,CAAC;IAEM,cAAc,CAAC,aAA4B,EAAE,KAAY;QAC5D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAEzC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7D,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,yBAAyB,EAAE;gBAC1D,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;aAChF;YAED,aAAa;YACb,aAAa,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACjG;QAED,WAAW;QACX,IAAI,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,yBAAyB,EAAE;gBAC1D,aAAa,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChE;SACJ;IACL,CAAC;IAEM,UAAU,CAAC,OAAoB;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB,CAAC,cAA6B;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtC;IACL,CAAC;IAEM,cAAc,CAAC,WAA0B;QAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAClF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;IACL,CAAC;IAEM,OAAO,CAAC,oBAA8B;QACzC,IAAI,oBAAoB,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC3B;SACJ;IACL,CAAC;IAEM,YAAY;QACf,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,OAAmC,EAAE,SAA0B,EAAE,WAAmB;QACpG,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;SACvD;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,WAAW,CAAC,QAAkB;QACjC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW;QACd,OAAO;YACH,GAAG,EAAE;gBACD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC9C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBACnD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACvD;SACJ,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAW,EAAE,KAAY,EAAE,OAAe;QACnD,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEpC,yBAAyB;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;IACL,CAAC;CACJ;AArNU;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;8DAC5B;AAMlB;IADN,SAAS,EAAE;8DACiB;AAOtB;IADN,kBAAkB,EAAE;8DACgB;AA0B9B;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,CAAC;4DACR;AAQtC;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;2DAClB","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators\";\r\nimport type { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport { Vector2 } from \"../../Maths/math.vector\";\r\nimport { MaterialFlags } from \"../../Materials/materialFlags\";\r\nimport { MaterialHelper } from \"../../Materials/materialHelper\";\r\nimport type { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport type { EffectFallbacks } from \"../effectFallbacks\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport type { Scene } from \"../../scene\";\r\nimport type { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport type { PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialAnisotropicDefines extends MaterialDefines {\r\n public ANISOTROPIC = false;\r\n public ANISOTROPIC_TEXTURE = false;\r\n public ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n public ANISOTROPIC_LEGACY = false;\r\n public MAINUV1 = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the anisotropic component of the PBR material\r\n */\r\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the anisotropy is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines if the effect is along the tangents, bitangents or in between.\r\n * By default, the effect is \"stretching\" the highlights along the tangents.\r\n */\r\n @serializeAsVector2()\r\n public direction = new Vector2(1, 0);\r\n\r\n /**\r\n * Sets the anisotropy direction as an angle.\r\n */\r\n public set angle(value: number) {\r\n this.direction.x = Math.cos(value);\r\n this.direction.y = Math.sin(value);\r\n }\r\n\r\n /**\r\n * Gets the anisotropy angle value in radians.\r\n * @returns the anisotropy angle value in radians.\r\n */\r\n public get angle(): number {\r\n return Math.atan2(this.direction.y, this.direction.x);\r\n }\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the anisotropy values in a texture.\r\n * rg is direction (like normal from -1 to 1)\r\n * b is a intensity\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _legacy = false;\r\n /**\r\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public legacy: boolean = false;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n }\r\n\r\n public isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void {\r\n if (this._isEnabled) {\r\n defines.ANISOTROPIC = this._isEnabled;\r\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n defines._needUVs = true;\r\n defines.MAINUV1 = true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n MaterialHelper.PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\r\n } else {\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n }\r\n }\r\n }\r\n\r\n if (defines._areMiscDirty) {\r\n defines.ANISOTROPIC_LEGACY = this._legacy;\r\n }\r\n } else {\r\n defines.ANISOTROPIC = false;\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n defines.ANISOTROPIC_LEGACY = false;\r\n }\r\n }\r\n\r\n public bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\r\n MaterialHelper.BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\r\n }\r\n\r\n // Anisotropy\r\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n }\r\n\r\n public getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n }\r\n\r\n public dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n if (this._texture) {\r\n this._texture.dispose();\r\n }\r\n }\r\n }\r\n\r\n public getClassName(): string {\r\n return \"PBRAnisotropicConfiguration\";\r\n }\r\n\r\n public addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.ANISOTROPIC) {\r\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n public getSamplers(samplers: string[]): void {\r\n samplers.push(\"anisotropySampler\");\r\n }\r\n\r\n public getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\r\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\r\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Parses a anisotropy Configuration from a serialized object.\r\n * @param source - Serialized object.\r\n * @param scene Defines the scene we are parsing for\r\n * @param rootUrl Defines the rootUrl to load from\r\n */\r\n public parse(source: any, scene: Scene, rootUrl: string): void {\r\n super.parse(source, scene, rootUrl);\r\n\r\n // Backward compatibility\r\n if (source.legacy === undefined) {\r\n this.legacy = true;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"pbrAnisotropicConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrAnisotropicConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators\";\r\nimport type { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport { Vector2 } from \"../../Maths/math.vector\";\r\nimport { MaterialFlags } from \"../../Materials/materialFlags\";\r\nimport type { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport type { EffectFallbacks } from \"../effectFallbacks\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport type { Scene } from \"../../scene\";\r\nimport type { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport type { PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialAnisotropicDefines extends MaterialDefines {\r\n public ANISOTROPIC = false;\r\n public ANISOTROPIC_TEXTURE = false;\r\n public ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n public ANISOTROPIC_LEGACY = false;\r\n public MAINUV1 = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the anisotropic component of the PBR material\r\n */\r\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the anisotropy is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines if the effect is along the tangents, bitangents or in between.\r\n * By default, the effect is \"stretching\" the highlights along the tangents.\r\n */\r\n @serializeAsVector2()\r\n public direction = new Vector2(1, 0);\r\n\r\n /**\r\n * Sets the anisotropy direction as an angle.\r\n */\r\n public set angle(value: number) {\r\n this.direction.x = Math.cos(value);\r\n this.direction.y = Math.sin(value);\r\n }\r\n\r\n /**\r\n * Gets the anisotropy angle value in radians.\r\n * @returns the anisotropy angle value in radians.\r\n */\r\n public get angle(): number {\r\n return Math.atan2(this.direction.y, this.direction.x);\r\n }\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the anisotropy values in a texture.\r\n * rg is direction (like normal from -1 to 1)\r\n * b is a intensity\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _legacy = false;\r\n /**\r\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public legacy: boolean = false;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n }\r\n\r\n public isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void {\r\n if (this._isEnabled) {\r\n defines.ANISOTROPIC = this._isEnabled;\r\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n defines._needUVs = true;\r\n defines.MAINUV1 = true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\r\n } else {\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n }\r\n }\r\n }\r\n\r\n if (defines._areMiscDirty) {\r\n defines.ANISOTROPIC_LEGACY = this._legacy;\r\n }\r\n } else {\r\n defines.ANISOTROPIC = false;\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n defines.ANISOTROPIC_LEGACY = false;\r\n }\r\n }\r\n\r\n public bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\r\n BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\r\n }\r\n\r\n // Anisotropy\r\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n }\r\n\r\n public getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n }\r\n\r\n public dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n if (this._texture) {\r\n this._texture.dispose();\r\n }\r\n }\r\n }\r\n\r\n public getClassName(): string {\r\n return \"PBRAnisotropicConfiguration\";\r\n }\r\n\r\n public addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.ANISOTROPIC) {\r\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n public getSamplers(samplers: string[]): void {\r\n samplers.push(\"anisotropySampler\");\r\n }\r\n\r\n public getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\r\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\r\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Parses a anisotropy Configuration from a serialized object.\r\n * @param source - Serialized object.\r\n * @param scene Defines the scene we are parsing for\r\n * @param rootUrl Defines the rootUrl to load from\r\n */\r\n public parse(source: any, scene: Scene, rootUrl: string): void {\r\n super.parse(source, scene, rootUrl);\r\n\r\n // Backward compatibility\r\n if (source.legacy === undefined) {\r\n this.legacy = true;\r\n }\r\n }\r\n}\r\n"]}
@@ -16,7 +16,6 @@ import { Material } from "../../Materials/material.js";
16
16
  import { MaterialPluginEvent } from "../materialPluginEvent.js";
17
17
  import { MaterialDefines } from "../../Materials/materialDefines.js";
18
18
  import { PushMaterial } from "../../Materials/pushMaterial.js";
19
- import { MaterialHelper } from "../../Materials/materialHelper.js";
20
19
  import { Texture } from "../../Materials/Textures/texture.js";
21
20
  import { MaterialFlags } from "../materialFlags.js";
22
21
 
@@ -31,6 +30,7 @@ import { PBRSheenConfiguration } from "./pbrSheenConfiguration.js";
31
30
  import { PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration.js";
32
31
  import { DetailMapConfiguration } from "../material.detailMapConfiguration.js";
33
32
  import { addClipPlaneUniforms, bindClipPlane } from "../clipPlaneMaterialHelper.js";
33
+ import { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, BindMorphTargetParameters, BindTextureMatrix, HandleFallbacksForShadows, PrepareAttributesForBakedVertexAnimation, PrepareAttributesForBones, PrepareAttributesForInstances, PrepareAttributesForMorphTargets, PrepareDefinesForAttributes, PrepareDefinesForFrameBoundValues, PrepareDefinesForLights, PrepareDefinesForMergedUV, PrepareDefinesForMisc, PrepareDefinesForMultiview, PrepareDefinesForOIT, PrepareDefinesForPrePass, PrepareUniformsAndSamplersList, } from "../materialHelper.functions.js";
34
34
  const onCreatedEffectParameters = { effect: null, subMesh: null };
35
35
  /**
36
36
  * Manages the defines for the PBR Material.
@@ -996,7 +996,7 @@ export class PBRBaseMaterial extends PushMaterial {
996
996
  if (defines.BUMP) {
997
997
  fallbacks.addFallback(fallbackRank++, "BUMP");
998
998
  }
999
- fallbackRank = MaterialHelper.HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights, fallbackRank++);
999
+ fallbackRank = HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights, fallbackRank++);
1000
1000
  if (defines.SPECULARTERM) {
1001
1001
  fallbacks.addFallback(fallbackRank++, "SPECULARTERM");
1002
1002
  }
@@ -1043,10 +1043,10 @@ export class PBRBaseMaterial extends PushMaterial {
1043
1043
  if (defines.VERTEXCOLOR) {
1044
1044
  attribs.push(VertexBuffer.ColorKind);
1045
1045
  }
1046
- MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
1047
- MaterialHelper.PrepareAttributesForInstances(attribs, defines);
1048
- MaterialHelper.PrepareAttributesForMorphTargets(attribs, mesh, defines);
1049
- MaterialHelper.PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);
1046
+ PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
1047
+ PrepareAttributesForInstances(attribs, defines);
1048
+ PrepareAttributesForMorphTargets(attribs, mesh, defines);
1049
+ PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);
1050
1050
  let shaderName = "pbr";
1051
1051
  const uniforms = [
1052
1052
  "world",
@@ -1159,7 +1159,7 @@ export class PBRBaseMaterial extends PushMaterial {
1159
1159
  ImageProcessingConfiguration.PrepareUniforms(uniforms, defines);
1160
1160
  ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
1161
1161
  }
1162
- MaterialHelper.PrepareUniformsAndSamplersList({
1162
+ PrepareUniformsAndSamplersList({
1163
1163
  uniformsNames: uniforms,
1164
1164
  uniformBuffersNames: uniformBuffers,
1165
1165
  samplers: samplers,
@@ -1192,15 +1192,15 @@ export class PBRBaseMaterial extends PushMaterial {
1192
1192
  const scene = this.getScene();
1193
1193
  const engine = scene.getEngine();
1194
1194
  // Lights
1195
- MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);
1195
+ PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);
1196
1196
  defines._needNormals = true;
1197
1197
  // Multiview
1198
- MaterialHelper.PrepareDefinesForMultiview(scene, defines);
1198
+ PrepareDefinesForMultiview(scene, defines);
1199
1199
  // PrePass
1200
1200
  const oit = this.needAlphaBlendingForMesh(mesh) && this.getScene().useOrderIndependentTransparency;
1201
- MaterialHelper.PrepareDefinesForPrePass(scene, defines, this.canRenderToMRT && !oit);
1201
+ PrepareDefinesForPrePass(scene, defines, this.canRenderToMRT && !oit);
1202
1202
  // Order independant transparency
1203
- MaterialHelper.PrepareDefinesForOIT(scene, defines, oit);
1203
+ PrepareDefinesForOIT(scene, defines, oit);
1204
1204
  // Textures
1205
1205
  defines.METALLICWORKFLOW = this.isMetallicWorkflow();
1206
1206
  if (defines._areTexturesDirty) {
@@ -1223,21 +1223,21 @@ export class PBRBaseMaterial extends PushMaterial {
1223
1223
  defines.LODBASEDMICROSFURACE = true;
1224
1224
  }
1225
1225
  if (this._albedoTexture && MaterialFlags.DiffuseTextureEnabled) {
1226
- MaterialHelper.PrepareDefinesForMergedUV(this._albedoTexture, defines, "ALBEDO");
1226
+ PrepareDefinesForMergedUV(this._albedoTexture, defines, "ALBEDO");
1227
1227
  defines.GAMMAALBEDO = this._albedoTexture.gammaSpace;
1228
1228
  }
1229
1229
  else {
1230
1230
  defines.ALBEDO = false;
1231
1231
  }
1232
1232
  if (this._ambientTexture && MaterialFlags.AmbientTextureEnabled) {
1233
- MaterialHelper.PrepareDefinesForMergedUV(this._ambientTexture, defines, "AMBIENT");
1233
+ PrepareDefinesForMergedUV(this._ambientTexture, defines, "AMBIENT");
1234
1234
  defines.AMBIENTINGRAYSCALE = this._useAmbientInGrayScale;
1235
1235
  }
1236
1236
  else {
1237
1237
  defines.AMBIENT = false;
1238
1238
  }
1239
1239
  if (this._opacityTexture && MaterialFlags.OpacityTextureEnabled) {
1240
- MaterialHelper.PrepareDefinesForMergedUV(this._opacityTexture, defines, "OPACITY");
1240
+ PrepareDefinesForMergedUV(this._opacityTexture, defines, "OPACITY");
1241
1241
  defines.OPACITYRGB = this._opacityTexture.getAlphaFromRGB;
1242
1242
  }
1243
1243
  else {
@@ -1346,7 +1346,7 @@ export class PBRBaseMaterial extends PushMaterial {
1346
1346
  defines.LINEARSPECULARREFLECTION = false;
1347
1347
  }
1348
1348
  if (this._lightmapTexture && MaterialFlags.LightmapTextureEnabled) {
1349
- MaterialHelper.PrepareDefinesForMergedUV(this._lightmapTexture, defines, "LIGHTMAP");
1349
+ PrepareDefinesForMergedUV(this._lightmapTexture, defines, "LIGHTMAP");
1350
1350
  defines.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap;
1351
1351
  defines.GAMMALIGHTMAP = this._lightmapTexture.gammaSpace;
1352
1352
  defines.RGBDLIGHTMAP = this._lightmapTexture.isRGBD;
@@ -1355,7 +1355,7 @@ export class PBRBaseMaterial extends PushMaterial {
1355
1355
  defines.LIGHTMAP = false;
1356
1356
  }
1357
1357
  if (this._emissiveTexture && MaterialFlags.EmissiveTextureEnabled) {
1358
- MaterialHelper.PrepareDefinesForMergedUV(this._emissiveTexture, defines, "EMISSIVE");
1358
+ PrepareDefinesForMergedUV(this._emissiveTexture, defines, "EMISSIVE");
1359
1359
  defines.GAMMAEMISSIVE = this._emissiveTexture.gammaSpace;
1360
1360
  }
1361
1361
  else {
@@ -1363,7 +1363,7 @@ export class PBRBaseMaterial extends PushMaterial {
1363
1363
  }
1364
1364
  if (MaterialFlags.SpecularTextureEnabled) {
1365
1365
  if (this._metallicTexture) {
1366
- MaterialHelper.PrepareDefinesForMergedUV(this._metallicTexture, defines, "REFLECTIVITY");
1366
+ PrepareDefinesForMergedUV(this._metallicTexture, defines, "REFLECTIVITY");
1367
1367
  defines.ROUGHNESSSTOREINMETALMAPALPHA = this._useRoughnessFromMetallicTextureAlpha;
1368
1368
  defines.ROUGHNESSSTOREINMETALMAPGREEN = !this._useRoughnessFromMetallicTextureAlpha && this._useRoughnessFromMetallicTextureGreen;
1369
1369
  defines.METALLNESSSTOREINMETALMAPBLUE = this._useMetallnessFromMetallicTextureBlue;
@@ -1371,7 +1371,7 @@ export class PBRBaseMaterial extends PushMaterial {
1371
1371
  defines.REFLECTIVITY_GAMMA = false;
1372
1372
  }
1373
1373
  else if (this._reflectivityTexture) {
1374
- MaterialHelper.PrepareDefinesForMergedUV(this._reflectivityTexture, defines, "REFLECTIVITY");
1374
+ PrepareDefinesForMergedUV(this._reflectivityTexture, defines, "REFLECTIVITY");
1375
1375
  defines.MICROSURFACEFROMREFLECTIVITYMAP = this._useMicroSurfaceFromReflectivityMapAlpha;
1376
1376
  defines.MICROSURFACEAUTOMATIC = this._useAutoMicroSurfaceFromReflectivityMap;
1377
1377
  defines.REFLECTIVITY_GAMMA = this._reflectivityTexture.gammaSpace;
@@ -1385,7 +1385,7 @@ export class PBRBaseMaterial extends PushMaterial {
1385
1385
  this._metallicReflectanceTexture.checkTransformsAreIdentical(this._reflectanceTexture);
1386
1386
  defines.METALLIC_REFLECTANCE_USE_ALPHA_ONLY = this._useOnlyMetallicFromMetallicReflectanceTexture && !identicalTextures;
1387
1387
  if (this._metallicReflectanceTexture) {
1388
- MaterialHelper.PrepareDefinesForMergedUV(this._metallicReflectanceTexture, defines, "METALLIC_REFLECTANCE");
1388
+ PrepareDefinesForMergedUV(this._metallicReflectanceTexture, defines, "METALLIC_REFLECTANCE");
1389
1389
  defines.METALLIC_REFLECTANCE_GAMMA = this._metallicReflectanceTexture.gammaSpace;
1390
1390
  }
1391
1391
  else {
@@ -1394,7 +1394,7 @@ export class PBRBaseMaterial extends PushMaterial {
1394
1394
  if (this._reflectanceTexture &&
1395
1395
  !identicalTextures &&
1396
1396
  (!this._metallicReflectanceTexture || (this._metallicReflectanceTexture && this._useOnlyMetallicFromMetallicReflectanceTexture))) {
1397
- MaterialHelper.PrepareDefinesForMergedUV(this._reflectanceTexture, defines, "REFLECTANCE");
1397
+ PrepareDefinesForMergedUV(this._reflectanceTexture, defines, "REFLECTANCE");
1398
1398
  defines.REFLECTANCE_GAMMA = this._reflectanceTexture.gammaSpace;
1399
1399
  }
1400
1400
  else {
@@ -1406,7 +1406,7 @@ export class PBRBaseMaterial extends PushMaterial {
1406
1406
  defines.REFLECTANCE = false;
1407
1407
  }
1408
1408
  if (this._microSurfaceTexture) {
1409
- MaterialHelper.PrepareDefinesForMergedUV(this._microSurfaceTexture, defines, "MICROSURFACEMAP");
1409
+ PrepareDefinesForMergedUV(this._microSurfaceTexture, defines, "MICROSURFACEMAP");
1410
1410
  }
1411
1411
  else {
1412
1412
  defines.MICROSURFACEMAP = false;
@@ -1417,7 +1417,7 @@ export class PBRBaseMaterial extends PushMaterial {
1417
1417
  defines.MICROSURFACEMAP = false;
1418
1418
  }
1419
1419
  if (engine.getCaps().standardDerivatives && this._bumpTexture && MaterialFlags.BumpTextureEnabled && !this._disableBumpMap) {
1420
- MaterialHelper.PrepareDefinesForMergedUV(this._bumpTexture, defines, "BUMP");
1420
+ PrepareDefinesForMergedUV(this._bumpTexture, defines, "BUMP");
1421
1421
  if (this._useParallax && this._albedoTexture && MaterialFlags.DiffuseTextureEnabled) {
1422
1422
  defines.PARALLAX = true;
1423
1423
  defines.PARALLAX_RHS = scene.useRightHandedSystem;
@@ -1487,18 +1487,18 @@ export class PBRBaseMaterial extends PushMaterial {
1487
1487
  defines.HORIZONOCCLUSION = this._useHorizonOcclusion;
1488
1488
  // Misc.
1489
1489
  if (defines._areMiscDirty) {
1490
- MaterialHelper.PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh) || this._forceAlphaTest, defines, this._applyDecalMapAfterDetailMap);
1490
+ PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh) || this._forceAlphaTest, defines, this._applyDecalMapAfterDetailMap);
1491
1491
  defines.UNLIT = this._unlit || ((this.pointsCloud || this.wireframe) && !mesh.isVerticesDataPresent(VertexBuffer.NormalKind));
1492
1492
  defines.DEBUGMODE = this._debugMode;
1493
1493
  }
1494
1494
  // Values that need to be evaluated on every frame
1495
- MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances ? true : false, useClipPlane, useThinInstances);
1495
+ PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances ? true : false, useClipPlane, useThinInstances);
1496
1496
  // External config
1497
1497
  this._eventInfo.defines = defines;
1498
1498
  this._eventInfo.mesh = mesh;
1499
1499
  this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo);
1500
1500
  // Attribs
1501
- MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, true, true, this._transparencyMode !== PBRBaseMaterial.PBRMATERIAL_OPAQUE);
1501
+ PrepareDefinesForAttributes(mesh, defines, true, true, true, this._transparencyMode !== PBRBaseMaterial.PBRMATERIAL_OPAQUE);
1502
1502
  // External config
1503
1503
  this._callbackPluginEventPrepareDefines(this._eventInfo);
1504
1504
  }
@@ -1633,7 +1633,7 @@ export class PBRBaseMaterial extends PushMaterial {
1633
1633
  }
1634
1634
  const mustRebind = this._mustRebind(scene, effect, subMesh, mesh.visibility);
1635
1635
  // Bones
1636
- MaterialHelper.BindBonesParameters(mesh, this._activeEffect, this.prePassConfiguration);
1636
+ BindBonesParameters(mesh, this._activeEffect, this.prePassConfiguration);
1637
1637
  let reflectionTexture = null;
1638
1638
  const ubo = this._uniformBuffer;
1639
1639
  if (mustRebind) {
@@ -1644,15 +1644,15 @@ export class PBRBaseMaterial extends PushMaterial {
1644
1644
  if (scene.texturesEnabled) {
1645
1645
  if (this._albedoTexture && MaterialFlags.DiffuseTextureEnabled) {
1646
1646
  ubo.updateFloat2("vAlbedoInfos", this._albedoTexture.coordinatesIndex, this._albedoTexture.level);
1647
- MaterialHelper.BindTextureMatrix(this._albedoTexture, ubo, "albedo");
1647
+ BindTextureMatrix(this._albedoTexture, ubo, "albedo");
1648
1648
  }
1649
1649
  if (this._ambientTexture && MaterialFlags.AmbientTextureEnabled) {
1650
1650
  ubo.updateFloat4("vAmbientInfos", this._ambientTexture.coordinatesIndex, this._ambientTexture.level, this._ambientTextureStrength, this._ambientTextureImpactOnAnalyticalLights);
1651
- MaterialHelper.BindTextureMatrix(this._ambientTexture, ubo, "ambient");
1651
+ BindTextureMatrix(this._ambientTexture, ubo, "ambient");
1652
1652
  }
1653
1653
  if (this._opacityTexture && MaterialFlags.OpacityTextureEnabled) {
1654
1654
  ubo.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level);
1655
- MaterialHelper.BindTextureMatrix(this._opacityTexture, ubo, "opacity");
1655
+ BindTextureMatrix(this._opacityTexture, ubo, "opacity");
1656
1656
  }
1657
1657
  if (reflectionTexture && MaterialFlags.ReflectionTextureEnabled) {
1658
1658
  ubo.updateMatrix("reflectionMatrix", reflectionTexture.getReflectionTextureMatrix());
@@ -1698,37 +1698,37 @@ export class PBRBaseMaterial extends PushMaterial {
1698
1698
  }
1699
1699
  if (this._emissiveTexture && MaterialFlags.EmissiveTextureEnabled) {
1700
1700
  ubo.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level);
1701
- MaterialHelper.BindTextureMatrix(this._emissiveTexture, ubo, "emissive");
1701
+ BindTextureMatrix(this._emissiveTexture, ubo, "emissive");
1702
1702
  }
1703
1703
  if (this._lightmapTexture && MaterialFlags.LightmapTextureEnabled) {
1704
1704
  ubo.updateFloat2("vLightmapInfos", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level);
1705
- MaterialHelper.BindTextureMatrix(this._lightmapTexture, ubo, "lightmap");
1705
+ BindTextureMatrix(this._lightmapTexture, ubo, "lightmap");
1706
1706
  }
1707
1707
  if (MaterialFlags.SpecularTextureEnabled) {
1708
1708
  if (this._metallicTexture) {
1709
1709
  ubo.updateFloat3("vReflectivityInfos", this._metallicTexture.coordinatesIndex, this._metallicTexture.level, this._ambientTextureStrength);
1710
- MaterialHelper.BindTextureMatrix(this._metallicTexture, ubo, "reflectivity");
1710
+ BindTextureMatrix(this._metallicTexture, ubo, "reflectivity");
1711
1711
  }
1712
1712
  else if (this._reflectivityTexture) {
1713
1713
  ubo.updateFloat3("vReflectivityInfos", this._reflectivityTexture.coordinatesIndex, this._reflectivityTexture.level, 1.0);
1714
- MaterialHelper.BindTextureMatrix(this._reflectivityTexture, ubo, "reflectivity");
1714
+ BindTextureMatrix(this._reflectivityTexture, ubo, "reflectivity");
1715
1715
  }
1716
1716
  if (this._metallicReflectanceTexture) {
1717
1717
  ubo.updateFloat2("vMetallicReflectanceInfos", this._metallicReflectanceTexture.coordinatesIndex, this._metallicReflectanceTexture.level);
1718
- MaterialHelper.BindTextureMatrix(this._metallicReflectanceTexture, ubo, "metallicReflectance");
1718
+ BindTextureMatrix(this._metallicReflectanceTexture, ubo, "metallicReflectance");
1719
1719
  }
1720
1720
  if (this._reflectanceTexture && defines.REFLECTANCE) {
1721
1721
  ubo.updateFloat2("vReflectanceInfos", this._reflectanceTexture.coordinatesIndex, this._reflectanceTexture.level);
1722
- MaterialHelper.BindTextureMatrix(this._reflectanceTexture, ubo, "reflectance");
1722
+ BindTextureMatrix(this._reflectanceTexture, ubo, "reflectance");
1723
1723
  }
1724
1724
  if (this._microSurfaceTexture) {
1725
1725
  ubo.updateFloat2("vMicroSurfaceSamplerInfos", this._microSurfaceTexture.coordinatesIndex, this._microSurfaceTexture.level);
1726
- MaterialHelper.BindTextureMatrix(this._microSurfaceTexture, ubo, "microSurfaceSampler");
1726
+ BindTextureMatrix(this._microSurfaceTexture, ubo, "microSurfaceSampler");
1727
1727
  }
1728
1728
  }
1729
1729
  if (this._bumpTexture && engine.getCaps().standardDerivatives && MaterialFlags.BumpTextureEnabled && !this._disableBumpMap) {
1730
1730
  ubo.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, this._bumpTexture.level, this._parallaxScaleBias);
1731
- MaterialHelper.BindTextureMatrix(this._bumpTexture, ubo, "bump");
1731
+ BindTextureMatrix(this._bumpTexture, ubo, "bump");
1732
1732
  if (scene._mirroredCameraPosition) {
1733
1733
  ubo.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1.0 : -1.0, this._invertNormalMapY ? 1.0 : -1.0);
1734
1734
  }
@@ -1849,7 +1849,7 @@ export class PBRBaseMaterial extends PushMaterial {
1849
1849
  if (mustRebind || !this.isFrozen) {
1850
1850
  // Lights
1851
1851
  if (scene.lightsEnabled && !this._disableLighting) {
1852
- MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, this._maxSimultaneousLights);
1852
+ BindLights(scene, mesh, this._activeEffect, defines, this._maxSimultaneousLights);
1853
1853
  }
1854
1854
  // View
1855
1855
  if ((scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) ||
@@ -1860,10 +1860,10 @@ export class PBRBaseMaterial extends PushMaterial {
1860
1860
  this.bindView(effect);
1861
1861
  }
1862
1862
  // Fog
1863
- MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect, true);
1863
+ BindFogParameters(scene, mesh, this._activeEffect, true);
1864
1864
  // Morph targets
1865
1865
  if (defines.NUM_MORPH_INFLUENCERS) {
1866
- MaterialHelper.BindMorphTargetParameters(mesh, this._activeEffect);
1866
+ BindMorphTargetParameters(mesh, this._activeEffect);
1867
1867
  }
1868
1868
  if (defines.BAKED_VERTEX_ANIMATION_TEXTURE) {
1869
1869
  mesh.bakedVertexAnimationManager?.bind(effect, defines.INSTANCES);
@@ -1871,7 +1871,7 @@ export class PBRBaseMaterial extends PushMaterial {
1871
1871
  // image processing
1872
1872
  this._imageProcessingConfiguration.bind(this._activeEffect);
1873
1873
  // Log. depth
1874
- MaterialHelper.BindLogDepth(defines, this._activeEffect, scene);
1874
+ BindLogDepth(defines, this._activeEffect, scene);
1875
1875
  }
1876
1876
  this._afterBind(mesh, this._activeEffect, subMesh);
1877
1877
  ubo.update();