@babylonjs/core 7.0.0 → 7.2.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 (182) hide show
  1. package/Animations/animationGroup.d.ts +1 -1
  2. package/Animations/animationGroup.js +1 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/runtimeAnimation.js +10 -3
  5. package/Animations/runtimeAnimation.js.map +1 -1
  6. package/Compute/computeEffect.d.ts +3 -4
  7. package/Compute/computeEffect.js +40 -33
  8. package/Compute/computeEffect.js.map +1 -1
  9. package/Compute/computeShader.d.ts +2 -2
  10. package/Compute/computeShader.js.map +1 -1
  11. package/Engines/Extensions/engine.computeShader.d.ts +27 -3
  12. package/Engines/Extensions/engine.computeShader.js +1 -1
  13. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  14. package/Engines/Extensions/engine.multiRender.js +1 -1
  15. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  16. package/Engines/Extensions/engine.renderTarget.js +12 -2
  17. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  18. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +1 -2
  19. package/Engines/WebGL/webGLRenderTargetWrapper.js +2 -3
  20. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  21. package/Engines/WebGPU/Extensions/engine.computeShader.js +22 -0
  22. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  23. package/Engines/WebGPU/Extensions/engine.multiRender.js +1 -1
  24. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  25. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -1
  26. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  27. package/Engines/WebGPU/webgpuClearQuad.d.ts +2 -2
  28. package/Engines/WebGPU/webgpuClearQuad.js +8 -3
  29. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  30. package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -2
  31. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  32. package/Engines/WebGPU/webgpuHardwareTexture.js +1 -0
  33. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  34. package/Engines/WebGPU/webgpuShaderProcessor.js +15 -0
  35. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  36. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -0
  37. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +10 -2
  38. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  39. package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -1
  40. package/Engines/WebGPU/webgpuTextureManager.js +7 -7
  41. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  42. package/Engines/nativeEngine.d.ts +1 -0
  43. package/Engines/nativeEngine.js.map +1 -1
  44. package/Engines/nullEngine.d.ts +1 -0
  45. package/Engines/nullEngine.js.map +1 -1
  46. package/Engines/renderTargetWrapper.d.ts +14 -2
  47. package/Engines/renderTargetWrapper.js +23 -3
  48. package/Engines/renderTargetWrapper.js.map +1 -1
  49. package/Engines/thinEngine.d.ts +3 -7
  50. package/Engines/thinEngine.js +23 -9
  51. package/Engines/thinEngine.js.map +1 -1
  52. package/Engines/webgpuEngine.d.ts +2 -2
  53. package/Engines/webgpuEngine.js +19 -9
  54. package/Engines/webgpuEngine.js.map +1 -1
  55. package/Gizmos/axisScaleGizmo.js +6 -1
  56. package/Gizmos/axisScaleGizmo.js.map +1 -1
  57. package/Gizmos/boundingBoxGizmo.d.ts +2 -2
  58. package/Gizmos/boundingBoxGizmo.js +27 -17
  59. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  60. package/Gizmos/scaleGizmo.d.ts +6 -0
  61. package/Gizmos/scaleGizmo.js +10 -2
  62. package/Gizmos/scaleGizmo.js.map +1 -1
  63. package/Lights/Shadows/cascadedShadowGenerator.js +1 -1
  64. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  65. package/Lights/Shadows/shadowGenerator.js +17 -2
  66. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  67. package/Materials/Node/Blocks/Dual/textureBlock.js +5 -0
  68. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  69. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +2 -0
  70. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  71. package/Materials/Node/Blocks/addBlock.d.ts +2 -15
  72. package/Materials/Node/Blocks/addBlock.js +4 -32
  73. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  74. package/Materials/Node/Blocks/baseMathBlock.d.ts +26 -0
  75. package/Materials/Node/Blocks/baseMathBlock.js +84 -0
  76. package/Materials/Node/Blocks/baseMathBlock.js.map +1 -0
  77. package/Materials/Node/Blocks/divideBlock.d.ts +2 -15
  78. package/Materials/Node/Blocks/divideBlock.js +4 -32
  79. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  80. package/Materials/Node/Blocks/multiplyBlock.d.ts +2 -15
  81. package/Materials/Node/Blocks/multiplyBlock.js +4 -32
  82. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  83. package/Materials/Node/Blocks/subtractBlock.d.ts +2 -15
  84. package/Materials/Node/Blocks/subtractBlock.js +4 -32
  85. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  86. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +4 -0
  87. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -0
  88. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  89. package/Materials/PBR/pbrBaseMaterial.js +1 -5
  90. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  91. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +0 -1
  92. package/Materials/PBR/pbrClearCoatConfiguration.js +3 -12
  93. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  94. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +1 -4
  95. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -15
  96. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  97. package/Materials/PBR/pbrSheenConfiguration.d.ts +0 -1
  98. package/Materials/PBR/pbrSheenConfiguration.js +3 -12
  99. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  100. package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -17
  101. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  102. package/Materials/Textures/baseTexture.d.ts +0 -6
  103. package/Materials/Textures/baseTexture.js +0 -8
  104. package/Materials/Textures/baseTexture.js.map +1 -1
  105. package/Materials/Textures/renderTargetTexture.d.ts +8 -24
  106. package/Materials/Textures/renderTargetTexture.js +13 -8
  107. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  108. package/Materials/Textures/texture.d.ts +5 -8
  109. package/Materials/Textures/texture.js +10 -20
  110. package/Materials/Textures/texture.js.map +1 -1
  111. package/Materials/Textures/textureCreationOptions.d.ts +1 -0
  112. package/Materials/Textures/textureCreationOptions.js.map +1 -1
  113. package/Materials/Textures/thinTexture.js +1 -1
  114. package/Materials/Textures/thinTexture.js.map +1 -1
  115. package/Materials/effect.d.ts +3 -3
  116. package/Materials/effect.js.map +1 -1
  117. package/Materials/shaderMaterial.d.ts +3 -3
  118. package/Materials/shaderMaterial.js.map +1 -1
  119. package/Maths/math.vector.d.ts +12 -0
  120. package/Maths/math.vector.js +17 -2
  121. package/Maths/math.vector.js.map +1 -1
  122. package/Maths/tensor.d.ts +13 -11
  123. package/Maths/tensor.js.map +1 -1
  124. package/Meshes/Builders/greasedLineBuilder.js +14 -0
  125. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  126. package/Meshes/Builders/ribbonBuilder.js +32 -28
  127. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  128. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +18 -6
  129. package/Meshes/GreasedLine/greasedLineBaseMesh.js +17 -1
  130. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  131. package/Meshes/GreasedLine/greasedLineMesh.d.ts +0 -2
  132. package/Meshes/GreasedLine/greasedLineMesh.js +84 -77
  133. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  134. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +19 -4
  135. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  136. package/Meshes/Node/Blocks/mathBlock.d.ts +6 -0
  137. package/Meshes/Node/Blocks/mathBlock.js +95 -23
  138. package/Meshes/Node/Blocks/mathBlock.js.map +1 -1
  139. package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +4 -0
  140. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +7 -0
  141. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  142. package/Misc/greasedLineTools.d.ts +6 -0
  143. package/Misc/greasedLineTools.js +21 -0
  144. package/Misc/greasedLineTools.js.map +1 -1
  145. package/Rendering/depthPeelingRenderer.js +1 -1
  146. package/Rendering/depthPeelingRenderer.js.map +1 -1
  147. package/Rendering/fluidRenderer/fluidRenderer.js +1 -1
  148. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  149. package/Rendering/reflectiveShadowMap.js +1 -1
  150. package/Rendering/reflectiveShadowMap.js.map +1 -1
  151. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +0 -4
  152. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  153. package/Shaders/ShadersInclude/pbrBlockIridescence.js +0 -3
  154. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  155. package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -5
  156. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  157. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  158. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  159. package/Shaders/ShadersInclude/pbrDebug.js +2 -0
  160. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  161. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -2
  162. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  163. package/Shaders/greasedLine.vertex.js +3 -3
  164. package/Shaders/greasedLine.vertex.js.map +1 -1
  165. package/Shaders/pbr.fragment.js +4 -4
  166. package/Shaders/pbr.fragment.js.map +1 -1
  167. package/ShadersWGSL/clearQuad.fragment.js +11 -0
  168. package/ShadersWGSL/clearQuad.fragment.js.map +1 -0
  169. package/ShadersWGSL/clearQuad.vertex.js +22 -0
  170. package/ShadersWGSL/clearQuad.vertex.js.map +1 -0
  171. package/XR/features/WebXRHandTracking.d.ts +5 -0
  172. package/XR/features/WebXRHandTracking.js +6 -0
  173. package/XR/features/WebXRHandTracking.js.map +1 -1
  174. package/node.js +1 -6
  175. package/node.js.map +1 -1
  176. package/package.json +1 -1
  177. package/Shaders/clearQuad.fragment.js +0 -10
  178. package/Shaders/clearQuad.fragment.js.map +0 -1
  179. package/Shaders/clearQuad.vertex.js +0 -19
  180. package/Shaders/clearQuad.vertex.js.map +0 -1
  181. /package/{Shaders → ShadersWGSL}/clearQuad.fragment.d.ts +0 -0
  182. /package/{Shaders → ShadersWGSL}/clearQuad.vertex.d.ts +0 -0
