@babylonjs/core 7.15.2 → 7.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/Animations/animationGroup.d.ts +1 -0
  2. package/Animations/animationGroup.js +4 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Collisions/gpuPicker.js +1 -1
  5. package/Collisions/gpuPicker.js.map +1 -1
  6. package/Compute/computeEffect.js +1 -1
  7. package/Compute/computeEffect.js.map +1 -1
  8. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +32 -0
  9. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +32 -0
  10. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  11. package/Engines/abstractEngine.js +2 -2
  12. package/Engines/abstractEngine.js.map +1 -1
  13. package/Engines/engine.d.ts +1993 -1993
  14. package/Engines/nativeEngine.d.ts +7 -0
  15. package/Engines/nativeEngine.js +24 -1
  16. package/Engines/nativeEngine.js.map +1 -1
  17. package/Engines/thinEngine.js +2 -2
  18. package/Engines/thinEngine.js.map +1 -1
  19. package/Engines/webgpuEngine.js +3 -3
  20. package/Engines/webgpuEngine.js.map +1 -1
  21. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +6 -6
  22. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  23. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -7
  24. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  25. package/Materials/Node/Blocks/Dual/textureBlock.js +1 -1
  26. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  27. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +4 -4
  28. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  29. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +46 -40
  30. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  31. package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -1
  32. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +10 -9
  33. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  34. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -0
  35. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +85 -69
  36. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  37. package/Materials/Node/Blocks/PBR/reflectionBlock.js +54 -38
  38. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  39. package/Materials/Node/Blocks/PBR/refractionBlock.js +2 -2
  40. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  41. package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -1
  42. package/Materials/Node/Blocks/PBR/sheenBlock.js +40 -32
  43. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  44. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +53 -45
  45. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  46. package/Materials/Node/nodeMaterial.d.ts +2 -1
  47. package/Materials/Node/nodeMaterial.js +4 -1
  48. package/Materials/Node/nodeMaterial.js.map +1 -1
  49. package/Materials/Node/nodeMaterialBuildState.d.ts +1 -0
  50. package/Materials/Node/nodeMaterialBuildState.js +12 -3
  51. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  52. package/Materials/Textures/rawTexture.d.ts +5 -0
  53. package/Materials/Textures/rawTexture.js +13 -0
  54. package/Materials/Textures/rawTexture.js.map +1 -1
  55. package/Materials/effect.js +2 -2
  56. package/Materials/effect.js.map +1 -1
  57. package/Meshes/Builders/decalBuilder.js +12 -12
  58. package/Meshes/Builders/decalBuilder.js.map +1 -1
  59. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +10 -1
  60. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +50 -11
  61. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  62. package/Meshes/Node/nodeGeometry.d.ts +6 -0
  63. package/Meshes/Node/nodeGeometry.js +7 -0
  64. package/Meshes/Node/nodeGeometry.js.map +1 -1
  65. package/Meshes/mesh.d.ts +1 -0
  66. package/Meshes/mesh.js +138 -134
  67. package/Meshes/mesh.js.map +1 -1
  68. package/Meshes/subMesh.js +1 -1
  69. package/Meshes/subMesh.js.map +1 -1
  70. package/Misc/khronosTextureContainer2.js +1 -1
  71. package/Misc/khronosTextureContainer2.js.map +1 -1
  72. package/Rendering/GlobalIllumination/giRSMManager.js +1 -1
  73. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  74. package/Rendering/edgesRenderer.js +1 -1
  75. package/Rendering/edgesRenderer.js.map +1 -1
  76. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +1 -1
  77. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  78. package/Shaders/ShadersInclude/lightFragment.js +3 -3
  79. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  80. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
  81. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  82. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +13 -14
  83. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  84. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +4 -5
  85. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  86. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +4 -5
  87. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  88. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +4 -5
  89. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  90. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +34 -35
  91. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  92. package/Shaders/ShadersInclude/pbrBlockIridescence.js +10 -11
  93. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  94. package/Shaders/ShadersInclude/pbrBlockReflection.js +23 -24
  95. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  96. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +12 -13
  97. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  98. package/Shaders/ShadersInclude/pbrBlockSheen.js +31 -32
  99. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  100. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +43 -44
  101. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  102. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  103. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  104. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  105. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  106. package/Shaders/pbr.fragment.js +143 -153
  107. package/Shaders/pbr.fragment.js.map +1 -1
  108. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +3 -3
  109. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  110. package/ShadersWGSL/ShadersInclude/decalFragment.d.ts +5 -0
  111. package/ShadersWGSL/ShadersInclude/decalFragment.js +18 -0
  112. package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -0
  113. package/ShadersWGSL/ShadersInclude/depthPrePass.d.ts +5 -0
  114. package/ShadersWGSL/ShadersInclude/depthPrePass.js +12 -0
  115. package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -0
  116. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.d.ts +5 -0
  117. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +24 -0
  118. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -0
  119. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.d.ts +5 -0
  120. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +39 -0
  121. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -0
  122. package/ShadersWGSL/ShadersInclude/helperFunctions.js +6 -2
  123. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  124. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +2 -2
  125. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  126. package/ShadersWGSL/ShadersInclude/importanceSampling.d.ts +5 -0
  127. package/ShadersWGSL/ShadersInclude/importanceSampling.js +12 -0
  128. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -0
  129. package/ShadersWGSL/ShadersInclude/lightFragment.js +3 -3
  130. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  131. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +1 -1
  132. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  133. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.d.ts +5 -0
  134. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +139 -0
  135. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -0
  136. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +6 -0
  137. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +81 -0
  138. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -0
  139. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.d.ts +5 -0
  140. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +37 -0
  141. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -0
  142. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +5 -0
  143. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +35 -0
  144. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -0
  145. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.d.ts +5 -0
  146. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +46 -0
  147. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -0
  148. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.d.ts +5 -0
  149. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +267 -0
  150. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -0
  151. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.d.ts +5 -0
  152. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +24 -0
  153. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -0
  154. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.d.ts +5 -0
  155. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +51 -0
  156. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -0
  157. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.d.ts +5 -0
  158. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +96 -0
  159. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -0
  160. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +5 -0
  161. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +26 -0
  162. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -0
  163. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.d.ts +5 -0
  164. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +33 -0
  165. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -0
  166. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.d.ts +5 -0
  167. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +20 -0
  168. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -0
  169. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.d.ts +5 -0
  170. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +51 -0
  171. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -0
  172. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.d.ts +5 -0
  173. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +19 -0
  174. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -0
  175. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.d.ts +5 -0
  176. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +19 -0
  177. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -0
  178. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.d.ts +5 -0
  179. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +30 -0
  180. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -0
  181. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.d.ts +5 -0
  182. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +18 -0
  183. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -0
  184. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.d.ts +5 -0
  185. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +277 -0
  186. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -0
  187. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.d.ts +5 -0
  188. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +120 -0
  189. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -0
  190. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.d.ts +5 -0
  191. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +195 -0
  192. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -0
  193. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.d.ts +5 -0
  194. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +425 -0
  195. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -0
  196. package/ShadersWGSL/ShadersInclude/pbrDebug.d.ts +5 -0
  197. package/ShadersWGSL/ShadersInclude/pbrDebug.js +193 -0
  198. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -0
  199. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +5 -0
  200. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +43 -0
  201. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -0
  202. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.d.ts +5 -0
  203. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +68 -0
  204. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -0
  205. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +5 -0
  206. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +30 -0
  207. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -0
  208. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.d.ts +5 -0
  209. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +41 -0
  210. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -0
  211. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.d.ts +5 -0
  212. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +23 -0
  213. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -0
  214. package/package.json +1 -1
