@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
@@ -42,8 +42,8 @@ declare type RenderTargetWrapper = import("./renderTargetWrapper").RenderTargetW
42
42
  * @hidden
43
43
  */
44
44
  export interface ISceneLike {
45
- _addPendingData(data: any): void;
46
- _removePendingData(data: any): void;
45
+ addPendingData(data: any): void;
46
+ removePendingData(data: any): void;
47
47
  offlineProvider: IOfflineProvider;
48
48
  }
49
49
  /**
@@ -126,6 +126,11 @@ export interface EngineOptions extends WebGLContextAttributes {
126
126
  * This will not influence NativeEngine and WebGPUEngine which set the behavior to true during construction.
127
127
  */
128
128
  forceSRGBBufferSupportState?: boolean;
129
+ /**
130
+ * True if the more expensive but exact conversions should be used for transforming colors to and from linear space within shaders.
131
+ * Otherwise, the default is to use a cheaper approximation.
132
+ */
133
+ useExactSrgbConversions?: boolean;
129
134
  }
130
135
  /**
131
136
  * The base engine class (root of all engines)
@@ -463,6 +468,11 @@ export declare class ThinEngine {
463
468
  */
464
469
  get snapshotRenderingMode(): number;
465
470
  set snapshotRenderingMode(mode: number);
471
+ protected _useExactSrgbConversions: boolean;
472
+ /**
473
+ * Gets a boolean indicating if the exact sRGB conversions or faster approximations are used for converting to and from linear space.
474
+ */
475
+ get useExactSrgbConversions(): boolean;
466
476
  /**
467
477
  * Creates a new snapshot at the next frame using the current snapshotRenderingMode
468
478
  */
@@ -698,6 +708,16 @@ export declare class ThinEngine {
698
708
  * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)
699
709
  */
700
710
  setState(culling: boolean, zOffset?: number, force?: boolean, reverseSide?: boolean, cullBackFaces?: boolean, stencil?: IStencilState, zOffsetUnits?: number): void;
