@babylonjs/core 5.15.0 → 5.17.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 (163) hide show
  1. package/Animations/animatable.js +1 -1
  2. package/Animations/animatable.js.map +1 -1
  3. package/Animations/animation.d.ts +8 -1
  4. package/Animations/animation.js +8 -1
  5. package/Animations/animation.js.map +1 -1
  6. package/Animations/animationGroup.js +5 -4
  7. package/Animations/animationGroup.js.map +1 -1
  8. package/Audio/sound.js +2 -2
  9. package/Audio/sound.js.map +1 -1
  10. package/Bones/skeleton.js +1 -1
  11. package/Bones/skeleton.js.map +1 -1
  12. package/Cameras/Inputs/BaseCameraMouseWheelInput.d.ts +1 -1
  13. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +8 -2
  14. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  15. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +2 -2
  16. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  17. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.d.ts +0 -1
  18. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +7 -2
  19. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  20. package/Cameras/Inputs/flyCameraKeyboardInput.js +3 -3
  21. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  22. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +2 -2
  23. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  24. package/Cameras/Inputs/followCameraMouseWheelInput.d.ts +0 -1
  25. package/Cameras/Inputs/followCameraMouseWheelInput.js +7 -2
  26. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  27. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +3 -3
  28. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  29. package/Cameras/Inputs/freeCameraTouchInput.js +1 -1
  30. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  31. package/Cameras/VR/vrExperienceHelper.js +1 -1
  32. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  33. package/Cameras/VR/webVRCamera.js +1 -1
  34. package/Cameras/VR/webVRCamera.js.map +1 -1
  35. package/Cameras/arcRotateCamera.js +3 -2
  36. package/Cameras/arcRotateCamera.js.map +1 -1
  37. package/Cameras/camera.js +18 -3
  38. package/Cameras/camera.js.map +1 -1
  39. package/DeviceInput/InputDevices/webDeviceInputSystem.js +1 -1
  40. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
  41. package/Engines/Extensions/engine.cubeTexture.js +3 -3
  42. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  43. package/Engines/Extensions/engine.rawTexture.js +3 -3
  44. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  45. package/Engines/Native/nativeInterfaces.d.ts +1 -0
  46. package/Engines/Native/nativeInterfaces.js.map +1 -1
  47. package/Engines/Processors/shaderCodeCursor.js +2 -1
  48. package/Engines/Processors/shaderCodeCursor.js.map +1 -1
  49. package/Engines/WebGPU/Extensions/engine.rawTexture.js +3 -3
  50. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  51. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  52. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  53. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +6 -6
  54. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  55. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +4 -4
  56. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  57. package/Engines/engine.d.ts +0 -10
  58. package/Engines/engine.js +0 -14
  59. package/Engines/engine.js.map +1 -1
  60. package/Engines/nativeEngine.d.ts +7 -2
  61. package/Engines/nativeEngine.js +30 -10
  62. package/Engines/nativeEngine.js.map +1 -1
  63. package/Engines/thinEngine.d.ts +22 -2
  64. package/Engines/thinEngine.js +49 -9
  65. package/Engines/thinEngine.js.map +1 -1
  66. package/Engines/webgpuEngine.js +1 -1
  67. package/Engines/webgpuEngine.js.map +1 -1
  68. package/Gizmos/boundingBoxGizmo.d.ts +4 -0
  69. package/Gizmos/boundingBoxGizmo.js +6 -0
  70. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  71. package/Inputs/scene.inputManager.js +5 -4
  72. package/Inputs/scene.inputManager.js.map +1 -1
  73. package/Loading/sceneLoader.js +12 -12
  74. package/Loading/sceneLoader.js.map +1 -1
  75. package/Materials/Node/Blocks/Fragment/TBNBlock.d.ts +12 -0
  76. package/Materials/Node/Blocks/Fragment/TBNBlock.js +50 -0
  77. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  78. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +2 -1
  79. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  80. package/Materials/Node/Blocks/gradientBlock.js +1 -1
  81. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  82. package/Materials/Node/nodeMaterial.d.ts +10 -1
  83. package/Materials/Node/nodeMaterial.js +43 -26
  84. package/Materials/Node/nodeMaterial.js.map +1 -1
  85. package/Materials/PBR/pbrBaseMaterial.js +4 -4
  86. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  87. package/Materials/Textures/baseTexture.d.ts +1 -1
  88. package/Materials/Textures/baseTexture.js +2 -2
  89. package/Materials/Textures/baseTexture.js.map +1 -1
  90. package/Materials/Textures/prePassRenderTarget.js +1 -1
  91. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  92. package/Materials/Textures/renderTargetTexture.js +11 -3
  93. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  94. package/Materials/Textures/videoTexture.js +4 -1
  95. package/Materials/Textures/videoTexture.js.map +1 -1
  96. package/Materials/imageProcessingConfiguration.js.map +1 -1
  97. package/Materials/materialDefines.js +3 -1
  98. package/Materials/materialDefines.js.map +1 -1
  99. package/Materials/materialHelper.d.ts +1 -1
  100. package/Materials/materialHelper.js +6 -6
  101. package/Materials/materialHelper.js.map +1 -1
  102. package/Materials/shaderMaterial.d.ts +10 -1
  103. package/Materials/shaderMaterial.js +10 -1
  104. package/Materials/shaderMaterial.js.map +1 -1
  105. package/Maths/math.color.d.ts +9 -1
  106. package/Maths/math.color.js +13 -1
  107. package/Maths/math.color.js.map +1 -1
  108. package/Meshes/Builders/icoSphereBuilder.js +2 -2
  109. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  110. package/Meshes/abstractMesh.js +1 -1
  111. package/Meshes/abstractMesh.js.map +1 -1
  112. package/Meshes/geometry.js +3 -4
  113. package/Meshes/geometry.js.map +1 -1
  114. package/Meshes/mesh.d.ts +1 -1
  115. package/Meshes/mesh.js +8 -7
  116. package/Meshes/mesh.js.map +1 -1
  117. package/Meshes/thinInstanceMesh.js +5 -0
  118. package/Meshes/thinInstanceMesh.js.map +1 -1
  119. package/Meshes/transformNode.d.ts +2 -2
  120. package/Meshes/transformNode.js +1 -1
  121. package/Meshes/transformNode.js.map +1 -1
  122. package/Misc/smartArray.js +0 -1
  123. package/Misc/smartArray.js.map +1 -1
  124. package/Particles/computeShaderParticleSystem.js +2 -2
  125. package/Particles/computeShaderParticleSystem.js.map +1 -1
  126. package/Particles/particleHelper.d.ts +12 -1
  127. package/Particles/particleHelper.js +16 -5
  128. package/Particles/particleHelper.js.map +1 -1
  129. package/Particles/particleSystem.js +2 -2
  130. package/Particles/particleSystem.js.map +1 -1
  131. package/Particles/particleSystemSet.js +1 -1
  132. package/Particles/particleSystemSet.js.map +1 -1
  133. package/Particles/solidParticleSystem.d.ts +3 -0
  134. package/Particles/solidParticleSystem.js +3 -0
  135. package/Particles/solidParticleSystem.js.map +1 -1
  136. package/Particles/webgl2ParticleSystem.js +2 -2
  137. package/Particles/webgl2ParticleSystem.js.map +1 -1
  138. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  139. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  140. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +3 -3
  141. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  142. package/Rendering/geometryBufferRenderer.js +3 -2
  143. package/Rendering/geometryBufferRenderer.js.map +1 -1
  144. package/Rendering/utilityLayerRenderer.js +1 -1
  145. package/Rendering/utilityLayerRenderer.js.map +1 -1
  146. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  147. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  148. package/Shaders/geometry.fragment.js +1 -1
  149. package/Shaders/geometry.fragment.js.map +1 -1
  150. package/Sprites/spriteManager.d.ts +10 -1
  151. package/Sprites/spriteManager.js +10 -1
  152. package/Sprites/spriteManager.js.map +1 -1
  153. package/XR/features/WebXRLayers.js +1 -1
  154. package/XR/features/WebXRLayers.js.map +1 -1
  155. package/assetContainer.d.ts +1 -1
  156. package/assetContainer.js +23 -23
  157. package/assetContainer.js.map +1 -1
  158. package/node.js +1 -1
  159. package/node.js.map +1 -1
  160. package/package.json +1 -1
  161. package/scene.d.ts +8 -6
  162. package/scene.js +23 -14
  163. package/scene.js.map +1 -1