@@ -546,10 +546,10 @@ export declare class WebGPUEngine extends Engine {
546
546
  * @param shaderLanguage the language the shader is written in (default: GLSL)
547
547
  * @returns the new Effect
548
548
  */
549
- createEffect(baseName: IShaderPath & {
549
+ createEffect(baseName: string | (IShaderPath & {
550
550
  vertexToken?: string;
551
551
  fragmentToken?: string;
552
- }, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any, shaderLanguage?: ShaderLanguage): Effect;
552
+ }), attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any, shaderLanguage?: ShaderLanguage): Effect;
553
553
  private _compileRawShaderToSpirV;
554
554
  private _compileShaderToSpirV;
555
555
  private _getWGSLShader;
@@ -1668,12 +1668,13 @@ export class WebGPUEngine extends Engine {
1668
1668
  const texture = new InternalTexture(this, source);
1669
1669
  const width = size.width || size;
1670
1670
  const height = size.height || size;
1671
+ const depth = size.depth || 0;
1671
1672
  const layers = size.layers || 0;
1672
1673
  texture.baseWidth = width;
1673
1674
  texture.baseHeight = height;
1674
1675
  texture.width = width;
1675
1676
  texture.height = height;
1676
- texture.depth = layers;
1677
+ texture.depth = depth || layers;
1677
1678
  texture.isReady = true;
1678
1679
  texture.samples = fullOptions.samples;
1679
1680
  texture.generateMipMaps = fullOptions.generateMipMaps ? true : false;
@@ -1681,6 +1682,7 @@ export class WebGPUEngine extends Engine {
1681
1682
  texture.type = fullOptions.type;
1682
1683
  texture.format = fullOptions.format;
1683
1684
  texture.is2DArray = layers > 0;
1685
+ texture.is3D = depth > 0;
1684
1686
  texture._cachedWrapU = 0;
1685
1687
  texture._cachedWrapV = 0;
1686
1688
  texture._useSRGBBuffer = fullOptions.useSRGBBuffer;
@@ -1994,7 +1996,7 @@ export class WebGPUEngine extends Engine {
1994
1996
  this._textureHelper.generateCubeMipmaps(gpuHardwareTexture, format, mipmapCount, commandEncoder);
1995
1997
  }
1996
1998
  else {
1997
- this._textureHelper.generateMipmaps(gpuHardwareTexture, format, mipmapCount, 0, commandEncoder);
1999
+ this._textureHelper.generateMipmaps(gpuHardwareTexture, format, mipmapCount, 0, texture.is3D, commandEncoder);
1998
2000
  }
1999
2001
  }
2000
2002
  /**
@@ -2223,11 +2225,13 @@ export class WebGPUEngine extends Engine {
2223
2225
  const faceIndex = rtWrapper.faceIndices?.[i] ?? 0;
2224
2226
  const viewDescriptor = {
2225
2227
  ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
2228
+ dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2226
2229
  format: gpuMRTWrapper.format,
2227
- baseArrayLayer: mrtTexture.isCube ? layerIndex * 6 + faceIndex : layerIndex,
2230
+ baseArrayLayer: mrtTexture.isCube ? layerIndex * 6 + faceIndex : mrtTexture.is3D ? 0 : layerIndex,
2228
2231
  };
2229
2232
  const msaaViewDescriptor = {
2230
2233
  ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
2234
+ dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2231
2235
  format: gpuMRTWrapper.format,
2232
2236
  baseArrayLayer: 0,
2233
2237
  };
@@ -2237,6 +2241,7 @@ export class WebGPUEngine extends Engine {
2237
2241
  colorAttachments.push({
2238
2242
  view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
2239
2243
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
2244
+ depthSlice: mrtTexture.is3D ? layerIndex : undefined,
2240
2245
  clearValue: index !== 0 && mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
2241
2246
  loadOp: index !== 0 && mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load,
2242
2247
  storeOp: WebGPUConstants.StoreOp.Store,
@@ -2252,6 +2257,11 @@ export class WebGPUEngine extends Engine {
2252
2257
  if (internalTexture) {
2253
2258
  const gpuWrapper = internalTexture._hardwareTexture;
2254
2259
  const gpuTexture = gpuWrapper.underlyingResource;
2260
+ let depthSlice = undefined;
2261
+ if (rtWrapper.is3D) {
2262
+ depthSlice = this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer;
2263
+ this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer = 0;
2264
+ }
2255
2265
  const gpuMSAATexture = gpuWrapper.getMSAATexture();
2256
2266
  const colorTextureView = gpuTexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
2257
2267
  const colorMSAATextureView = gpuMSAATexture?.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
@@ -2259,6 +2269,7 @@ export class WebGPUEngine extends Engine {
2259
2269
  colorAttachments.push({
2260
2270
  view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
2261
2271
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
2272
+ depthSlice,
2262
2273
  clearValue: mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
2263
2274
  loadOp: mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load,
2264
2275
  storeOp: WebGPUConstants.StoreOp.Store,
@@ -2430,15 +2441,14 @@ export class WebGPUEngine extends Engine {
2430
2441
  this._endCurrentRenderPass();
2431
2442
  }
2432
2443
  this._currentRenderTarget = texture;
2444
+ const depthStencilTexture = this._currentRenderTarget._depthStencilTexture;
2433
2445
  this._rttRenderPassWrapper.colorAttachmentGPUTextures[0] = hardwareTexture;
2434
- this._rttRenderPassWrapper.depthTextureFormat = this._currentRenderTarget._depthStencilTexture
2435
- ? WebGPUTextureHelper.GetWebGPUTextureFormat(-1, this._currentRenderTarget._depthStencilTexture.format)
2436
- : undefined;
2446
+ this._rttRenderPassWrapper.depthTextureFormat = depthStencilTexture ? WebGPUTextureHelper.GetWebGPUTextureFormat(-1, depthStencilTexture.format) : undefined;
2437
2447
  this._setDepthTextureFormat(this._rttRenderPassWrapper);
2438
2448
  this._setColorFormat(this._rttRenderPassWrapper);
2439
2449
  this._rttRenderPassWrapper.colorAttachmentViewDescriptor = {
2440
2450
  format: this._colorFormat,
2441
- dimension: WebGPUConstants.TextureViewDimension.E2d,
2451
+ dimension: texture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2442
2452
  mipLevelCount: 1,
2443
2453
  baseArrayLayer: texture.isCube ? layer * 6 + faceIndex : layer,
2444
2454
  baseMipLevel: lodLevel,
@@ -2447,9 +2457,9 @@ export class WebGPUEngine extends Engine {
2447
2457
  };
2448
2458
  this._rttRenderPassWrapper.depthAttachmentViewDescriptor = {
2449
2459
  format: this._depthTextureFormat,
2450
- dimension: WebGPUConstants.TextureViewDimension.E2d,
2460
+ dimension: depthStencilTexture && depthStencilTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2451
2461
  mipLevelCount: 1,
2452
- baseArrayLayer: texture.isCube ? layer * 6 + faceIndex : layer,
2462
+ baseArrayLayer: depthStencilTexture ? (depthStencilTexture.isCube ? layer * 6 + faceIndex : layer) : 0,
2453
2463
  baseMipLevel: 0,
2454
2464
  arrayLayerCount: 1,
2455
2465
  aspect: WebGPUConstants.TextureAspect.All,