@babylonjs/core 8.47.0 → 8.47.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 (161) hide show
  1. package/Behaviors/Cameras/geospatialClippingBehavior.d.ts +39 -0
  2. package/Behaviors/Cameras/geospatialClippingBehavior.js +75 -0
  3. package/Behaviors/Cameras/geospatialClippingBehavior.js.map +1 -0
  4. package/Behaviors/Cameras/index.d.ts +2 -0
  5. package/Behaviors/Cameras/index.js +2 -0
  6. package/Behaviors/Cameras/index.js.map +1 -1
  7. package/Cameras/Inputs/geospatialCameraPointersInput.js +6 -4
  8. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  9. package/Cameras/Limits/geospatialLimits.d.ts +25 -1
  10. package/Cameras/Limits/geospatialLimits.js +60 -3
  11. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  12. package/Cameras/geospatialCamera.d.ts +33 -9
  13. package/Cameras/geospatialCamera.js +114 -42
  14. package/Cameras/geospatialCamera.js.map +1 -1
  15. package/Cameras/geospatialCameraMovement.d.ts +1 -3
  16. package/Cameras/geospatialCameraMovement.js +10 -4
  17. package/Cameras/geospatialCameraMovement.js.map +1 -1
  18. package/Debug/debugLayer.js +11 -3
  19. package/Debug/debugLayer.js.map +1 -1
  20. package/Engines/abstractEngine.js +2 -2
  21. package/Engines/abstractEngine.js.map +1 -1
  22. package/Engines/thinEngine.d.ts +3 -2
  23. package/Engines/thinEngine.js.map +1 -1
  24. package/IAssetContainer.d.ts +5 -0
  25. package/IAssetContainer.js.map +1 -1
  26. package/Lights/Clustered/clusteredLightContainer.js +1 -1
  27. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  28. package/Loading/Plugins/babylonFileLoader.js +2 -0
  29. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  30. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +1 -1
  31. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  32. package/Materials/PBR/openpbrMaterial.d.ts +135 -5
  33. package/Materials/PBR/openpbrMaterial.js +205 -22
  34. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  35. package/Materials/effectRenderer.d.ts +2 -1
  36. package/Materials/effectRenderer.js +2 -12
  37. package/Materials/effectRenderer.js.map +1 -1
  38. package/Materials/materialHelper.functions.js +1 -0
  39. package/Materials/materialHelper.functions.js.map +1 -1
  40. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +6 -1
  41. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +21 -17
  42. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  43. package/Misc/sceneRecorder.d.ts +6 -2
  44. package/Misc/sceneRecorder.js +7 -0
  45. package/Misc/sceneRecorder.js.map +1 -1
  46. package/Particles/Node/Blocks/index.d.ts +3 -0
  47. package/Particles/Node/Blocks/index.js +3 -0
  48. package/Particles/Node/Blocks/index.js.map +1 -1
  49. package/Particles/Node/Blocks/particleNLerpBlock.d.ts +35 -0
  50. package/Particles/Node/Blocks/particleNLerpBlock.js +97 -0
  51. package/Particles/Node/Blocks/particleNLerpBlock.js.map +1 -0
  52. package/Particles/Node/Blocks/particleSmoothStepBlock.d.ts +34 -0
  53. package/Particles/Node/Blocks/particleSmoothStepBlock.js +91 -0
  54. package/Particles/Node/Blocks/particleSmoothStepBlock.js.map +1 -0
  55. package/Particles/Node/Blocks/particleStepBlock.d.ts +30 -0
  56. package/Particles/Node/Blocks/particleStepBlock.js +84 -0
  57. package/Particles/Node/Blocks/particleStepBlock.js.map +1 -0
  58. package/Particles/solidParticleSystem.d.ts +3 -0
  59. package/Particles/solidParticleSystem.js +7 -4
  60. package/Particles/solidParticleSystem.js.map +1 -1
  61. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +8 -10
  62. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  63. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +7 -9
  64. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  65. package/Shaders/ShadersInclude/helperFunctions.js +4 -0
  66. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  67. package/Shaders/ShadersInclude/{openpbrBlockAmbientOcclusion.d.ts → openpbrAmbientOcclusionData.d.ts} +1 -1
  68. package/Shaders/ShadersInclude/openpbrAmbientOcclusionData.js +15 -0
  69. package/Shaders/ShadersInclude/openpbrAmbientOcclusionData.js.map +1 -0
  70. package/{ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts → Shaders/ShadersInclude/openpbrAmbientOcclusionFunctions.d.ts} +1 -1
  71. package/Shaders/ShadersInclude/openpbrAmbientOcclusionFunctions.js +13 -0
  72. package/Shaders/ShadersInclude/openpbrAmbientOcclusionFunctions.js.map +1 -0
  73. package/Shaders/ShadersInclude/openpbrBackgroundTransmission.d.ts +5 -0
  74. package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js +26 -0
  75. package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -0
  76. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +18 -7
  77. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  78. package/Shaders/ShadersInclude/openpbrDirectLighting.js +52 -6
  79. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  80. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +109 -6
  81. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  82. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.d.ts +1 -0
  83. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +24 -4
  84. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -1
  85. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +10 -1
  86. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
  87. package/Shaders/ShadersInclude/openpbrIblFunctions.js +9 -2
  88. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  89. package/Shaders/ShadersInclude/openpbrThinFilmLayerData.js +1 -0
  90. package/Shaders/ShadersInclude/openpbrThinFilmLayerData.js.map +1 -1
  91. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.d.ts +5 -0
  92. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js +47 -0
  93. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -0
  94. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +1 -1
  95. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  96. package/Shaders/ShadersInclude/openpbrVertexDeclaration.d.ts +1 -0
  97. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +17 -4
  98. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -1
  99. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  100. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  101. package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
  102. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  103. package/Shaders/openpbr.fragment.d.ts +4 -1
  104. package/Shaders/openpbr.fragment.js +33 -15
  105. package/Shaders/openpbr.fragment.js.map +1 -1
  106. package/Shaders/openpbr.vertex.js +30 -18
  107. package/Shaders/openpbr.vertex.js.map +1 -1
  108. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +10 -12
  109. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  110. package/ShadersWGSL/ShadersInclude/helperFunctions.js +4 -0
  111. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  112. package/ShadersWGSL/ShadersInclude/importanceSampling.js +1 -1
  113. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  114. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionData.d.ts +5 -0
  115. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionData.js +15 -0
  116. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionData.js.map +1 -0
  117. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionFunctions.d.ts +5 -0
  118. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionFunctions.js +13 -0
  119. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionFunctions.js.map +1 -0
  120. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.d.ts +5 -0
  121. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js +25 -0
  122. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -0
  123. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +18 -7
  124. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  125. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +52 -6
  126. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  127. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +115 -7
  128. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  129. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +10 -1
  130. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
  131. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js +4 -4
  132. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js.map +1 -1
  133. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +10 -3
  134. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  135. package/ShadersWGSL/ShadersInclude/openpbrThinFilmLayerData.js +1 -0
  136. package/ShadersWGSL/ShadersInclude/openpbrThinFilmLayerData.js.map +1 -1
  137. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.d.ts +5 -0
  138. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js +47 -0
  139. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -0
  140. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +1 -1
  141. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  142. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  143. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  144. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +1 -1
  145. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  146. package/ShadersWGSL/openpbr.fragment.d.ts +4 -1
  147. package/ShadersWGSL/openpbr.fragment.js +33 -15
  148. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  149. package/ShadersWGSL/openpbr.vertex.js +12 -0
  150. package/ShadersWGSL/openpbr.vertex.js.map +1 -1
  151. package/Sprites/spriteManager.d.ts +3 -0
  152. package/Sprites/spriteManager.js +9 -0
  153. package/Sprites/spriteManager.js.map +1 -1
  154. package/assetContainer.d.ts +5 -0
  155. package/assetContainer.js +32 -0
  156. package/assetContainer.js.map +1 -1
  157. package/package.json +2 -2
  158. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js +0 -35
  159. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +0 -1
  160. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js +0 -36
  161. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +0 -1
