@babylonjs/core 8.34.0 → 8.35.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 (176) hide show
  1. package/Audio/audioSceneComponent.d.ts +9 -5
  2. package/Audio/audioSceneComponent.js +1 -0
  3. package/Audio/audioSceneComponent.js.map +1 -1
  4. package/AudioV2/abstractAudio/audioEngineV2.d.ts +10 -0
  5. package/AudioV2/abstractAudio/audioEngineV2.js +29 -0
  6. package/AudioV2/abstractAudio/audioEngineV2.js.map +1 -1
  7. package/AudioV2/webAudio/webAudioEngine.d.ts +5 -0
  8. package/AudioV2/webAudio/webAudioEngine.js +8 -0
  9. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  10. package/AudioV2/webAudio/webAudioStaticSound.js +2 -2
  11. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  12. package/AudioV2/webAudio/webAudioStreamingSound.js +5 -2
  13. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  14. package/Cameras/camera.d.ts +4 -0
  15. package/Cameras/camera.js +18 -9
  16. package/Cameras/camera.js.map +1 -1
  17. package/Engines/abstractEngine.js +2 -2
  18. package/Engines/abstractEngine.js.map +1 -1
  19. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js +1 -1
  20. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js.map +1 -1
  21. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.js +1 -1
  22. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.js.map +1 -1
  23. package/FrameGraph/Node/Blocks/computeShaderBlock.d.ts +42 -0
  24. package/FrameGraph/Node/Blocks/computeShaderBlock.js +74 -0
  25. package/FrameGraph/Node/Blocks/computeShaderBlock.js.map +1 -0
  26. package/FrameGraph/Node/Blocks/executeBlock.d.ts +11 -1
  27. package/FrameGraph/Node/Blocks/executeBlock.js +18 -0
  28. package/FrameGraph/Node/Blocks/executeBlock.js.map +1 -1
  29. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  30. package/FrameGraph/Node/Blocks/index.js +1 -0
  31. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  32. package/FrameGraph/Node/Blocks/inputBlock.js +2 -0
  33. package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -1
  34. package/FrameGraph/Node/Blocks/outputBlock.js +1 -0
  35. package/FrameGraph/Node/Blocks/outputBlock.js.map +1 -1
  36. package/FrameGraph/Node/nodeRenderGraph.d.ts +1 -1
  37. package/FrameGraph/Node/nodeRenderGraph.js +7 -3
  38. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  39. package/FrameGraph/Node/nodeRenderGraphBlock.js +7 -0
  40. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  41. package/FrameGraph/Passes/pass.d.ts +11 -1
  42. package/FrameGraph/Passes/pass.js +11 -1
  43. package/FrameGraph/Passes/pass.js.map +1 -1
  44. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +115 -0
  45. package/FrameGraph/Tasks/Misc/computeShaderTask.js +174 -0
  46. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -0
  47. package/FrameGraph/Tasks/Misc/executeTask.d.ts +5 -0
  48. package/FrameGraph/Tasks/Misc/executeTask.js +3 -0
  49. package/FrameGraph/Tasks/Misc/executeTask.js.map +1 -1
  50. package/FrameGraph/Tasks/PostProcesses/bloomTask.d.ts +1 -1
  51. package/FrameGraph/Tasks/PostProcesses/bloomTask.js +1 -1
  52. package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
  53. package/FrameGraph/Tasks/PostProcesses/ssao2Task.d.ts +1 -0
  54. package/FrameGraph/Tasks/PostProcesses/ssao2Task.js +7 -0
  55. package/FrameGraph/Tasks/PostProcesses/ssao2Task.js.map +1 -1
  56. package/FrameGraph/frameGraph.d.ts +1 -1
  57. package/FrameGraph/frameGraph.js +3 -6
  58. package/FrameGraph/frameGraph.js.map +1 -1
  59. package/FrameGraph/frameGraphTask.d.ts +3 -2
  60. package/FrameGraph/frameGraphTask.js +5 -2
  61. package/FrameGraph/frameGraphTask.js.map +1 -1
  62. package/FrameGraph/frameGraphTextureManager.js +2 -2
  63. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  64. package/FrameGraph/index.d.ts +1 -0
  65. package/FrameGraph/index.js +1 -0
  66. package/FrameGraph/index.js.map +1 -1
  67. package/Lights/directionalLight.js +1 -4
  68. package/Lights/directionalLight.js.map +1 -1
  69. package/Lights/pointLight.js +2 -5
  70. package/Lights/pointLight.js.map +1 -1
  71. package/Materials/Background/backgroundMaterial.js +9 -5
  72. package/Materials/Background/backgroundMaterial.js.map +1 -1
  73. package/Materials/PBR/openpbrMaterial.d.ts +14 -0
  74. package/Materials/PBR/openpbrMaterial.js +16 -0
  75. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  76. package/Materials/clipPlaneMaterialHelper.js +11 -1
  77. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  78. package/Materials/floatingOriginMatrixOverrides.d.ts +4 -1
  79. package/Materials/floatingOriginMatrixOverrides.js +14 -2
  80. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  81. package/Materials/index.d.ts +1 -0
  82. package/Materials/index.js +1 -0
  83. package/Materials/index.js.map +1 -1
  84. package/Maths/math.like.d.ts +7 -2
  85. package/Maths/math.like.js.map +1 -1
  86. package/Maths/math.vector.functions.d.ts +57 -15
  87. package/Maths/math.vector.functions.js +77 -8
  88. package/Maths/math.vector.functions.js.map +1 -1
  89. package/Meshes/mesh.js +1 -1
  90. package/Meshes/mesh.js.map +1 -1
  91. package/Misc/decorators.d.ts +1 -1
  92. package/Misc/decorators.js.map +1 -1
  93. package/Misc/dumpTools.d.ts +20 -0
  94. package/Misc/dumpTools.js +60 -49
  95. package/Misc/dumpTools.js.map +1 -1
  96. package/Misc/index.d.ts +1 -2
  97. package/Misc/index.js +1 -2
  98. package/Misc/index.js.map +1 -1
  99. package/Misc/sceneSerializer.js +4 -1
  100. package/Misc/sceneSerializer.js.map +1 -1
  101. package/Particles/Node/Blocks/Emitters/boxShapeBlock.js +7 -7
  102. package/Particles/Node/Blocks/Emitters/boxShapeBlock.js.map +1 -1
  103. package/Particles/Node/Blocks/Emitters/coneShapeBlock.d.ts +57 -0
  104. package/Particles/Node/Blocks/Emitters/coneShapeBlock.js +163 -0
  105. package/Particles/Node/Blocks/Emitters/coneShapeBlock.js.map +1 -0
  106. package/Particles/Node/Blocks/Emitters/createParticleBlock.d.ts +8 -0
  107. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +25 -2
  108. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  109. package/Particles/Node/Blocks/Emitters/customShapeBlock.js +7 -7
  110. package/Particles/Node/Blocks/Emitters/customShapeBlock.js.map +1 -1
  111. package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js +8 -8
  112. package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js.map +1 -1
  113. package/Particles/Node/Blocks/Emitters/index.d.ts +5 -4
  114. package/Particles/Node/Blocks/Emitters/index.js +5 -4
  115. package/Particles/Node/Blocks/Emitters/index.js.map +1 -1
  116. package/Particles/Node/Blocks/Emitters/meshShapeBlock.js +9 -9
  117. package/Particles/Node/Blocks/Emitters/meshShapeBlock.js.map +1 -1
  118. package/Particles/Node/Blocks/Emitters/pointShapeBlock.js +6 -6
  119. package/Particles/Node/Blocks/Emitters/pointShapeBlock.js.map +1 -1
  120. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js +7 -7
  121. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js.map +1 -1
  122. package/Particles/Node/Blocks/particleInputBlock.js +2 -0
  123. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  124. package/Particles/Node/Blocks/systemBlock.d.ts +36 -0
  125. package/Particles/Node/Blocks/systemBlock.js +84 -0
  126. package/Particles/Node/Blocks/systemBlock.js.map +1 -1
  127. package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +5 -1
  128. package/Particles/Node/Enums/nodeParticleContextualSources.js +4 -0
  129. package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -1
  130. package/Particles/Node/nodeParticleBuildState.d.ts +2 -7
  131. package/Particles/Node/nodeParticleBuildState.js +12 -22
  132. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  133. package/Particles/Node/nodeParticleSystemSet.helper.d.ts +4 -3
  134. package/Particles/Node/nodeParticleSystemSet.helper.js +285 -110
  135. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  136. package/Particles/thinParticleSystem.js +1 -0
  137. package/Particles/thinParticleSystem.js.map +1 -1
  138. package/Physics/physicsRaycastResult.d.ts +3 -0
  139. package/Physics/physicsRaycastResult.js.map +1 -1
  140. package/Physics/v2/Plugins/havokPlugin.js +1 -1
  141. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  142. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -0
  143. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +9 -1
  144. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  145. package/PostProcesses/postProcess.d.ts +4 -0
  146. package/PostProcesses/postProcess.js +4 -0
  147. package/PostProcesses/postProcess.js.map +1 -1
  148. package/PostProcesses/thinSSAO2PostProcess.d.ts +1 -0
  149. package/PostProcesses/thinSSAO2PostProcess.js +18 -6
  150. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  151. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +4 -0
  152. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -1
  153. package/Shaders/ShadersInclude/openpbrDirectLighting.js +5 -2
  154. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  155. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +2 -2
  156. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  157. package/Shaders/ShadersInclude/openpbrFuzzLayerData.js +1 -1
  158. package/Shaders/ShadersInclude/openpbrFuzzLayerData.js.map +1 -1
  159. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  160. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  161. package/Shaders/particles.vertex.js +1 -1
  162. package/Shaders/particles.vertex.js.map +1 -1
  163. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +4 -0
  164. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -1
  165. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +5 -2
  166. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  167. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +2 -2
  168. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  169. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js +1 -1
  170. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js.map +1 -1
  171. package/ShadersWGSL/particles.vertex.js +1 -1
  172. package/ShadersWGSL/particles.vertex.js.map +1 -1
  173. package/package.json +1 -1
  174. package/scene.d.ts +7 -2
  175. package/scene.js +15 -8
  176. package/scene.js.map +1 -1