package/scene.js CHANGED
@@ -140,6 +140,7 @@ var Scene = /** @class */ (function (_super) {
140
140
  _this.onAfterRenderObservable = new Observable();
141
141
  /**
142
142
  * An event triggered after rendering the scene for an active camera (When scene.render is called this will be called after each camera)
143
+ * This is triggered for each "sub" camera in a Camera Rig unlike onAfterCameraRenderObservable
143
144
  */
144
145
  _this.onAfterRenderCameraObservable = new Observable();
145
146
  _this._onAfterRenderObserver = null;
@@ -170,6 +171,7 @@ var Scene = /** @class */ (function (_super) {
170
171
  _this._onBeforeCameraRenderObserver = null;
171
172
  /**
172
173
  * An event triggered after rendering a camera
174
+ * This is triggered for the full rig Camera only unlike onAfterRenderCameraObservable
173
175
  */
174
176
  _this.onAfterCameraRenderObservable = new Observable();
175
177
  _this._onAfterCameraRenderObserver = null;
@@ -1206,7 +1208,7 @@ var Scene = /** @class */ (function (_super) {
1206
1208
  var component = _a[_i];
1207
1209
  component.register();
1208
1210
  }
1209
- this._transientComponents = [];
1211
+ this._transientComponents.length = 0;
1210
1212
  }
1211
1213
  };
1212
1214
  /**
@@ -1543,6 +1545,8 @@ var Scene = /** @class */ (function (_super) {
1543
1545
  if (!mesh.subMeshes || mesh.subMeshes.length === 0) {
1544
1546
  continue;
1545
1547
  }
1548
+ // Do not stop at the first encountered "unready" object as we want to ensure
1549
+ // all materials are starting off their compilation in parallel.
1546
1550
  if (!mesh.isReady(true)) {
1547
1551
  isReady = false;
1548
1552
  continue;
@@ -1694,17 +1698,17 @@ var Scene = /** @class */ (function (_super) {
1694
1698
  }
1695
1699
  };
1696
1700
  /**
1697
- * @param data
1698
- * @hidden
1701
+ * This function can help adding any object to the list of data awaited to be ready in order to check for a complete scene loading.
1702
+ * @param data defines the object to wait for
1699
1703
  */
1700
- Scene.prototype._addPendingData = function (data) {
1704
+ Scene.prototype.addPendingData = function (data) {
1701
1705
  this._pendingData.push(data);
1702
1706
  };
1703
1707
  /**
1704
- * @param data
1705
- * @hidden
1708
+ * Remove a pending data from the loading list which has previously been added with addPendingData.
1709
+ * @param data defines the object to remove from the pending list
1706
1710
  */
1707
- Scene.prototype._removePendingData = function (data) {
1711
+ Scene.prototype.removePendingData = function (data) {
1708
1712
  var wasLoading = this.isLoading;
1709
1713
  var index = this._pendingData.indexOf(data);
1710
1714
  if (index !== -1) {
@@ -3401,7 +3405,9 @@ var Scene = /** @class */ (function (_super) {
3401
3405
  rtt.onClearObservable.notifyObservers(this._engine);
3402
3406
  }
3403
3407
  else if (!rtt.skipInitialClear) {
3404
- this._engine.clear(rtt.clearColor || this.clearColor, !rtt._cleared, true, true);
3408
+ if (this.autoClear) {
3409
+ this._engine.clear(rtt.clearColor || this.clearColor, !rtt._cleared, true, true);
3410
+ }
3405
3411
  rtt._cleared = true;
3406
3412
  }
3407
3413
  }
@@ -3802,6 +3808,8 @@ var Scene = /** @class */ (function (_super) {
3802
3808
  step.action(this._renderTargets);
3803
3809
  }
3804
3810
  // Multi-cameras?
3811
+ // save current active camera, following calls will change it, discarding user settings
3812
+ var activeCamera = this._activeCamera;
3805
3813
  if (this.activeCameras && this.activeCameras.length > 0) {
3806
3814
  for (var cameraIndex = 0; cameraIndex < this.activeCameras.length; cameraIndex++) {
3807
3815
  this._processSubCameras(this.activeCameras[cameraIndex], cameraIndex > 0);
@@ -3813,6 +3821,7 @@ var Scene = /** @class */ (function (_super) {
3813
3821
  }
3814
3822
  this._processSubCameras(this.activeCamera, !!this.activeCamera.outputRenderTarget);
3815
3823
  }
3824
+ this._activeCamera = activeCamera;
3816
3825
  // Intersection checks
3817
3826
  this._checkIntersections();
3818
3827
  // Executes the after render stage actions.
@@ -3833,7 +3842,7 @@ var Scene = /** @class */ (function (_super) {
3833
3842
  data.dispose();
3834
3843
  }
3835
3844
  }
3836
- this._toBeDisposed = [];
3845
+ this._toBeDisposed.length = 0;
3837
3846
  }
3838
3847
  if (this.dumpNextRenderTargets) {
3839
3848
  this.dumpNextRenderTargets = false;
@@ -3872,9 +3881,9 @@ var Scene = /** @class */ (function (_super) {
3872
3881
  this.beforeRender = null;
3873
3882
  this.afterRender = null;
3874
3883
  this.metadata = null;
3875
- this.skeletons = [];
3876
- this.morphTargetManagers = [];
3877
- this._transientComponents = [];
3884
+ this.skeletons.length = 0;
3885
+ this.morphTargetManagers.length = 0;
3886
+ this._transientComponents.length = 0;
3878
3887
  this._isReadyForMeshStage.clear();
3879
3888
  this._beforeEvaluateActiveMeshStage.clear();
3880
3889
  this._evaluateSubMeshStage.clear();
@@ -3916,14 +3925,14 @@ var Scene = /** @class */ (function (_super) {
3916
3925
  this._materialsRenderTargets.dispose();
3917
3926
  this._registeredForLateAnimationBindings.dispose();
3918
3927
  this._meshesForIntersections.dispose();
3919
- this._toBeDisposed = [];
3928
+ this._toBeDisposed.length = 0;
3920
3929
  // Abort active requests
3921
3930
  var activeRequests = this._activeRequests.slice();
3922
3931
  for (var _i = 0, activeRequests_1 = activeRequests; _i < activeRequests_1.length; _i++) {
3923
3932
  var request = activeRequests_1[_i];
3924
3933
  request.abort();
3925
3934
  }
3926
- this._activeRequests = [];
3935
+ this._activeRequests.length = 0;
3927
3936
  // Events
3928
3937
  this.onDisposeObservable.notifyObservers(this);
3929
3938
  this.onDisposeObservable.clear();