711
+ /**
712
+ * Gets a boolean indicating if depth testing is enabled
713
+ * @returns the current state
714
+ */
715
+ getDepthBuffer(): boolean;
716
+ /**
717
+ * Enable or disable depth buffering
718
+ * @param enable defines the state to set
719
+ */
720
+ setDepthBuffer(enable: boolean): void;
701
721
  /**
702
722
  * Set the z offset Factor to apply to current rendering
703
723
  * @param value defines the offset to apply
@@ -183,6 +183,7 @@ var ThinEngine = /** @class */ (function () {
183
183
  /** @hidden */
184
184
  this._isWebGPU = false;
185
185
  this._snapshotRenderingMode = 0;
186
+ this._useExactSrgbConversions = false;
186
187
  this._viewportCached = { x: 0, y: 0, z: 0, w: 0 };
187
188
  this._unpackFlipYCached = null;
188
189
  /**
@@ -239,6 +240,9 @@ var ThinEngine = /** @class */ (function () {
239
240
  if (options.xrCompatible === undefined) {
240
241
  options.xrCompatible = true;
241
242
  }
243
+ if (options.useExactSrgbConversions !== undefined) {
244
+ this._useExactSrgbConversions = options.useExactSrgbConversions;
245
+ }
242
246
  this._doNotHandleContextLost = options.doNotHandleContextLost ? true : false;
243
247
  // Exceptions
244
248
  if (navigator && navigator.userAgent) {
@@ -405,7 +409,7 @@ var ThinEngine = /** @class */ (function () {
405
409
  */
406
410
  // Not mixed with Version for tooling purpose.
407
411
  get: function () {
408
- return "babylonjs@5.15.0";
412
+ return "babylonjs@5.17.0";
409
413
  },
410
414
  enumerable: false,
411
415
  configurable: true
@@ -415,7 +419,7 @@ var ThinEngine = /** @class */ (function () {
415
419
  * Returns the current version of the framework
416
420
  */
417
421
  get: function () {
418
- return "5.15.0";
422
+ return "5.17.0";
419
423
  },
420
424
  enumerable: false,
421
425
  configurable: true
@@ -702,6 +706,16 @@ var ThinEngine = /** @class */ (function () {
702
706
  enumerable: false,
703
707
  configurable: true
704
708
  });
709
+ Object.defineProperty(ThinEngine.prototype, "useExactSrgbConversions", {
710
+ /**
711
+ * Gets a boolean indicating if the exact sRGB conversions or faster approximations are used for converting to and from linear space.
712
+ */
713
+ get: function () {
714
+ return this._useExactSrgbConversions;
715
+ },
716
+ enumerable: false,
717
+ configurable: true
718
+ });
705
719
  /**
706
720
  * Creates a new snapshot at the next frame using the current snapshotRenderingMode
707
721
  */
@@ -1537,6 +1551,20 @@ var ThinEngine = /** @class */ (function () {
1537
1551
  }
1538
1552
  this._stencilStateComposer.stencilMaterial = stencil;
1539
1553
  };
1554
+ /**
1555
+ * Gets a boolean indicating if depth testing is enabled
1556
+ * @returns the current state
1557
+ */
1558
+ ThinEngine.prototype.getDepthBuffer = function () {
1559
+ return this._depthCullingState.depthTest;
1560
+ };
1561
+ /**
1562
+ * Enable or disable depth buffering
1563
+ * @param enable defines the state to set
1564
+ */
1565
+ ThinEngine.prototype.setDepthBuffer = function (enable) {
1566
+ this._depthCullingState.depthTest = enable;
1567
+ };
1540
1568
  /**
1541
1569
  * Set the z offset Factor to apply to current rendering
1542
1570
  * @param value defines the offset to apply
@@ -2240,6 +2268,12 @@ var ThinEngine = /** @class */ (function () {
2240
2268
  else {
2241
2269
  delete defines["USE_REVERSE_DEPTHBUFFER"];
2242
2270
  }
2271
+ if (this.useExactSrgbConversions) {
2272
+ defines["USE_EXACT_SRGB_CONVERSIONS"] = "";
2273
+ }
2274
+ else {
2275
+ delete defines["USE_EXACT_SRGB_CONVERSIONS"];
2276
+ }
2243
2277
  return;
2244
2278
  }
2245
2279
  else {
@@ -2253,6 +2287,12 @@ var ThinEngine = /** @class */ (function () {
2253
2287
  }
2254
2288
  s += "#define USE_REVERSE_DEPTHBUFFER";
2255
2289
  }
2290
+ if (this.useExactSrgbConversions) {
2291
+ if (s) {
2292
+ s += "\n";
2293
+ }
2294
+ s += "#define USE_EXACT_SRGB_CONVERSIONS";
2295
+ }
2256
2296
  return s;
2257
2297
  }
2258
2298
  };
@@ -2910,7 +2950,7 @@ var ThinEngine = /** @class */ (function () {
2910
2950
  * This can help preventing texture load conflict due to name collision.
2911
2951
  */
2912
2952
  ThinEngine.prototype.clearInternalTexturesCache = function () {
2913
- this._internalTexturesCache = [];
2953
+ this._internalTexturesCache.length = 0;
2914
2954
  };
2915
2955
  /**
2916
2956
  * Force the entire cache to be cleared
@@ -3196,7 +3236,7 @@ var ThinEngine = /** @class */ (function () {
3196
3236
  }
3197
3237
  }
3198
3238
  if (scene) {
3199
- scene._addPendingData(texture);
3239
+ scene.addPendingData(texture);
3200
3240
  }
3201
3241
  texture.url = url;
3202
3242
  texture.generateMipMaps = !noMipmap;
@@ -3216,7 +3256,7 @@ var ThinEngine = /** @class */ (function () {
3216
3256
  }
3217
3257
  var onInternalError = function (message, exception) {
3218
3258
  if (scene) {
3219
- scene._removePendingData(texture);
3259
+ scene.removePendingData(texture);
3220
3260
  }
3221
3261
  if (url === originalUrl) {
3222
3262
  if (onLoadObserver) {
@@ -3773,7 +3813,7 @@ var ThinEngine = /** @class */ (function () {
3773
3813
  this._bindTextureDirectly(gl.TEXTURE_2D, null);
3774
3814
  // this.resetTextureCache();
3775
3815
  if (scene) {
3776
- scene._removePendingData(texture);
3816
+ scene.removePendingData(texture);
3777
3817
  }
3778
3818
  texture.onLoadedObservable.notifyObservers(texture);
3779
3819
  texture.onLoadedObservable.clear();
@@ -3791,7 +3831,7 @@ var ThinEngine = /** @class */ (function () {
3791
3831
  if (!texture._hardwareTexture) {
3792
3832
  // this.resetTextureCache();
3793
3833
  if (scene) {
3794
- scene._removePendingData(texture);
3834
+ scene.removePendingData(texture);
3795
3835
  }
3796
3836
  return;
3797
3837
  }
@@ -4241,7 +4281,7 @@ var ThinEngine = /** @class */ (function () {
4241
4281
  (_a = this.releaseComputeEffects) === null || _a === void 0 ? void 0 : _a.call(this);
4242
4282
  // Unbind
4243
4283
  this.unbindAllAttributes();
4244
- this._boundUniforms = [];
4284
+ this._boundUniforms = {};
4245
4285
  // Events
4246
4286
  if (IsWindowObjectExist()) {
4247
4287
  if (this._renderingCanvas) {
@@ -4254,7 +4294,7 @@ var ThinEngine = /** @class */ (function () {
4254
4294
  }
4255
4295
  this._workingCanvas = null;
4256
4296
  this._workingContext = null;
4257
- this._currentBufferPointers = [];
4297
+ this._currentBufferPointers.length = 0;
4258
4298
  this._renderingCanvas = null;
4259
4299
  this._currentProgram = null;
4260
4300
  this._boundRenderFunction = null;