@babylonjs/core 5.0.0-alpha.61 → 5.0.0-alpha.65

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 (519) hide show
  1. package/Animations/animation.js +42 -2
  2. package/Animations/animation.js.map +1 -1
  3. package/Animations/animationGroup.d.ts +5 -1
  4. package/Animations/animationGroup.js +19 -1
  5. package/Animations/animationGroup.js.map +1 -1
  6. package/Audio/sound.js +15 -1
  7. package/Audio/sound.js.map +1 -1
  8. package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
  9. package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
  10. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  11. package/Behaviors/Meshes/followBehavior.js +1 -1
  12. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  13. package/Behaviors/Meshes/handConstraintBehavior.js +16 -12
  14. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  15. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
  16. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  17. package/Cameras/VR/vrExperienceHelper.d.ts +1 -1
  18. package/Cameras/VR/vrExperienceHelper.js +1 -1
  19. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  20. package/Cameras/camera.js +2 -2
  21. package/Cameras/camera.js.map +1 -1
  22. package/DeviceInput/Implementations/{nativeDeviceInputWrapper.d.ts → nativeDeviceInputSystem.d.ts} +5 -21
  23. package/DeviceInput/Implementations/{nativeDeviceInputWrapper.js → nativeDeviceInputSystem.js} +19 -20
  24. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +1 -0
  25. package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +7 -20
  26. package/DeviceInput/Implementations/webDeviceInputSystem.js +79 -71
  27. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  28. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -2
  29. package/DeviceInput/InputDevices/deviceSourceManager.js +5 -1
  30. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  31. package/DeviceInput/Interfaces/inputInterfaces.d.ts +6 -13
  32. package/DeviceInput/Interfaces/inputInterfaces.js.map +1 -1
  33. package/DeviceInput/deviceInputSystem.d.ts +49 -5
  34. package/DeviceInput/deviceInputSystem.js +62 -10
  35. package/DeviceInput/deviceInputSystem.js.map +1 -1
  36. package/DeviceInput/index.d.ts +1 -1
  37. package/DeviceInput/index.js +1 -1
  38. package/DeviceInput/index.js.map +1 -1
  39. package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
  40. package/Engines/Extensions/engine.dynamicTexture.js +2 -1
  41. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  42. package/Engines/Extensions/engine.views.d.ts +1 -1
  43. package/Engines/Extensions/engine.views.js +1 -1
  44. package/Engines/Extensions/engine.views.js.map +1 -1
  45. package/Engines/Processors/iShaderProcessor.d.ts +1 -1
  46. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  47. package/Engines/Processors/shaderProcessingOptions.d.ts +5 -0
  48. package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
  49. package/Engines/Processors/shaderProcessor.js +8 -2
  50. package/Engines/Processors/shaderProcessor.js.map +1 -1
  51. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
  52. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  53. package/Engines/WebGPU/Extensions/engine.multiRender.js +19 -9
  54. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  55. package/Engines/WebGPU/Extensions/engine.renderTarget.js +9 -6
  56. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  57. package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
  58. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  59. package/Engines/WebGPU/webgpuCacheBindGroups.js +3 -3
  60. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  61. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +4 -1
  62. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +37 -83
  63. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  64. package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
  65. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  66. package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
  67. package/Engines/WebGPU/webgpuClearQuad.js +29 -11
  68. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  69. package/Engines/WebGPU/webgpuComputeContext.js +2 -2
  70. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  71. package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
  72. package/Engines/WebGPU/webgpuConstants.js +62 -13
  73. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  74. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +24 -4
  75. package/Engines/WebGPU/webgpuHardwareTexture.js +12 -2
  76. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  77. package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +6 -0
  78. package/Engines/WebGPU/webgpuRenderTargetWrapper.js +12 -0
  79. package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -0
  80. package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -0
  81. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  82. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +2 -0
  83. package/Engines/WebGPU/webgpuShaderProcessor.js +23 -0
  84. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  85. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -0
  86. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +17 -1
  87. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  88. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -2
  89. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +11 -30
  90. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  91. package/Engines/WebGPU/webgpuTextureHelper.d.ts +9 -2
  92. package/Engines/WebGPU/webgpuTextureHelper.js +291 -66
  93. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  94. package/Engines/engine.d.ts +145 -45
  95. package/Engines/engine.js +5 -1
  96. package/Engines/engine.js.map +1 -1
  97. package/Engines/nativeEngine.d.ts +11 -0
  98. package/Engines/nativeEngine.js +78 -18
  99. package/Engines/nativeEngine.js.map +1 -1
  100. package/Engines/renderTargetWrapper.d.ts +1 -1
  101. package/Engines/renderTargetWrapper.js +1 -1
  102. package/Engines/renderTargetWrapper.js.map +1 -1
  103. package/Engines/thinEngine.js +2 -2
  104. package/Engines/thinEngine.js.map +1 -1
  105. package/Engines/webgpuEngine.d.ts +5 -13
  106. package/Engines/webgpuEngine.js +37 -75
  107. package/Engines/webgpuEngine.js.map +1 -1
  108. package/Gizmos/positionGizmo.js +1 -1
  109. package/Gizmos/positionGizmo.js.map +1 -1
  110. package/Inputs/scene.inputManager.js +6 -1
  111. package/Inputs/scene.inputManager.js.map +1 -1
  112. package/Layers/effectLayer.d.ts +4 -0
  113. package/Layers/effectLayer.js +10 -0
  114. package/Layers/effectLayer.js.map +1 -1
  115. package/Layers/glowLayer.d.ts +8 -0
  116. package/Layers/glowLayer.js +7 -3
  117. package/Layers/glowLayer.js.map +1 -1
  118. package/Layers/highlightLayer.js +2 -0
  119. package/Layers/highlightLayer.js.map +1 -1
  120. package/Lights/Shadows/shadowGenerator.js +1 -1
  121. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  122. package/Lights/light.js +4 -1
  123. package/Lights/light.js.map +1 -1
  124. package/Lights/pointLight.js +1 -1
  125. package/Lights/pointLight.js.map +1 -1
  126. package/Lights/spotLight.js +1 -1
  127. package/Lights/spotLight.js.map +1 -1
  128. package/Loading/Plugins/babylonFileLoader.js +10 -7
  129. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  130. package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
  131. package/Materials/Node/Blocks/Fragment/index.js +1 -0
  132. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  133. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +1 -3
  134. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  135. package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
  136. package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
  137. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
  138. package/Materials/Node/Blocks/customBlock.d.ts +31 -0
  139. package/Materials/Node/Blocks/customBlock.js +144 -0
  140. package/Materials/Node/Blocks/customBlock.js.map +1 -0
  141. package/Materials/Node/Blocks/index.d.ts +1 -0
  142. package/Materials/Node/Blocks/index.js +1 -0
  143. package/Materials/Node/Blocks/index.js.map +1 -1
  144. package/Materials/Node/nodeMaterial.js +8 -0
  145. package/Materials/Node/nodeMaterial.js.map +1 -1
  146. package/Materials/Node/nodeMaterialBlock.js +1 -1
  147. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  148. package/Materials/PBR/index.d.ts +4 -0
  149. package/Materials/PBR/index.js +4 -0
  150. package/Materials/PBR/index.js.map +1 -1
  151. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +28 -96
  152. package/Materials/PBR/pbrAnisotropicConfiguration.js +50 -111
  153. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  154. package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -37
  155. package/Materials/PBR/pbrBRDFConfiguration.js +39 -52
  156. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  157. package/Materials/PBR/pbrBaseMaterial.d.ts +15 -74
  158. package/Materials/PBR/pbrBaseMaterial.js +67 -182
  159. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  160. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  161. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +23 -98
  162. package/Materials/PBR/pbrClearCoatConfiguration.js +91 -143
  163. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  164. package/Materials/PBR/pbrSheenConfiguration.d.ts +25 -93
  165. package/Materials/PBR/pbrSheenConfiguration.js +71 -126
  166. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  167. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +28 -114
  168. package/Materials/PBR/pbrSubSurfaceConfiguration.js +150 -211
  169. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  170. package/Materials/Textures/dynamicTexture.d.ts +3 -2
  171. package/Materials/Textures/dynamicTexture.js +5 -3
  172. package/Materials/Textures/dynamicTexture.js.map +1 -1
  173. package/Materials/Textures/multiRenderTarget.js +3 -0
  174. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  175. package/Materials/Textures/renderTargetTexture.js +1 -1
  176. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  177. package/Materials/Textures/thinRenderTargetTexture.js +1 -1
  178. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  179. package/Materials/Textures/thinTexture.d.ts +1 -2
  180. package/Materials/Textures/thinTexture.js +2 -4
  181. package/Materials/Textures/thinTexture.js.map +1 -1
  182. package/Materials/Textures/videoTexture.d.ts +1 -1
  183. package/Materials/Textures/videoTexture.js +1 -1
  184. package/Materials/Textures/videoTexture.js.map +1 -1
  185. package/Materials/effect.d.ts +6 -1
  186. package/Materials/effect.js +4 -1
  187. package/Materials/effect.js.map +1 -1
  188. package/Materials/fresnelParameters.d.ts +1 -1
  189. package/Materials/fresnelParameters.js +1 -1
  190. package/Materials/fresnelParameters.js.map +1 -1
  191. package/Materials/index.d.ts +4 -0
  192. package/Materials/index.js +4 -0
  193. package/Materials/index.js.map +1 -1
  194. package/Materials/material.d.ts +43 -2
  195. package/Materials/material.detailMapConfiguration.d.ts +29 -87
  196. package/Materials/material.detailMapConfiguration.js +50 -106
  197. package/Materials/material.detailMapConfiguration.js.map +1 -1
  198. package/Materials/material.js +99 -8
  199. package/Materials/material.js.map +1 -1
  200. package/Materials/materialDefines.d.ts +16 -0
  201. package/Materials/materialDefines.js +17 -5
  202. package/Materials/materialDefines.js.map +1 -1
  203. package/Materials/materialPluginBase.d.ts +182 -0
  204. package/Materials/materialPluginBase.js +209 -0
  205. package/Materials/materialPluginBase.js.map +1 -0
  206. package/Materials/materialPluginEvent.d.ts +98 -0
  207. package/Materials/materialPluginEvent.js +21 -0
  208. package/Materials/materialPluginEvent.js.map +1 -0
  209. package/Materials/materialPluginFactoryExport.d.ts +40 -0
  210. package/Materials/materialPluginFactoryExport.js +75 -0
  211. package/Materials/materialPluginFactoryExport.js.map +1 -0
  212. package/Materials/materialPluginManager.d.ts +90 -0
  213. package/Materials/materialPluginManager.js +323 -0
  214. package/Materials/materialPluginManager.js.map +1 -0
  215. package/Materials/shaderMaterial.d.ts +1 -1
  216. package/Materials/shaderMaterial.js +13 -1
  217. package/Materials/shaderMaterial.js.map +1 -1
  218. package/Materials/standardMaterial.d.ts +13 -10
  219. package/Materials/standardMaterial.js +45 -51
  220. package/Materials/standardMaterial.js.map +1 -1
  221. package/Materials/uniformBuffer.d.ts +7 -0
  222. package/Materials/uniformBuffer.js +22 -0
  223. package/Materials/uniformBuffer.js.map +1 -1
  224. package/Maths/math.vector.d.ts +12 -8
  225. package/Maths/math.vector.js +22 -14
  226. package/Maths/math.vector.js.map +1 -1
  227. package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
  228. package/Meshes/Builders/capsuleBuilder.js +1 -1
  229. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  230. package/Meshes/abstractMesh.d.ts +1 -1
  231. package/Meshes/abstractMesh.js +24 -23
  232. package/Meshes/abstractMesh.js.map +1 -1
  233. package/Meshes/geometry.js +2 -2
  234. package/Meshes/geometry.js.map +1 -1
  235. package/Meshes/linesMesh.d.ts +1 -1
  236. package/Meshes/linesMesh.js +3 -2
  237. package/Meshes/linesMesh.js.map +1 -1
  238. package/Meshes/mesh.d.ts +12 -0
  239. package/Meshes/mesh.js +184 -115
  240. package/Meshes/mesh.js.map +1 -1
  241. package/Meshes/mesh.lts.d.ts +8 -8
  242. package/Meshes/mesh.lts.js.map +1 -1
  243. package/Meshes/mesh.vertexData.d.ts +6 -1
  244. package/Meshes/mesh.vertexData.js +295 -114
  245. package/Meshes/mesh.vertexData.js.map +1 -1
  246. package/Meshes/transformNode.js +20 -13
  247. package/Meshes/transformNode.js.map +1 -1
  248. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +2 -1
  249. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +38 -33
  250. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  251. package/Misc/PerformanceViewer/performanceViewerCollector.d.ts +29 -4
  252. package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -12
  253. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  254. package/Misc/assetsManager.d.ts +4 -4
  255. package/Misc/assetsManager.js +2 -2
  256. package/Misc/assetsManager.js.map +1 -1
  257. package/Misc/basis.js +1 -0
  258. package/Misc/basis.js.map +1 -1
  259. package/Misc/coroutine.d.ts +41 -0
  260. package/Misc/coroutine.js +136 -0
  261. package/Misc/coroutine.js.map +1 -0
  262. package/Misc/index.d.ts +1 -0
  263. package/Misc/index.js +1 -0
  264. package/Misc/index.js.map +1 -1
  265. package/Misc/interfaces/iPerfViewer.d.ts +4 -0
  266. package/Misc/interfaces/iPerfViewer.js.map +1 -1
  267. package/Misc/observableCoroutine.d.ts +9 -10
  268. package/Misc/observableCoroutine.js +34 -39
  269. package/Misc/observableCoroutine.js.map +1 -1
  270. package/Misc/sceneSerializer.js +1 -0
  271. package/Misc/sceneSerializer.js.map +1 -1
  272. package/Particles/particleSystem.js +3 -0
  273. package/Particles/particleSystem.js.map +1 -1
  274. package/Particles/subEmitter.js +1 -0
  275. package/Particles/subEmitter.js.map +1 -1
  276. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -0
  277. package/PostProcesses/screenSpaceReflectionPostProcess.js +4 -0
  278. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  279. package/Rendering/depthPeelingRenderer.d.ts +4 -1
  280. package/Rendering/depthPeelingRenderer.js +34 -9
  281. package/Rendering/depthPeelingRenderer.js.map +1 -1
  282. package/Rendering/depthRenderer.js +1 -1
  283. package/Rendering/depthRenderer.js.map +1 -1
  284. package/Rendering/outlineRenderer.js +24 -1
  285. package/Rendering/outlineRenderer.js.map +1 -1
  286. package/Rendering/prePassRenderer.js +7 -7
  287. package/Rendering/prePassRenderer.js.map +1 -1
  288. package/Rendering/renderingGroup.js +5 -1
  289. package/Rendering/renderingGroup.js.map +1 -1
  290. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
  291. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  292. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  293. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  294. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  295. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  296. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
  297. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  298. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  299. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  300. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  301. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  302. package/Shaders/anaglyph.fragment.js +1 -1
  303. package/Shaders/anaglyph.fragment.js.map +1 -1
  304. package/Shaders/background.fragment.js +1 -1
  305. package/Shaders/background.fragment.js.map +1 -1
  306. package/Shaders/background.vertex.js +1 -1
  307. package/Shaders/background.vertex.js.map +1 -1
  308. package/Shaders/blackAndWhite.fragment.js +1 -1
  309. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  310. package/Shaders/bloomMerge.fragment.js +1 -1
  311. package/Shaders/bloomMerge.fragment.js.map +1 -1
  312. package/Shaders/blur.fragment.js +1 -1
  313. package/Shaders/blur.fragment.js.map +1 -1
  314. package/Shaders/boundingBoxRenderer.fragment.js +1 -1
  315. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  316. package/Shaders/boundingBoxRenderer.vertex.js +1 -1
  317. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  318. package/Shaders/chromaticAberration.fragment.js +1 -1
  319. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  320. package/Shaders/circleOfConfusion.fragment.js +1 -1
  321. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  322. package/Shaders/clearQuad.vertex.js +1 -1
  323. package/Shaders/clearQuad.vertex.js.map +1 -1
  324. package/Shaders/color.fragment.js +1 -1
  325. package/Shaders/color.fragment.js.map +1 -1
  326. package/Shaders/color.vertex.js +1 -1
  327. package/Shaders/color.vertex.js.map +1 -1
  328. package/Shaders/colorCorrection.fragment.js +1 -1
  329. package/Shaders/colorCorrection.fragment.js.map +1 -1
  330. package/Shaders/convolution.fragment.js +1 -1
  331. package/Shaders/convolution.fragment.js.map +1 -1
  332. package/Shaders/default.fragment.js +1 -1
  333. package/Shaders/default.fragment.js.map +1 -1
  334. package/Shaders/depth.fragment.js +1 -1
  335. package/Shaders/depth.fragment.js.map +1 -1
  336. package/Shaders/depth.vertex.js +1 -1
  337. package/Shaders/depth.vertex.js.map +1 -1
  338. package/Shaders/depthBoxBlur.fragment.js +1 -1
  339. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  340. package/Shaders/depthOfField.fragment.js +1 -1
  341. package/Shaders/depthOfField.fragment.js.map +1 -1
  342. package/Shaders/depthOfFieldMerge.fragment.js +1 -1
  343. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  344. package/Shaders/displayPass.fragment.js +1 -1
  345. package/Shaders/displayPass.fragment.js.map +1 -1
  346. package/Shaders/extractHighlights.fragment.js +1 -1
  347. package/Shaders/extractHighlights.fragment.js.map +1 -1
  348. package/Shaders/filter.fragment.js +1 -1
  349. package/Shaders/filter.fragment.js.map +1 -1
  350. package/Shaders/fxaa.vertex.js +1 -1
  351. package/Shaders/fxaa.vertex.js.map +1 -1
  352. package/Shaders/geometry.vertex.js +1 -1
  353. package/Shaders/geometry.vertex.js.map +1 -1
  354. package/Shaders/glowBlurPostProcess.fragment.js +1 -1
  355. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  356. package/Shaders/glowMapGeneration.fragment.js +1 -1
  357. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  358. package/Shaders/glowMapGeneration.vertex.js +1 -1
  359. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  360. package/Shaders/glowMapMerge.fragment.js +1 -1
  361. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  362. package/Shaders/glowMapMerge.vertex.js +1 -1
  363. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  364. package/Shaders/grain.fragment.js +1 -1
  365. package/Shaders/grain.fragment.js.map +1 -1
  366. package/Shaders/hdrFiltering.vertex.js +1 -1
  367. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  368. package/Shaders/highlights.fragment.js +1 -1
  369. package/Shaders/highlights.fragment.js.map +1 -1
  370. package/Shaders/imageProcessing.fragment.js +1 -1
  371. package/Shaders/imageProcessing.fragment.js.map +1 -1
  372. package/Shaders/kernelBlur.fragment.js +1 -1
  373. package/Shaders/kernelBlur.fragment.js.map +1 -1
  374. package/Shaders/kernelBlur.vertex.js +1 -1
  375. package/Shaders/kernelBlur.vertex.js.map +1 -1
  376. package/Shaders/layer.fragment.js +1 -1
  377. package/Shaders/layer.fragment.js.map +1 -1
  378. package/Shaders/layer.vertex.js +1 -1
  379. package/Shaders/layer.vertex.js.map +1 -1
  380. package/Shaders/lensFlare.fragment.js +1 -1
  381. package/Shaders/lensFlare.fragment.js.map +1 -1
  382. package/Shaders/lensFlare.vertex.js +1 -1
  383. package/Shaders/lensFlare.vertex.js.map +1 -1
  384. package/Shaders/lensHighlights.fragment.js +1 -1
  385. package/Shaders/lensHighlights.fragment.js.map +1 -1
  386. package/Shaders/line.fragment.js +1 -1
  387. package/Shaders/line.fragment.js.map +1 -1
  388. package/Shaders/line.vertex.js +1 -1
  389. package/Shaders/line.vertex.js.map +1 -1
  390. package/Shaders/minmaxRedux.fragment.js +1 -1
  391. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  392. package/Shaders/motionBlur.fragment.js +1 -1
  393. package/Shaders/motionBlur.fragment.js.map +1 -1
  394. package/Shaders/noise.fragment.js +1 -1
  395. package/Shaders/noise.fragment.js.map +1 -1
  396. package/Shaders/outline.fragment.d.ts +2 -0
  397. package/Shaders/outline.fragment.js +3 -1
  398. package/Shaders/outline.fragment.js.map +1 -1
  399. package/Shaders/outline.vertex.d.ts +2 -0
  400. package/Shaders/outline.vertex.js +3 -1
  401. package/Shaders/outline.vertex.js.map +1 -1
  402. package/Shaders/particles.fragment.js +1 -1
  403. package/Shaders/particles.fragment.js.map +1 -1
  404. package/Shaders/particles.vertex.js +1 -1
  405. package/Shaders/particles.vertex.js.map +1 -1
  406. package/Shaders/pass.fragment.js +1 -1
  407. package/Shaders/pass.fragment.js.map +1 -1
  408. package/Shaders/passCube.fragment.js +1 -1
  409. package/Shaders/passCube.fragment.js.map +1 -1
  410. package/Shaders/pbr.fragment.js +1 -1
  411. package/Shaders/pbr.fragment.js.map +1 -1
  412. package/Shaders/postprocess.vertex.js +1 -1
  413. package/Shaders/postprocess.vertex.js.map +1 -1
  414. package/Shaders/procedural.vertex.js +1 -1
  415. package/Shaders/procedural.vertex.js.map +1 -1
  416. package/Shaders/rgbdDecode.fragment.js +1 -1
  417. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  418. package/Shaders/rgbdEncode.fragment.js +1 -1
  419. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  420. package/Shaders/screenSpaceCurvature.fragment.js +1 -1
  421. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  422. package/Shaders/screenSpaceReflection.fragment.js +1 -1
  423. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  424. package/Shaders/shadowMap.fragment.js +1 -1
  425. package/Shaders/shadowMap.fragment.js.map +1 -1
  426. package/Shaders/shadowMap.vertex.js +1 -1
  427. package/Shaders/shadowMap.vertex.js.map +1 -1
  428. package/Shaders/sharpen.fragment.js +1 -1
  429. package/Shaders/sharpen.fragment.js.map +1 -1
  430. package/Shaders/sprites.fragment.js +1 -1
  431. package/Shaders/sprites.fragment.js.map +1 -1
  432. package/Shaders/sprites.vertex.js +1 -1
  433. package/Shaders/sprites.vertex.js.map +1 -1
  434. package/Shaders/ssaoCombine.fragment.js +1 -1
  435. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  436. package/Shaders/standard.fragment.js +1 -1
  437. package/Shaders/standard.fragment.js.map +1 -1
  438. package/Shaders/stereoscopicInterlace.fragment.js +1 -1
  439. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  440. package/Shaders/subSurfaceScattering.fragment.js +1 -1
  441. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  442. package/Shaders/tonemap.fragment.js +1 -1
  443. package/Shaders/tonemap.fragment.js.map +1 -1
  444. package/Shaders/volumetricLightScattering.fragment.js +1 -1
  445. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  446. package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
  447. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  448. package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
  449. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  450. package/Shaders/vrDistortionCorrection.fragment.js +1 -1
  451. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  452. package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
  453. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  454. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
  455. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  456. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
  457. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  458. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  459. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  460. package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
  461. package/XR/features/WebXRControllerPointerSelection.js +55 -21
  462. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  463. package/XR/features/WebXRHandTracking.d.ts +2 -0
  464. package/XR/features/WebXRHandTracking.js +34 -14
  465. package/XR/features/WebXRHandTracking.js.map +1 -1
  466. package/XR/features/WebXRLayers.d.ts +78 -0
  467. package/XR/features/WebXRLayers.js +243 -0
  468. package/XR/features/WebXRLayers.js.map +1 -0
  469. package/XR/features/WebXRPlaneDetector.js +8 -12
  470. package/XR/features/WebXRPlaneDetector.js.map +1 -1
  471. package/XR/features/index.d.ts +1 -0
  472. package/XR/features/index.js +1 -0
  473. package/XR/features/index.js.map +1 -1
  474. package/XR/index.d.ts +1 -0
  475. package/XR/index.js +1 -0
  476. package/XR/index.js.map +1 -1
  477. package/XR/native/index.d.ts +2 -0
  478. package/XR/native/index.js +3 -0
  479. package/XR/native/index.js.map +1 -0
  480. package/XR/native/nativeXRFrame.d.ts +27 -0
  481. package/XR/native/nativeXRFrame.js +81 -0
  482. package/XR/native/nativeXRFrame.js.map +1 -0
  483. package/XR/native/nativeXRRenderTarget.d.ts +44 -0
  484. package/XR/native/nativeXRRenderTarget.js +81 -0
  485. package/XR/native/nativeXRRenderTarget.js.map +1 -0
  486. package/XR/webXRCamera.js +2 -10
  487. package/XR/webXRCamera.js.map +1 -1
  488. package/XR/webXRExperienceHelper.js +15 -13
  489. package/XR/webXRExperienceHelper.js.map +1 -1
  490. package/XR/webXRFeaturesManager.d.ts +4 -0
  491. package/XR/webXRFeaturesManager.js +5 -1
  492. package/XR/webXRFeaturesManager.js.map +1 -1
  493. package/XR/webXRLayerWrapper.d.ts +48 -0
  494. package/XR/webXRLayerWrapper.js +60 -0
  495. package/XR/webXRLayerWrapper.js.map +1 -0
  496. package/XR/webXRManagedOutputCanvas.d.ts +2 -1
  497. package/XR/webXRManagedOutputCanvas.js +36 -29
  498. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  499. package/XR/webXRRenderTargetTextureProvider.d.ts +55 -0
  500. package/XR/webXRRenderTargetTextureProvider.js +63 -0
  501. package/XR/webXRRenderTargetTextureProvider.js.map +1 -0
  502. package/XR/webXRSessionManager.d.ts +30 -7
  503. package/XR/webXRSessionManager.js +62 -64
  504. package/XR/webXRSessionManager.js.map +1 -1
  505. package/XR/webXRTypes.d.ts +1 -1
  506. package/XR/webXRTypes.js.map +1 -1
  507. package/XR/webXRWebGLLayer.d.ts +36 -0
  508. package/XR/webXRWebGLLayer.js +69 -0
  509. package/XR/webXRWebGLLayer.js.map +1 -0
  510. package/abstractScene.d.ts +1 -1
  511. package/abstractScene.js +1 -1
  512. package/abstractScene.js.map +1 -1
  513. package/assetContainer.js +3 -0
  514. package/assetContainer.js.map +1 -1
  515. package/package.json +51 -6
  516. package/scene.d.ts +4 -0
  517. package/scene.js +4 -0
  518. package/scene.js.map +1 -1
  519. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +0 -1