package/scene.js CHANGED
@@ -362,6 +362,16 @@ export class Scene {
362
362
  static set ExclusiveDoubleClickMode(value) {
363
363
  InputManager.ExclusiveDoubleClickMode = value;
364
364
  }
365
+ /**
366
+ * Gets the current eye position, in order of forcedViewPosition, mirroredCameraPosition, activeCamera world position, ZeroReadonlyVector3
367
+ */
368
+ get _eyePosition() {
369
+ return this._forcedViewPosition
370
+ ? this._forcedViewPosition
371
+ : this._mirroredCameraPosition
372
+ ? this._mirroredCameraPosition
373
+ : (this.activeCamera?.getWorldMatrix().getTranslationToRef(this._tempVect3) ?? Vector3.ZeroReadOnly);
374
+ }
365
375
  /**
366
376
  * Bind the current view position to an effect.
367
377
  * @param effect The effect to be bound
@@ -370,11 +380,7 @@ export class Scene {
370
380
  * @returns the computed eye position
371
381
  */
372
382
  bindEyePosition(effect, variableName = "vEyePosition", isVector3 = false) {
373
- const eyePosition = this._forcedViewPosition
374
- ? this._forcedViewPosition
375
- : this._mirroredCameraPosition
376
- ? this._mirroredCameraPosition
377
- : (this.activeCamera?.globalPosition ?? Vector3.ZeroReadOnly);
383
+ const eyePosition = this._eyePosition;
378
384
  const invertNormal = this.useRightHandedSystem === (this._mirroredCameraPosition != null);
379
385
  const offset = this.floatingOriginOffset;
380
386
  const eyePos = this._tempVect4.set(eyePosition.x, eyePosition.y, eyePosition.z, invertNormal ? -1 : 1);
@@ -685,6 +691,7 @@ export class Scene {
685
691
  */
686
692
  this.autoClearDepthAndStencil = true;
687
693
  this._clearColor = new Color4(0.2, 0.2, 0.3, 1.0);
694
+ this._tempVect3 = new Vector3();
688
695
  this._tempVect4 = new Vector4();
689
696
  /**
690
697
  * Observable triggered when the performance priority is changed
@@ -808,6 +815,7 @@ export class Scene {
808
815
  this.effectLayers = [];
809
816
  /**
810
817
  * The list of sounds used in the scene.
818
+ * @deprecated please use AudioEngineV2 instead
811
819
  */
812
820
  this.sounds = null;
813
821
  /**
@@ -1457,7 +1465,6 @@ export class Scene {
1457
1465
  length: 0,
1458
1466
  };
1459
1467
  this._floatingOriginScene = undefined;
1460
- this._floatingOriginOffsetDefault = Vector3.Zero();
1461
1468
  this._preventFreeActiveMeshesAndRenderingGroups = false;
1462
1469
  /** @internal */
1463
1470
  this._activeMeshesFrozen = false;
@@ -2161,10 +2168,10 @@ export class Scene {
2161
2168
  }
2162
2169
  /**
2163
2170
  * @experimental
2164
- * When floatingOriginMode is enabled, offset is equal to the active camera position in world space. If no active camera or floatingOriginMode is disabled, offset is 0.
2171
+ * When floatingOriginMode is enabled, offset is equal to the eye position. Default to ZeroReadonly when mode is disabled.
2165
2172
  */
2166
2173
  get floatingOriginOffset() {
2167
- return this.floatingOriginMode && this.activeCamera ? this.activeCamera.getWorldMatrix().getTranslation() : this._floatingOriginOffsetDefault;
2174
+ return this.floatingOriginMode ? this._eyePosition : Vector3.ZeroReadOnly;
2168
2175
  }
2169
2176
  /**
2170
2177
  * Gets an unique (relatively to the current scene) Id