@@ -174,6 +174,7 @@ export declare class SolidParticleSystem implements IDisposable {
174
174
  * * bSphereRadiusFactor (optional float, default 1.0) : a number to multiply the bounding sphere radius by in order to reduce it for instance.
175
175
  * * computeBoundingBox (optional boolean, default false): if the bounding box of the entire SPS will be computed (for occlusion detection, for example). If it is false, the bounding box will be the bounding box of the first particle.
176
176
  * * autoFixFaceOrientation (optional boolean, default false): if the particle face orientations will be flipped for transformations that change orientation (scale (-1, 1, 1), for example)
177
+ * * camera (optional Camera) : the camera to use with the particule system. If not provided, use the scene active camera.
177
178
  * @param options.updatable
178
179
  * @param options.isPickable
179
180
  * @param options.enableDepthSort
@@ -185,6 +186,7 @@ export declare class SolidParticleSystem implements IDisposable {
185
186
  * @param options.enableMultiMaterial
186
187
  * @param options.computeBoundingBox
187
188
  * @param options.autoFixFaceOrientation
189
+ * @param options.camera
188
190
  * @example bSphereRadiusFactor = 1.0 / Math.sqrt(3.0) => the bounding sphere exactly matches a spherical mesh.
189
191
  */
190
192
  constructor(name: string, scene: Scene, options?: {
@@ -199,6 +201,7 @@ export declare class SolidParticleSystem implements IDisposable {
199
201
  enableMultiMaterial?: boolean;
200
202
  computeBoundingBox?: boolean;
201
203
  autoFixFaceOrientation?: boolean;
204
+ camera?: TargetCamera;
202
205
  });
203
206
  /**
204
207
  * Builds the SPS underlying mesh. Returns a standard Mesh.
@@ -37,6 +37,7 @@ export class SolidParticleSystem {
37
37
  * * bSphereRadiusFactor (optional float, default 1.0) : a number to multiply the bounding sphere radius by in order to reduce it for instance.
38
38
  * * computeBoundingBox (optional boolean, default false): if the bounding box of the entire SPS will be computed (for occlusion detection, for example). If it is false, the bounding box will be the bounding box of the first particle.
39
39
  * * autoFixFaceOrientation (optional boolean, default false): if the particle face orientations will be flipped for transformations that change orientation (scale (-1, 1, 1), for example)
40
+ * * camera (optional Camera) : the camera to use with the particule system. If not provided, use the scene active camera.
40
41
  * @param options.updatable
41
42
  * @param options.isPickable
42
43
  * @param options.enableDepthSort
@@ -48,6 +49,7 @@ export class SolidParticleSystem {
48
49
  * @param options.enableMultiMaterial
49
50
  * @param options.computeBoundingBox
50
51
  * @param options.autoFixFaceOrientation
52
+ * @param options.camera
51
53
  * @example bSphereRadiusFactor = 1.0 / Math.sqrt(3.0) => the bounding sphere exactly matches a spherical mesh.
52
54
  */
53
55
  constructor(name, scene, options) {
@@ -130,7 +132,7 @@ export class SolidParticleSystem {
130
132
  this.updateSpeed = 0.01;
131
133
  this.name = name;
132
134
  this._scene = scene || EngineStore.LastCreatedScene;
133
- this._camera = scene.activeCamera;
135
+ this._camera = options && options.camera ? options.camera : scene.activeCamera;
134
136
  this._pickable = options ? options.isPickable : false;
135
137
  this._depthSort = options ? options.enableDepthSort : false;
136
138
  this._multimaterialEnabled = options ? options.enableMultiMaterial : false;
@@ -904,15 +906,16 @@ export class SolidParticleSystem {
904
906
  this.mesh.computeWorldMatrix(true);
905
907
  this.mesh._worldMatrix.invertToRef(invertedMatrix);
906
908
  }
909
+ const camera = this._camera ? this._camera : this._scene.activeCamera ? this._scene.activeCamera : this._scene.cameras[0];
907
910
  // if the particles will always face the camera
908
911
  if (this.billboard) {
909
912
  // compute the camera position and un-rotate it by the current mesh rotation
910
913
  const tmpVector0 = tempVectors[0];
911
- this._camera.getDirectionToRef(Axis.Z, tmpVector0);
914
+ camera.getDirectionToRef(Axis.Z, tmpVector0);
912
915
  Vector3.TransformNormalToRef(tmpVector0, invertedMatrix, camAxisZ);
913
916
  camAxisZ.normalize();
914
917
  // same for camera up vector extracted from the cam view matrix
915
- const view = this._camera.getViewMatrix(true);
918
+ const view = camera.getViewMatrix(true);
916
919
  Vector3.TransformNormalFromFloatsToRef(view.m[1], view.m[5], view.m[9], invertedMatrix, camAxisY);
917
920
  Vector3.CrossToRef(camAxisY, camAxisZ, camAxisX);
918
921
  camAxisY.normalize();
@@ -920,7 +923,7 @@ export class SolidParticleSystem {
920
923
  }
921
924
  // if depthSort, compute the camera global position in the mesh local system
922
925
  if (this._depthSort) {
923
- Vector3.TransformCoordinatesToRef(this._camera.globalPosition, invertedMatrix, camInvertedPosition); // then un-rotate the camera
926
+ Vector3.TransformCoordinatesToRef(camera.globalPosition, invertedMatrix, camInvertedPosition); // then un-rotate the camera
924
927
  }
925
928
  Matrix.IdentityToRef(rotMatrix);
926
929
  let idx = 0; // current position index in the global array positions32