@@ -1,58 +1,95 @@
1
- import { __decorate } from "tslib";
2
- import { SerializationHelper, serialize, serializeAsTexture, expandToProperty, serializeAsColor3 } from "../../Misc/decorators.js";
1
+ import { __decorate, __extends } from "tslib";
2
+ import { serialize, serializeAsTexture, expandToProperty, serializeAsColor3 } from "../../Misc/decorators.js";
3
3
  import { Color3 } from '../../Maths/math.color.js';
4
4
  import { MaterialFlags } from "../materialFlags.js";
5
5
  import { MaterialHelper } from "../../Materials/materialHelper.js";
6
6
  import { Scalar } from "../../Maths/math.scalar.js";
7
7
  import { TmpVectors } from "../../Maths/math.vector.js";
8
+ import { MaterialPluginBase } from "../materialPluginBase.js";
9
+ import { MaterialDefines } from "../materialDefines.js";
8
10
  /**
9
- * Define the code related to the sub surface parameters of the pbr material.
11
+ * @hidden
10
12
  */
11
- var PBRSubSurfaceConfiguration = /** @class */ (function () {
12
- /**
13
- * Instantiate a new instance of sub surface configuration.
14
- * @param markAllSubMeshesAsTexturesDirty Callback to flag the material to dirty
15
- * @param markScenePrePassDirty Callback to flag the scene as prepass dirty
16
- * @param scene The scene
17
- */
18
- function PBRSubSurfaceConfiguration(markAllSubMeshesAsTexturesDirty, markScenePrePassDirty, scene) {
19
- this._isRefractionEnabled = false;
13
+ var MaterialSubSurfaceDefines = /** @class */ (function (_super) {
14
+ __extends(MaterialSubSurfaceDefines, _super);
15
+ function MaterialSubSurfaceDefines() {
16
+ var _this = _super !== null && _super.apply(this, arguments) || this;
17
+ _this.SUBSURFACE = false;
18
+ _this.SS_REFRACTION = false;
19
+ _this.SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE = false;
20
+ _this.SS_TRANSLUCENCY = false;
21
+ _this.SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE = false;
22
+ _this.SS_SCATTERING = false;
23
+ _this.SS_THICKNESSANDMASK_TEXTURE = false;
24
+ _this.SS_THICKNESSANDMASK_TEXTUREDIRECTUV = 0;
25
+ _this.SS_HAS_THICKNESS = false;
26
+ _this.SS_REFRACTIONINTENSITY_TEXTURE = false;
27
+ _this.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV = 0;
28
+ _this.SS_TRANSLUCENCYINTENSITY_TEXTURE = false;
29
+ _this.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV = 0;
30
+ _this.SS_REFRACTIONMAP_3D = false;
31
+ _this.SS_REFRACTIONMAP_OPPOSITEZ = false;
32
+ _this.SS_LODINREFRACTIONALPHA = false;
33
+ _this.SS_GAMMAREFRACTION = false;
34
+ _this.SS_RGBDREFRACTION = false;
35
+ _this.SS_LINEARSPECULARREFRACTION = false;
36
+ _this.SS_LINKREFRACTIONTOTRANSPARENCY = false;
37
+ _this.SS_ALBEDOFORREFRACTIONTINT = false;
38
+ _this.SS_ALBEDOFORTRANSLUCENCYTINT = false;
39
+ _this.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = false;
40
+ _this.SS_USE_THICKNESS_AS_DEPTH = false;
41
+ _this.SS_MASK_FROM_THICKNESS_TEXTURE = false;
42
+ _this.SS_USE_GLTF_TEXTURES = false;
43
+ return _this;
44
+ }
45
+ return MaterialSubSurfaceDefines;
46
+ }(MaterialDefines));
47
+ export { MaterialSubSurfaceDefines };
48
+ /**
49
+ * Plugin that implements the sub surface component of the PBR material
50
+ */
51
+ var PBRSubSurfaceConfiguration = /** @class */ (function (_super) {
52
+ __extends(PBRSubSurfaceConfiguration, _super);
53
+ function PBRSubSurfaceConfiguration(material, addToPluginList) {
54
+ if (addToPluginList === void 0) { addToPluginList = true; }
55
+ var _this = _super.call(this, material, "PBRSubSurface", 130, new MaterialSubSurfaceDefines(), addToPluginList) || this;
56
+ _this._isRefractionEnabled = false;
20
57
  /**
21
58
  * Defines if the refraction is enabled in the material.
22
59
  */
23
- this.isRefractionEnabled = false;
24
- this._isTranslucencyEnabled = false;
60
+ _this.isRefractionEnabled = false;
61
+ _this._isTranslucencyEnabled = false;
25
62
  /**
26
63
  * Defines if the translucency is enabled in the material.
27
64
  */
28
- this.isTranslucencyEnabled = false;
29
- this._isScatteringEnabled = false;
65
+ _this.isTranslucencyEnabled = false;
66
+ _this._isScatteringEnabled = false;
30
67
  /**
31
68
  * Defines if the sub surface scattering is enabled in the material.
32
69
  */
33
- this.isScatteringEnabled = false;
34
- this._scatteringDiffusionProfileIndex = 0;
70
+ _this.isScatteringEnabled = false;
71
+ _this._scatteringDiffusionProfileIndex = 0;
35
72
  /**
36
73
  * Defines the refraction intensity of the material.
37
74
  * The refraction when enabled replaces the Diffuse part of the material.
38
75
  * The intensity helps transitioning between diffuse and refraction.
39
76
  */
40
- this.refractionIntensity = 1;
77
+ _this.refractionIntensity = 1;
41
78
  /**
42
79
  * Defines the translucency intensity of the material.
43
80
  * When translucency has been enabled, this defines how much of the "translucency"
44
81
  * is added to the diffuse part of the material.
45
82
  */
46
- this.translucencyIntensity = 1;
83
+ _this.translucencyIntensity = 1;
47
84
  /**
48
85
  * When enabled, transparent surfaces will be tinted with the albedo colour (independent of thickness)
49
86
  */
50
- this.useAlbedoToTintRefraction = false;
87
+ _this.useAlbedoToTintRefraction = false;
51
88
  /**
52
89
  * When enabled, translucent surfaces will be tinted with the albedo colour (independent of thickness)
53
90
  */
54
- this.useAlbedoToTintTranslucency = false;
55
- this._thicknessTexture = null;
91
+ _this.useAlbedoToTintTranslucency = false;
92
+ _this._thicknessTexture = null;
56
93
  /**
57
94
  * Stores the average thickness of a mesh in a texture (The texture is holding the values linearly).
58
95
  * The red (or green if useGltfStyleTextures=true) channel of the texture should contain the thickness remapped between 0 and 1.
@@ -60,13 +97,14 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
60
97
  * 1 would mean maximumThickness
61
98
  * The other channels might be use as a mask to vary the different effects intensity.
62
99
  */
63
- this.thicknessTexture = null;
64
- this._refractionTexture = null;
100
+ _this.thicknessTexture = null;
101
+ _this._refractionTexture = null;
65
102
  /**
66
103
  * Defines the texture to use for refraction.
67
104
  */
68
- this.refractionTexture = null;
69
- this._indexOfRefraction = 1.5;
105
+ _this.refractionTexture = null;
106
+ /** @hidden */
107
+ _this._indexOfRefraction = 1.5;
70
108
  /**
71
109
  * Index of refraction of the material base layer.
72
110
  * https://en.wikipedia.org/wiki/List_of_refractive_indices
@@ -75,78 +113,81 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
75
113
  *
76
114
  * From dielectric fresnel rules: F0 = square((iorT - iorI) / (iorT + iorI))
77
115
  */
78
- this.indexOfRefraction = 1.5;
79
- this._volumeIndexOfRefraction = -1.0;
80
- this._invertRefractionY = false;
116
+ _this.indexOfRefraction = 1.5;
117
+ _this._volumeIndexOfRefraction = -1.0;
118
+ _this._invertRefractionY = false;
81
119
  /**
82
120
  * Controls if refraction needs to be inverted on Y. This could be useful for procedural texture.
83
121
  */
84
- this.invertRefractionY = false;
85
- this._linkRefractionWithTransparency = false;
122
+ _this.invertRefractionY = false;
123
+ /** @hidden */
124
+ _this._linkRefractionWithTransparency = false;
86
125
  /**
87
126
  * This parameters will make the material used its opacity to control how much it is refracting against not.
88
127
  * Materials half opaque for instance using refraction could benefit from this control.
89
128
  */
90
- this.linkRefractionWithTransparency = false;
129
+ _this.linkRefractionWithTransparency = false;
91
130
  /**
92
131
  * Defines the minimum thickness stored in the thickness map.
93
132
  * If no thickness map is defined, this value will be used to simulate thickness.
94
133
  */
95
- this.minimumThickness = 0;
134
+ _this.minimumThickness = 0;
96
135
  /**
97
136
  * Defines the maximum thickness stored in the thickness map.
98
137
  */
99
- this.maximumThickness = 1;
138
+ _this.maximumThickness = 1;
100
139
  /**
101
140
  * Defines that the thickness should be used as a measure of the depth volume.
102
141
  */
103
- this.useThicknessAsDepth = false;
142
+ _this.useThicknessAsDepth = false;
104
143
  /**
105
144
  * Defines the volume tint of the material.
106
145
  * This is used for both translucency and scattering.
107
146
  */
108
- this.tintColor = Color3.White();
147
+ _this.tintColor = Color3.White();
109
148
  /**
110
149
  * Defines the distance at which the tint color should be found in the media.
111
150
  * This is used for refraction only.
112
151
  */
113
- this.tintColorAtDistance = 1;
152
+ _this.tintColorAtDistance = 1;
114
153
  /**
115
154
  * Defines how far each channel transmit through the media.
116
155
  * It is defined as a color to simplify it selection.
117
156
  */
118
- this.diffusionDistance = Color3.White();
119
- this._useMaskFromThicknessTexture = false;
157
+ _this.diffusionDistance = Color3.White();
158
+ _this._useMaskFromThicknessTexture = false;
120
159
  /**
121
160
  * Stores the intensity of the different subsurface effects in the thickness texture.
122
161
  * Note that if refractionIntensityTexture and/or translucencyIntensityTexture is provided it takes precedence over thicknessTexture + useMaskFromThicknessTexture
123
162
  * * the green (red if useGltfStyleTextures = true) channel is the refraction intensity.
124
163
  * * the blue channel is the translucency intensity.
125
164
  */
126
- this.useMaskFromThicknessTexture = false;
127
- this._refractionIntensityTexture = null;
165
+ _this.useMaskFromThicknessTexture = false;
166
+ _this._refractionIntensityTexture = null;
128
167
  /**
129
168
  * Stores the intensity of the refraction. If provided, it takes precedence over thicknessTexture + useMaskFromThicknessTexture
130
169
  * * the green (red if useGltfStyleTextures = true) channel is the refraction intensity.
131
170
  */
132
- this.refractionIntensityTexture = null;
133
- this._translucencyIntensityTexture = null;
171
+ _this.refractionIntensityTexture = null;
172
+ _this._translucencyIntensityTexture = null;
134
173
  /**
135
174
  * Stores the intensity of the translucency. If provided, it takes precedence over thicknessTexture + useMaskFromThicknessTexture
136
175
  * * the blue channel is the translucency intensity.
137
176
  */
138
- this.translucencyIntensityTexture = null;
139
- this._useGltfStyleTextures = false;
177
+ _this.translucencyIntensityTexture = null;
178
+ _this._useGltfStyleTextures = false;
140
179
  /**
141
180
  * Use channels layout used by glTF:
142
181
  * * thicknessTexture: the green (instead of red) channel is the thickness
143
182
  * * thicknessTexture/refractionIntensityTexture: the red (instead of green) channel is the refraction intensity
144
183
  * * thicknessTexture/translucencyIntensityTexture: no change, use the blue channel for the translucency intensity
145
184
  */
146
- this.useGltfStyleTextures = false;
147
- this._internalMarkAllSubMeshesAsTexturesDirty = markAllSubMeshesAsTexturesDirty;
148
- this._internalMarkScenePrePassDirty = markScenePrePassDirty;
149
- this._scene = scene;
185
+ _this.useGltfStyleTextures = false;
186
+ _this._scene = material.getScene();
187
+ _this.registerForExtraEvents = true;
188
+ _this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
189
+ _this._internalMarkScenePrePassDirty = material._dirtyCallbacks[32];
190
+ return _this;
150
191
  }
151
192
  Object.defineProperty(PBRSubSurfaceConfiguration.prototype, "scatteringDiffusionProfile", {
152
193
  /**
@@ -199,6 +240,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
199
240
  });
200
241
  /** @hidden */
201
242
  PBRSubSurfaceConfiguration.prototype._markAllSubMeshesAsTexturesDirty = function () {
243
+ this._enable(this._isRefractionEnabled || this._isTranslucencyEnabled || this._isScatteringEnabled);
202
244
  this._internalMarkAllSubMeshesAsTexturesDirty();
203
245
  };
204
246
  /** @hidden */
@@ -206,13 +248,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
206
248
  this._internalMarkAllSubMeshesAsTexturesDirty();
207
249
  this._internalMarkScenePrePassDirty();
208
250
  };
209
- /**
210
- * Gets whether the submesh is ready to be used or not.
211
- * @param defines the list of "defines" to update.
212
- * @param scene defines the scene the material belongs to.
213
- * @returns - boolean indicating that the submesh is ready or not.
214
- */
215
- PBRSubSurfaceConfiguration.prototype.isReadyForSubMesh = function (defines, scene) {
251
+ PBRSubSurfaceConfiguration.prototype.isReadyForSubMesh = function (defines, scene, engine) {
216
252
  if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled) {
217
253
  return true;
218
254
  }
@@ -233,12 +269,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
233
269
  }
234
270
  return true;
235
271
  };
236
- /**
237
- * Checks to see if a texture is used in the material.
238
- * @param defines the list of "defines" to update.
239
- * @param scene defines the scene to the material belongs to.
240
- */
241
- PBRSubSurfaceConfiguration.prototype.prepareDefines = function (defines, scene) {
272
+ PBRSubSurfaceConfiguration.prototype.prepareDefines = function (defines, scene, mesh) {
242
273
  if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled) {
243
274
  defines.SUBSURFACE = false;
244
275
  defines.SS_TRANSLUCENCY = false;
@@ -247,7 +278,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
247
278
  return;
248
279
  }
249
280
  if (defines._areTexturesDirty) {
250
- defines.SUBSURFACE = false;
281
+ defines.SUBSURFACE = true;
251
282
  defines.SS_TRANSLUCENCY = this._isTranslucencyEnabled;
252
283
  defines.SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE = false;
253
284
  defines.SS_SCATTERING = this._isScatteringEnabled;
@@ -270,35 +301,32 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
270
301
  defines.SS_ALBEDOFORTRANSLUCENCYTINT = false;
271
302
  defines.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = false;
272
303
  defines.SS_USE_THICKNESS_AS_DEPTH = false;
273
- if (this._isRefractionEnabled || this._isTranslucencyEnabled || this._isScatteringEnabled) {
274
- defines.SUBSURFACE = true;
275
- var refractionIntensityTextureIsThicknessTexture = !!this._thicknessTexture &&
276
- !!this._refractionIntensityTexture &&
277
- this._refractionIntensityTexture.checkTransformsAreIdentical(this._thicknessTexture) && this._refractionIntensityTexture._texture === this._thicknessTexture._texture;
278
- var translucencyIntensityTextureIsThicknessTexture = !!this._thicknessTexture &&
279
- !!this._translucencyIntensityTexture &&
280
- this._translucencyIntensityTexture.checkTransformsAreIdentical(this._thicknessTexture) && this._translucencyIntensityTexture._texture === this._thicknessTexture._texture;
281
- // if true, it means the refraction/translucency textures are the same than the thickness texture so there's no need to pass them to the shader, only thicknessTexture
282
- var useOnlyThicknessTexture = (refractionIntensityTextureIsThicknessTexture || !this._refractionIntensityTexture) && (translucencyIntensityTextureIsThicknessTexture || !this._translucencyIntensityTexture);
283
- if (defines._areTexturesDirty) {
284
- if (scene.texturesEnabled) {
285
- if (this._thicknessTexture && MaterialFlags.ThicknessTextureEnabled) {
286
- MaterialHelper.PrepareDefinesForMergedUV(this._thicknessTexture, defines, "SS_THICKNESSANDMASK_TEXTURE");
287
- }
288
- if (this._refractionIntensityTexture && MaterialFlags.RefractionIntensityTextureEnabled && !useOnlyThicknessTexture) {
289
- MaterialHelper.PrepareDefinesForMergedUV(this._refractionIntensityTexture, defines, "SS_REFRACTIONINTENSITY_TEXTURE");
290
- }
291
- if (this._translucencyIntensityTexture && MaterialFlags.TranslucencyIntensityTextureEnabled && !useOnlyThicknessTexture) {
292
- MaterialHelper.PrepareDefinesForMergedUV(this._translucencyIntensityTexture, defines, "SS_TRANSLUCENCYINTENSITY_TEXTURE");
293
- }
304
+ var refractionIntensityTextureIsThicknessTexture = !!this._thicknessTexture &&
305
+ !!this._refractionIntensityTexture &&
306
+ this._refractionIntensityTexture.checkTransformsAreIdentical(this._thicknessTexture) && this._refractionIntensityTexture._texture === this._thicknessTexture._texture;
307
+ var translucencyIntensityTextureIsThicknessTexture = !!this._thicknessTexture &&
308
+ !!this._translucencyIntensityTexture &&
309
+ this._translucencyIntensityTexture.checkTransformsAreIdentical(this._thicknessTexture) && this._translucencyIntensityTexture._texture === this._thicknessTexture._texture;
310
+ // if true, it means the refraction/translucency textures are the same than the thickness texture so there's no need to pass them to the shader, only thicknessTexture
311
+ var useOnlyThicknessTexture = (refractionIntensityTextureIsThicknessTexture || !this._refractionIntensityTexture) && (translucencyIntensityTextureIsThicknessTexture || !this._translucencyIntensityTexture);
312
+ if (defines._areTexturesDirty) {
313
+ if (scene.texturesEnabled) {
314
+ if (this._thicknessTexture && MaterialFlags.ThicknessTextureEnabled) {
315
+ MaterialHelper.PrepareDefinesForMergedUV(this._thicknessTexture, defines, "SS_THICKNESSANDMASK_TEXTURE");
316
+ }
317
+ if (this._refractionIntensityTexture && MaterialFlags.RefractionIntensityTextureEnabled && !useOnlyThicknessTexture) {
318
+ MaterialHelper.PrepareDefinesForMergedUV(this._refractionIntensityTexture, defines, "SS_REFRACTIONINTENSITY_TEXTURE");
319
+ }
320
+ if (this._translucencyIntensityTexture && MaterialFlags.TranslucencyIntensityTextureEnabled && !useOnlyThicknessTexture) {
321
+ MaterialHelper.PrepareDefinesForMergedUV(this._translucencyIntensityTexture, defines, "SS_TRANSLUCENCYINTENSITY_TEXTURE");
294
322
  }
295
323
  }
296
- defines.SS_HAS_THICKNESS = (this.maximumThickness - this.minimumThickness) !== 0.0;
297
- defines.SS_MASK_FROM_THICKNESS_TEXTURE = (this._useMaskFromThicknessTexture || !!this._refractionIntensityTexture || !!this._translucencyIntensityTexture) && useOnlyThicknessTexture;
298
- defines.SS_USE_GLTF_TEXTURES = this._useGltfStyleTextures;
299
- defines.SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE = (this._useMaskFromThicknessTexture || !!this._refractionIntensityTexture) && useOnlyThicknessTexture;
300
- defines.SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE = (this._useMaskFromThicknessTexture || !!this._translucencyIntensityTexture) && useOnlyThicknessTexture;
301
324
  }
325
+ defines.SS_HAS_THICKNESS = (this.maximumThickness - this.minimumThickness) !== 0.0;
326
+ defines.SS_MASK_FROM_THICKNESS_TEXTURE = (this._useMaskFromThicknessTexture || !!this._refractionIntensityTexture || !!this._translucencyIntensityTexture) && useOnlyThicknessTexture;
327
+ defines.SS_USE_GLTF_TEXTURES = this._useGltfStyleTextures;
328
+ defines.SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE = (this._useMaskFromThicknessTexture || !!this._refractionIntensityTexture) && useOnlyThicknessTexture;
329
+ defines.SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE = (this._useMaskFromThicknessTexture || !!this._translucencyIntensityTexture) && useOnlyThicknessTexture;
302
330
  if (this._isRefractionEnabled) {
303
331
  if (scene.texturesEnabled) {
304
332
  var refractionTexture = this._getRefractionTexture(scene);
@@ -327,12 +355,9 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
327
355
  * @param uniformBuffer defines the Uniform buffer to fill in.
328
356
  * @param scene defines the scene the material belongs to.
329
357
  * @param engine defines the engine the material belongs to.
330
- * @param isFrozen defines whether the material is frozen or not.
331
- * @param lodBasedMicrosurface defines whether the material relies on lod based microsurface or not.
332
- * @param realTimeFiltering defines whether the textures should be filtered on the fly.
333
358
  * @param subMesh the submesh to bind data for
334
359
  */
335
- PBRSubSurfaceConfiguration.prototype.hardBindForSubMesh = function (uniformBuffer, scene, engine, isFrozen, lodBasedMicrosurface, realTimeFiltering, subMesh) {
360
+ PBRSubSurfaceConfiguration.prototype.hardBindForSubMesh = function (uniformBuffer, scene, engine, subMesh) {
336
361
  if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled) {
337
362
  return;
338
363
  }
@@ -340,21 +365,14 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
340
365
  var thicknessScale = Math.max(Math.abs(TmpVectors.Vector3[0].x), Math.abs(TmpVectors.Vector3[0].y), Math.abs(TmpVectors.Vector3[0].z));
341
366
  uniformBuffer.updateFloat2("vThicknessParam", this.minimumThickness * thicknessScale, (this.maximumThickness - this.minimumThickness) * thicknessScale);
342
367
  };
343
- /**
344
- * Binds the material data.
345
- * @param uniformBuffer defines the Uniform buffer to fill in.
346
- * @param scene defines the scene the material belongs to.
347
- * @param engine defines the engine the material belongs to.
348
- * @param isFrozen defines whether the material is frozen or not.
349
- * @param lodBasedMicrosurface defines whether the material relies on lod based microsurface or not.
350
- * @param realTimeFiltering defines whether the textures should be filtered on the fly.
351
- * @param subMesh the submesh to bind data for
352
- */
353
- PBRSubSurfaceConfiguration.prototype.bindForSubMesh = function (uniformBuffer, scene, engine, isFrozen, lodBasedMicrosurface, realTimeFiltering, subMesh) {
368
+ PBRSubSurfaceConfiguration.prototype.bindForSubMesh = function (uniformBuffer, scene, engine, subMesh) {
354
369
  if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled) {
355
370
  return;
356
371
  }
357
372
  var defines = subMesh.materialDefines;
373
+ var isFrozen = this._material.isFrozen;
374
+ var realTimeFiltering = this._material.realTimeFiltering;
375
+ var lodBasedMicrosurface = defines.LODBASEDMICROSFURACE;
358
376
  var refractionTexture = this._getRefractionTexture(scene);
359
377
  if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {
360
378
  if (this._thicknessTexture && MaterialFlags.ThicknessTextureEnabled) {
@@ -390,7 +408,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
390
408
  uniformBuffer.updateVector3("vRefractionSize", cubeTexture.boundingBoxSize);
391
409
  }
392
410
  }
393
- if (this.isScatteringEnabled) {
411
+ if (this._isScatteringEnabled) {
394
412
  uniformBuffer.updateFloat("scatteringDiffusionProfile", this._scatteringDiffusionProfileIndex);
395
413
  }
396
414
  uniformBuffer.updateColor3("vDiffusionDistance", this.diffusionDistance);
@@ -420,18 +438,6 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
420
438
  }
421
439
  }
422
440
  };
423
- /**
424
- * Unbinds the material from the mesh.
425
- * @param activeEffect defines the effect that should be unbound from.
426
- * @returns true if unbound, otherwise false
427
- */
428
- PBRSubSurfaceConfiguration.prototype.unbind = function (activeEffect) {
429
- if (this._refractionTexture && this._refractionTexture.isRenderTarget) {
430
- activeEffect.setTexture("refractionSampler", null);
431
- return true;
432
- }
433
- return false;
434
- };
435
441
  /**
436
442
  * Returns the texture used for refraction or null if none is used.
437
443
  * @param scene defines the scene the material belongs to.
@@ -452,7 +458,7 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
452
458
  * Returns true if alpha blending should be disabled.
453
459
  */
454
460
  get: function () {
455
- return this.isRefractionEnabled && this._linkRefractionWithTransparency;
461
+ return this._isRefractionEnabled && this._linkRefractionWithTransparency;
456
462
  },
457
463
  enumerable: false,
458
464
  configurable: true
@@ -466,11 +472,6 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
466
472
  renderTargets.push(this._refractionTexture);
467
473
  }
468
474
  };
469
- /**
470
- * Checks to see if a texture is used in the material.
471
- * @param texture - Base texture to use.
472
- * @returns - Boolean specifying if a texture is used in the material.
473
- */
474
475
  PBRSubSurfaceConfiguration.prototype.hasTexture = function (texture) {
475
476
  if (this._thicknessTexture === texture) {
476
477
  return true;
@@ -480,20 +481,12 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
480
481
  }
481
482
  return false;
482
483
  };
483
- /**
484
- * Gets a boolean indicating that current material needs to register RTT
485
- * @returns true if this uses a render target otherwise false.
486
- */
487
484
  PBRSubSurfaceConfiguration.prototype.hasRenderTargetTextures = function () {
488
485
  if (MaterialFlags.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget) {
489
486
  return true;
490
487
  }
491
488
  return false;
492
489
  };
493
- /**
494
- * Returns an array of the actively used textures.
495
- * @param activeTextures Array of BaseTextures
496
- */
497
490
  PBRSubSurfaceConfiguration.prototype.getActiveTextures = function (activeTextures) {
498
491
  if (this._thicknessTexture) {
499
492
  activeTextures.push(this._thicknessTexture);
@@ -502,10 +495,6 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
502
495
  activeTextures.push(this._refractionTexture);
503
496
  }
504
497
  };
505
- /**
506
- * Returns the animatable textures.
507
- * @param animatables Array of animatable textures.
508
- */
509
498
  PBRSubSurfaceConfiguration.prototype.getAnimatables = function (animatables) {
510
499
  if (this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0) {
511
500
  animatables.push(this._thicknessTexture);
@@ -514,10 +503,6 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
514
503
  animatables.push(this._refractionTexture);
515
504
  }
516
505
  };
517
- /**
518
- * Disposes the resources of the material.
519
- * @param forceDisposeTextures - Forces the disposal of all textures.
520
- */
521
506
  PBRSubSurfaceConfiguration.prototype.dispose = function (forceDisposeTextures) {
522
507
  if (forceDisposeTextures) {
523
508
  if (this._thicknessTexture) {
@@ -528,21 +513,10 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
528
513
  }
529
514
  }
530
515
  };
531
- /**
532
- * Get the current class name of the texture useful for serialization or dynamic coding.
533
- * @returns "PBRSubSurfaceConfiguration"
534
- */
535
516
  PBRSubSurfaceConfiguration.prototype.getClassName = function () {
536
517
  return "PBRSubSurfaceConfiguration";
537
518
  };
538
- /**
539
- * Add fallbacks to the effect fallbacks list.
540
- * @param defines defines the Base texture to use.
541
- * @param fallbacks defines the current fallback list.
542
- * @param currentRank defines the current fallback rank.
543
- * @returns the new fallback rank.
544
- */
545
- PBRSubSurfaceConfiguration.AddFallbacks = function (defines, fallbacks, currentRank) {
519
+ PBRSubSurfaceConfiguration.prototype.addFallbacks = function (defines, fallbacks, currentRank) {
546
520
  if (defines.SS_SCATTERING) {
547
521
  fallbacks.addFallback(currentRank++, "SS_SCATTERING");
548
522
  }
@@ -551,66 +525,31 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
551
525
  }
552
526
  return currentRank;
553
527
  };
554
- /**
555
- * Add the required uniforms to the current list.
556
- * @param uniforms defines the current uniform list.
557
- */
558
- PBRSubSurfaceConfiguration.AddUniforms = function (uniforms) {
559
- uniforms.push("vDiffusionDistance", "vTintColor", "vSubSurfaceIntensity", "vRefractionMicrosurfaceInfos", "vRefractionFilteringInfo", "vRefractionInfos", "vThicknessInfos", "vRefractionIntensityInfos", "vTranslucencyIntensityInfos", "vThicknessParam", "vRefractionPosition", "vRefractionSize", "refractionMatrix", "thicknessMatrix", "refractionIntensityMatrix", "translucencyIntensityMatrix", "scatteringDiffusionProfile");
560
- };
561
- /**
562
- * Add the required samplers to the current list.
563
- * @param samplers defines the current sampler list.
564
- */
565
- PBRSubSurfaceConfiguration.AddSamplers = function (samplers) {
528
+ PBRSubSurfaceConfiguration.prototype.getSamplers = function (samplers) {
566
529
  samplers.push("thicknessSampler", "refractionIntensitySampler", "translucencyIntensitySampler", "refractionSampler", "refractionSamplerLow", "refractionSamplerHigh");
567
530
  };
568
- /**
569
- * Add the required uniforms to the current buffer.
570
- * @param uniformBuffer defines the current uniform buffer.
571
- */
572
- PBRSubSurfaceConfiguration.PrepareUniformBuffer = function (uniformBuffer) {
573
- uniformBuffer.addUniform("vRefractionMicrosurfaceInfos", 4);
574
- uniformBuffer.addUniform("vRefractionFilteringInfo", 2);
575
- uniformBuffer.addUniform("vTranslucencyIntensityInfos", 2);
576
- uniformBuffer.addUniform("vRefractionInfos", 4);
577
- uniformBuffer.addUniform("refractionMatrix", 16);
578
- uniformBuffer.addUniform("vThicknessInfos", 2);
579
- uniformBuffer.addUniform("vRefractionIntensityInfos", 2);
580
- uniformBuffer.addUniform("thicknessMatrix", 16);
581
- uniformBuffer.addUniform("refractionIntensityMatrix", 16);
582
- uniformBuffer.addUniform("translucencyIntensityMatrix", 16);
583
- uniformBuffer.addUniform("vThicknessParam", 2);
584
- uniformBuffer.addUniform("vDiffusionDistance", 3);
585
- uniformBuffer.addUniform("vTintColor", 4);
586
- uniformBuffer.addUniform("vSubSurfaceIntensity", 3);
587
- uniformBuffer.addUniform("vRefractionPosition", 3);
588
- uniformBuffer.addUniform("vRefractionSize", 3);
589
- uniformBuffer.addUniform("scatteringDiffusionProfile", 1);
590
- };
591
- /**
592
- * Makes a duplicate of the current configuration into another one.
593
- * @param configuration define the config where to copy the info
594
- */
595
- PBRSubSurfaceConfiguration.prototype.copyTo = function (configuration) {
596
- SerializationHelper.Clone(function () { return configuration; }, this);
597
- };
598
- /**
599
- * Serializes this Sub Surface configuration.
600
- * @returns - An object with the serialized config.
601
- */
602
- PBRSubSurfaceConfiguration.prototype.serialize = function () {
603
- return SerializationHelper.Serialize(this);
604
- };
605
- /**
606
- * Parses a anisotropy Configuration from a serialized object.
607
- * @param source - Serialized object.
608
- * @param scene Defines the scene we are parsing for
609
- * @param rootUrl Defines the rootUrl to load from
610
- */
611
- PBRSubSurfaceConfiguration.prototype.parse = function (source, scene, rootUrl) {
612
- var _this = this;
613
- SerializationHelper.Parse(function () { return _this; }, source, scene, rootUrl);
531
+ PBRSubSurfaceConfiguration.prototype.getUniforms = function () {
532
+ return {
533
+ ubo: [
534
+ { name: "vRefractionMicrosurfaceInfos", size: 4, type: "vec4" },
535
+ { name: "vRefractionFilteringInfo", size: 2, type: "vec2" },
536
+ { name: "vTranslucencyIntensityInfos", size: 2, type: "vec2" },
537
+ { name: "vRefractionInfos", size: 4, type: "vec4" },
538
+ { name: "refractionMatrix", size: 16, type: "mat4" },
539
+ { name: "vThicknessInfos", size: 2, type: "vec2" },
540
+ { name: "vRefractionIntensityInfos", size: 2, type: "vec2" },
541
+ { name: "thicknessMatrix", size: 16, type: "mat4" },
542
+ { name: "refractionIntensityMatrix", size: 16, type: "mat4" },
543
+ { name: "translucencyIntensityMatrix", size: 16, type: "mat4" },
544
+ { name: "vThicknessParam", size: 2, type: "vec2" },
545
+ { name: "vDiffusionDistance", size: 3, type: "vec3" },
546
+ { name: "vTintColor", size: 4, type: "vec4" },
547
+ { name: "vSubSurfaceIntensity", size: 3, type: "vec3" },
548
+ { name: "vRefractionPosition", size: 3, type: "vec3" },
549
+ { name: "vRefractionSize", size: 3, type: "vec3" },
550
+ { name: "scatteringDiffusionProfile", size: 1, type: "float" },
551
+ ],
552
+ };
614
553
  };
615
554
  __decorate([
616
555
  serialize(),
@@ -700,6 +639,6 @@ var PBRSubSurfaceConfiguration = /** @class */ (function () {
700
639
  expandToProperty("_markAllSubMeshesAsTexturesDirty")
701
640
  ], PBRSubSurfaceConfiguration.prototype, "useGltfStyleTextures", void 0);
702
641
  return PBRSubSurfaceConfiguration;
703
- }());
642
+ }(MaterialPluginBase));
704
643
  export { PBRSubSurfaceConfiguration };
705
644
  //# sourceMappingURL=pbrSubSurfaceConfiguration.js.map