@babylonjs/core 8.24.0 → 8.24.2

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 (160) hide show
  1. package/Behaviors/Meshes/index.d.ts +1 -0
  2. package/Behaviors/Meshes/index.js +1 -0
  3. package/Behaviors/Meshes/index.js.map +1 -1
  4. package/Behaviors/Meshes/pointerDragBehavior.d.ts +6 -34
  5. package/Behaviors/Meshes/pointerDragBehavior.js +0 -12
  6. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  7. package/Behaviors/Meshes/pointerDragEvents.d.ts +38 -0
  8. package/Behaviors/Meshes/pointerDragEvents.js +2 -0
  9. package/Behaviors/Meshes/pointerDragEvents.js.map +1 -0
  10. package/Engines/Extensions/engine.multiview.js +5 -5
  11. package/Engines/Extensions/engine.multiview.js.map +1 -1
  12. package/Engines/abstractEngine.js +3 -3
  13. package/Engines/abstractEngine.js.map +1 -1
  14. package/Engines/engineFactory.d.ts +4 -1
  15. package/Engines/engineFactory.js.map +1 -1
  16. package/Engines/thinEngine.js +2 -0
  17. package/Engines/thinEngine.js.map +1 -1
  18. package/Engines/webgpuEngine.js +7 -0
  19. package/Engines/webgpuEngine.js.map +1 -1
  20. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +4 -0
  21. package/FrameGraph/Tasks/Layers/baseLayerTask.js +6 -0
  22. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  23. package/Gizmos/cameraGizmo.js +2 -2
  24. package/Gizmos/cameraGizmo.js.map +1 -1
  25. package/Gizmos/lightGizmo.js +2 -2
  26. package/Gizmos/lightGizmo.js.map +1 -1
  27. package/Gizmos/positionGizmo.d.ts +7 -6
  28. package/Gizmos/positionGizmo.js +3 -9
  29. package/Gizmos/positionGizmo.js.map +1 -1
  30. package/Gizmos/rotationGizmo.d.ts +7 -6
  31. package/Gizmos/rotationGizmo.js +3 -9
  32. package/Gizmos/rotationGizmo.js.map +1 -1
  33. package/Gizmos/scaleGizmo.d.ts +7 -6
  34. package/Gizmos/scaleGizmo.js +3 -9
  35. package/Gizmos/scaleGizmo.js.map +1 -1
  36. package/Instrumentation/sceneInstrumentation.d.ts +2 -0
  37. package/Instrumentation/sceneInstrumentation.js +58 -32
  38. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  39. package/Lights/Clustered/clusteredLightContainer.d.ts +12 -0
  40. package/Lights/Clustered/clusteredLightContainer.js +104 -18
  41. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  42. package/Lights/Shadows/cascadedShadowGenerator.js +1 -0
  43. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  44. package/Lights/Shadows/shadowGenerator.js +1 -0
  45. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  46. package/Lights/light.d.ts +5 -0
  47. package/Lights/light.js +5 -0
  48. package/Lights/light.js.map +1 -1
  49. package/Materials/PBR/pbrBaseMaterial.js +2 -1
  50. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  51. package/Materials/Textures/renderTargetTexture.d.ts +5 -0
  52. package/Materials/Textures/renderTargetTexture.js +9 -0
  53. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  54. package/Materials/materialHelper.functions.js +4 -2
  55. package/Materials/materialHelper.functions.js.map +1 -1
  56. package/Materials/standardMaterial.js +2 -1
  57. package/Materials/standardMaterial.js.map +1 -1
  58. package/Materials/uniformBuffer.d.ts +6 -3
  59. package/Materials/uniformBuffer.js +35 -13
  60. package/Materials/uniformBuffer.js.map +1 -1
  61. package/Maths/math.vector.d.ts +1 -1
  62. package/Maths/math.vector.js +2 -2
  63. package/Maths/math.vector.js.map +1 -1
  64. package/Meshes/abstractMesh.d.ts +21 -0
  65. package/Meshes/abstractMesh.hotSpot.js +37 -25
  66. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  67. package/Meshes/abstractMesh.js.map +1 -1
  68. package/Meshes/instancedMesh.d.ts +1 -0
  69. package/Meshes/instancedMesh.js +3 -0
  70. package/Meshes/instancedMesh.js.map +1 -1
  71. package/Meshes/mesh.d.ts +0 -19
  72. package/Meshes/mesh.js +0 -19
  73. package/Meshes/mesh.js.map +1 -1
  74. package/Misc/fileTools.js +1 -1
  75. package/Misc/fileTools.js.map +1 -1
  76. package/Misc/screenshotTools.js +1 -1
  77. package/Misc/screenshotTools.js.map +1 -1
  78. package/Misc/snapshotRenderingHelper.d.ts +4 -3
  79. package/Misc/snapshotRenderingHelper.js +6 -5
  80. package/Misc/snapshotRenderingHelper.js.map +1 -1
  81. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +7 -3
  82. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  83. package/Particles/Node/Blocks/Emitters/meshShapeBlock.js +0 -3
  84. package/Particles/Node/Blocks/Emitters/meshShapeBlock.js.map +1 -1
  85. package/Particles/Node/Blocks/systemBlock.d.ts +3 -0
  86. package/Particles/Node/Blocks/systemBlock.js +3 -0
  87. package/Particles/Node/Blocks/systemBlock.js.map +1 -1
  88. package/Particles/Node/nodeParticleBuildState.js +1 -1
  89. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  90. package/Particles/Node/nodeParticleSystemSet.helper.d.ts +1 -1
  91. package/Particles/Node/nodeParticleSystemSet.helper.js +25 -5
  92. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  93. package/Particles/Node/nodeParticleSystemSet.js +1 -0
  94. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  95. package/Particles/particle.d.ts +4 -0
  96. package/Particles/particle.js +5 -0
  97. package/Particles/particle.js.map +1 -1
  98. package/Particles/particleSystem.d.ts +2 -0
  99. package/Particles/particleSystem.js +2 -0
  100. package/Particles/particleSystem.js.map +1 -1
  101. package/Particles/thinParticleSystem.d.ts +2 -0
  102. package/Particles/thinParticleSystem.function.d.ts +2 -0
  103. package/Particles/thinParticleSystem.function.js +3 -0
  104. package/Particles/thinParticleSystem.function.js.map +1 -1
  105. package/Particles/thinParticleSystem.js +11 -5
  106. package/Particles/thinParticleSystem.js.map +1 -1
  107. package/Rendering/objectRenderer.d.ts +17 -1
  108. package/Rendering/objectRenderer.js +55 -14
  109. package/Rendering/objectRenderer.js.map +1 -1
  110. package/Shaders/ShadersInclude/clusteredLightingFunctions.js +1 -0
  111. package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  112. package/Shaders/ShadersInclude/helperFunctions.js +1 -0
  113. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  114. package/Shaders/ShadersInclude/lightFragment.js +4 -4
  115. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  116. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
  117. package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
  118. package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
  119. package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
  120. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
  121. package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  122. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +2 -2
  123. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  124. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +2 -2
  125. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  126. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -0
  127. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  128. package/Shaders/default.fragment.js +3 -0
  129. package/Shaders/default.fragment.js.map +1 -1
  130. package/Shaders/default.vertex.js +6 -0
  131. package/Shaders/default.vertex.js.map +1 -1
  132. package/Shaders/pbr.vertex.js +6 -0
  133. package/Shaders/pbr.vertex.js.map +1 -1
  134. package/ShadersWGSL/ShadersInclude/clusteredLightingFunctions.js +1 -0
  135. package/ShadersWGSL/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  136. package/ShadersWGSL/ShadersInclude/lightFragment.js +4 -4
  137. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  138. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +2 -1
  139. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
  140. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +2 -1
  141. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  142. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +3 -2
  143. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  144. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -2
  145. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  146. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -0
  147. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  148. package/ShadersWGSL/default.fragment.js +3 -0
  149. package/ShadersWGSL/default.fragment.js.map +1 -1
  150. package/ShadersWGSL/default.vertex.js +6 -0
  151. package/ShadersWGSL/default.vertex.js.map +1 -1
  152. package/ShadersWGSL/pbr.vertex.js +6 -0
  153. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  154. package/States/alphaCullingState.d.ts +3 -1
  155. package/States/alphaCullingState.js +39 -37
  156. package/States/alphaCullingState.js.map +1 -1
  157. package/package.json +1 -1
  158. package/scene.d.ts +27 -1
  159. package/scene.js +55 -2
  160. package/scene.js.map +1 -1