@@ -81,6 +81,7 @@ export declare class NativeEngine extends Engine {
81
81
  private _zOffset;
82
82
  private _zOffsetUnits;
83
83
  private _depthWrite;
84
+ private _fillModeWarningDisplayed;
84
85
  setHardwareScalingLevel(level: number): void;
85
86
  constructor(options?: NativeEngineOptions);
86
87
  dispose(): void;
@@ -122,6 +123,12 @@ export declare class NativeEngine extends Engine {
122
123
  bindVertexArrayObject(vertexArray: WebGLVertexArrayObject): void;
123
124
  releaseVertexArrayObject(vertexArray: WebGLVertexArrayObject): void;
124
125
  getAttributes(pipelineContext: IPipelineContext, attributesNames: string[]): number[];
126
+ /**
127
+ * Triangle Fan and Line Loop are not supported by modern rendering API
128
+ * @param fillMode defines the primitive to use
129
+ * @returns true if supported
130
+ */
131
+ private _checkSupportedFillMode;
125
132
  /**
126
133
  * Draw a list of indexed primitives
127
134
  * @param fillMode defines the primitive to use
@@ -144,6 +144,8 @@ export class NativeEngine extends Engine {
144
144
  this._zOffset = 0;
145
145
  this._zOffsetUnits = 0;
146
146
  this._depthWrite = true;
147
+ // warning for non supported fill mode has already been displayed
148
+ this._fillModeWarningDisplayed = false;
147
149
  if (_native.Engine.PROTOCOL_VERSION !== NativeEngine.PROTOCOL_VERSION) {
148
150
  throw new Error(`Protocol version mismatch: ${_native.Engine.PROTOCOL_VERSION} (Native) !== ${NativeEngine.PROTOCOL_VERSION} (JS)`);
149
151
  }
@@ -470,6 +472,21 @@ export class NativeEngine extends Engine {
470
472
  }
471
473
  return this._engine.getAttributes(nativePipelineContext.program, remappedAttributesNames);
472
474
  }
475
+ /**
476
+ * Triangle Fan and Line Loop are not supported by modern rendering API
477
+ * @param fillMode defines the primitive to use
478
+ * @returns true if supported
479
+ */
480
+ _checkSupportedFillMode(fillMode) {
481
+ if (fillMode == 5 || fillMode == 8) {
482
+ if (!this._fillModeWarningDisplayed) {
483
+ Logger.Warn("Line Loop and Triangle Fan are not supported fill modes with Babylon Native. Elements with these fill mode will not be visible.");
484
+ this._fillModeWarningDisplayed = true;
485
+ }
486
+ return false;
487
+ }
488
+ return true;
489
+ }
473
490
  /**
474
491
  * Draw a list of indexed primitives
475
492
  * @param fillMode defines the primitive to use
@@ -478,6 +495,9 @@ export class NativeEngine extends Engine {
478
495
  * @param instancesCount defines the number of instances to draw (if instantiation is enabled)
479
496
  */
480
497
  drawElementsType(fillMode, indexStart, indexCount, instancesCount) {
498
+ if (!this._checkSupportedFillMode(fillMode)) {
499
+ return;
500
+ }
481
501
  // Apply states
482
502
  this._drawCalls.addCount(1, false);
483
503
  if (instancesCount && _native.Engine.COMMAND_DRAWINDEXEDINSTANCED) {
@@ -504,6 +524,9 @@ export class NativeEngine extends Engine {
504
524
  * @param instancesCount defines the number of instances to draw (if instantiation is enabled)
505
525
  */
506
526
  drawArraysType(fillMode, verticesStart, verticesCount, instancesCount) {
527
+ if (!this._checkSupportedFillMode(fillMode)) {
528
+ return;
529
+ }
507
530
  // Apply states
508
531
  this._drawCalls.addCount(1, false);
509
532
  if (instancesCount && _native.Engine.COMMAND_DRAWINSTANCED) {
@@ -701,7 +724,7 @@ export class NativeEngine extends Engine {
701
724
  this._commandBufferEncoder.encodeCommandArgAsUInt32(culling ? 1 : 0);
702
725
  this._commandBufferEncoder.encodeCommandArgAsFloat32(zOffset);
703
726
  this._commandBufferEncoder.encodeCommandArgAsFloat32(zOffsetUnits);
704
- this._commandBufferEncoder.encodeCommandArgAsUInt32(this.cullBackFaces ?? cullBackFaces ?? true ? 1 : 0);
727
+ this._commandBufferEncoder.encodeCommandArgAsUInt32((this.cullBackFaces ?? cullBackFaces ?? true) ? 1 : 0);
705
728
  this._commandBufferEncoder.encodeCommandArgAsUInt32(reverseSide ? 1 : 0);
706
729
  this._commandBufferEncoder.finishEncodingCommand();
707
730
  }