@@ -1,4 +1,7 @@
1
1
  import type { AbstractEngine } from "./abstractEngine.js";
2
+ import { type NullEngineOptions } from "./nullEngine.js";
3
+ import { type WebGPUEngineOptions } from "./webgpuEngine.js";
4
+ import type { EngineOptions } from "./thinEngine.js";
2
5
  /**
3
6
  * Helper class to create the best engine depending on the current hardware
4
7
  */
@@ -9,5 +12,5 @@ export declare class EngineFactory {
9
12
  * @param options Defines the options passed to the engine to create the context dependencies
10
13
  * @returns a promise that resolves with the created engine
11
14
  */
12
- static CreateAsync(canvas: HTMLCanvasElement, options: any): Promise<AbstractEngine>;
15
+ static CreateAsync(canvas: HTMLCanvasElement, options?: WebGPUEngineOptions | EngineOptions | NullEngineOptions): Promise<AbstractEngine>;
13
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engineFactory.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/engineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAyB,EAAE,OAAY;QACnE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACJ","sourcesContent":["import type { AbstractEngine } from \"./abstractEngine\";\r\nimport { Engine } from \"./engine\";\r\nimport { NullEngine } from \"./nullEngine\";\r\nimport { WebGPUEngine } from \"./webgpuEngine\";\r\n\r\n/**\r\n * Helper class to create the best engine depending on the current hardware\r\n */\r\nexport class EngineFactory {\r\n /**\r\n * Creates an engine based on the capabilities of the underlying hardware\r\n * @param canvas Defines the canvas to use to display the result\r\n * @param options Defines the options passed to the engine to create the context dependencies\r\n * @returns a promise that resolves with the created engine\r\n */\r\n public static async CreateAsync(canvas: HTMLCanvasElement, options: any): Promise<AbstractEngine> {\r\n const supported = await WebGPUEngine.IsSupportedAsync;\r\n if (supported) {\r\n return await WebGPUEngine.CreateAsync(canvas, options);\r\n }\r\n if (Engine.IsSupported) {\r\n return new Engine(canvas, undefined, options);\r\n }\r\n return new NullEngine(options);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"engineFactory.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/engineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAA4B,MAAM,gBAAgB,CAAC;AAGxE;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAyB,EAAE,OAAiE;QACxH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAA8B,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAwB,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,OAA4B,CAAC,CAAC;IACxD,CAAC;CACJ","sourcesContent":["import type { AbstractEngine } from \"./abstractEngine\";\r\nimport { Engine } from \"./engine\";\r\nimport { NullEngine, type NullEngineOptions } from \"./nullEngine\";\r\nimport { WebGPUEngine, type WebGPUEngineOptions } from \"./webgpuEngine\";\r\nimport type { EngineOptions } from \"./thinEngine\";\r\n\r\n/**\r\n * Helper class to create the best engine depending on the current hardware\r\n */\r\nexport class EngineFactory {\r\n /**\r\n * Creates an engine based on the capabilities of the underlying hardware\r\n * @param canvas Defines the canvas to use to display the result\r\n * @param options Defines the options passed to the engine to create the context dependencies\r\n * @returns a promise that resolves with the created engine\r\n */\r\n public static async CreateAsync(canvas: HTMLCanvasElement, options?: WebGPUEngineOptions | EngineOptions | NullEngineOptions): Promise<AbstractEngine> {\r\n const supported = await WebGPUEngine.IsSupportedAsync;\r\n if (supported) {\r\n return await WebGPUEngine.CreateAsync(canvas, options as WebGPUEngineOptions);\r\n }\r\n if (Engine.IsSupported) {\r\n return new Engine(canvas, undefined, options as EngineOptions);\r\n }\r\n return new NullEngine(options as NullEngineOptions);\r\n }\r\n}\r\n"]}
@@ -14,6 +14,7 @@ import { Effect } from "../Materials/effect.js";
14
14
  import { _ConcatenateShader, _GetGlobalDefines } from "./abstractEngine.functions.js";
15
15
  import { resetCachedPipeline } from "../Materials/effect.functions.js";
16
16
  import { HasStencilAspect, IsDepthTexture } from "../Materials/Textures/textureHelper.functions.js";
17
+ import { AlphaState } from "../States/alphaCullingState.js";
17
18
  /**
18
19
  * Keeps track of all the buffer info used in engine.
19
20
  */
@@ -435,6 +436,7 @@ export class ThinEngine extends AbstractEngine {
435
436
  }
436
437
  const oesDrawBuffersIndexed = this._gl.getExtension("OES_draw_buffers_indexed");
437
438
  this._caps.blendParametersPerTarget = oesDrawBuffersIndexed ? true : false;
439
+ this._alphaState = new AlphaState(this._caps.blendParametersPerTarget);
438
440
  if (oesDrawBuffersIndexed) {
439
441
  this._gl.blendEquationSeparateIndexed = oesDrawBuffersIndexed.blendEquationSeparateiOES.bind(oesDrawBuffersIndexed);
440
442
  this._gl.blendEquationIndexed = oesDrawBuffersIndexed.blendEquationiOES.bind(oesDrawBuffersIndexed);