@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
@@ -4,11 +4,7 @@ import { Matrix } from "../../Maths/math.vector";
4
4
  import { SubMesh } from "../../Meshes/subMesh";
5
5
  import { AbstractMesh } from "../../Meshes/abstractMesh";
6
6
  import { Mesh } from "../../Meshes/mesh";
7
- import { IMaterialClearCoatDefines, PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration";
8
- import { IMaterialAnisotropicDefines, PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration";
9
- import { IMaterialBRDFDefines, PBRBRDFConfiguration } from "./pbrBRDFConfiguration";
10
- import { IMaterialSheenDefines, PBRSheenConfiguration } from "./pbrSheenConfiguration";
11
- import { IMaterialSubSurfaceDefines, PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration";
7
+ import { PBRBRDFConfiguration } from "./pbrBRDFConfiguration";
12
8
  import { PrePassConfiguration } from "../prePassConfiguration";
13
9
  import { Color3 } from '../../Maths/math.color';
14
10
  import { ImageProcessingConfiguration, IImageProcessingConfigurationDefines } from "../../Materials/imageProcessingConfiguration";
@@ -20,13 +16,17 @@ import { IAnimatable } from '../../Animations/animatable.interface';
20
16
  import "../../Materials/Textures/baseTexture.polynomial";
21
17
  import "../../Shaders/pbr.fragment";
22
18
  import "../../Shaders/pbr.vertex";
23
- import { IMaterialDetailMapDefines, DetailMapConfiguration } from '../material.detailMapConfiguration';
19
+ import { PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration";
20
+ import { PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration";
21
+ import { PBRSheenConfiguration } from "./pbrSheenConfiguration";
22
+ import { PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration";
23
+ import { DetailMapConfiguration } from "../material.detailMapConfiguration";
24
24
  declare type PrePassRenderer = import("../../Rendering/prePassRenderer").PrePassRenderer;
25
25
  /**
26
26
  * Manages the defines for the PBR Material.
27
27
  * @hidden
28
28
  */
29
- export declare class PBRMaterialDefines extends MaterialDefines implements IImageProcessingConfigurationDefines, IMaterialClearCoatDefines, IMaterialAnisotropicDefines, IMaterialBRDFDefines, IMaterialSheenDefines, IMaterialSubSurfaceDefines, IMaterialDetailMapDefines {
29
+ export declare class PBRMaterialDefines extends MaterialDefines implements IImageProcessingConfigurationDefines {
30
30
  PBR: boolean;
31
31
  NUM_SAMPLES: string;
32
32
  REALTIME_FILTERING: boolean;
@@ -46,9 +46,6 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
46
46
  GAMMAALBEDO: boolean;
47
47
  ALBEDODIRECTUV: number;
48
48
  VERTEXCOLOR: boolean;
49
- DETAIL: boolean;
50
- DETAILDIRECTUV: number;
51
- DETAIL_NORMALBLENDMETHOD: number;
52
49
  BAKED_VERTEX_ANIMATION_TEXTURE: boolean;
53
50
  AMBIENT: boolean;
54
51
  AMBIENTDIRECTUV: number;
@@ -121,7 +118,6 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
121
118
  INVERTCUBICMAP: boolean;
122
119
  USESPHERICALFROMREFLECTIONMAP: boolean;
123
120
  USEIRRADIANCEMAP: boolean;
124
- SPHERICAL_HARMONICS: boolean;
125
121
  USESPHERICALINVERTEX: boolean;
126
122
  REFLECTIONMAP_OPPOSITEZ: boolean;
127
123
  LODINREFLECTIONALPHA: boolean;
@@ -192,70 +188,18 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
192
188
  LOGARITHMICDEPTH: boolean;
193
189
  FORCENORMALFORWARD: boolean;
194
190
  SPECULARAA: boolean;
195
- CLEARCOAT: boolean;
196
- CLEARCOAT_DEFAULTIOR: boolean;
197
- CLEARCOAT_TEXTURE: boolean;
198
- CLEARCOAT_TEXTURE_ROUGHNESS: boolean;
199
- CLEARCOAT_TEXTUREDIRECTUV: number;
200
- CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV: number;
201
- CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE: boolean;
202
- CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL: boolean;
203
- CLEARCOAT_BUMP: boolean;
204
- CLEARCOAT_BUMPDIRECTUV: number;
205
- CLEARCOAT_REMAP_F0: boolean;
206
- CLEARCOAT_TINT: boolean;
207
- CLEARCOAT_TINT_TEXTURE: boolean;
208
- CLEARCOAT_TINT_GAMMATEXTURE: boolean;
209
- CLEARCOAT_TINT_TEXTUREDIRECTUV: number;
210
- ANISOTROPIC: boolean;
211
- ANISOTROPIC_TEXTURE: boolean;
212
- ANISOTROPIC_TEXTUREDIRECTUV: number;
213
- BRDF_V_HEIGHT_CORRELATED: boolean;
214
- MS_BRDF_ENERGY_CONSERVATION: boolean;
215
- SPECULAR_GLOSSINESS_ENERGY_CONSERVATION: boolean;
216
- SHEEN: boolean;
217
- SHEEN_TEXTURE: boolean;
218
- SHEEN_GAMMATEXTURE: boolean;
219
- SHEEN_TEXTURE_ROUGHNESS: boolean;
220
- SHEEN_TEXTUREDIRECTUV: number;
221
- SHEEN_TEXTURE_ROUGHNESSDIRECTUV: number;
222
- SHEEN_LINKWITHALBEDO: boolean;
223
- SHEEN_ROUGHNESS: boolean;
224
- SHEEN_ALBEDOSCALING: boolean;
225
- SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE: boolean;
226
- SHEEN_TEXTURE_ROUGHNESS_IDENTICAL: boolean;
227
- SUBSURFACE: boolean;
228
- SS_REFRACTION: boolean;
229
- SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE: boolean;
230
- SS_TRANSLUCENCY: boolean;
231
- SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE: boolean;
232
- SS_SCATTERING: boolean;
233
- SS_THICKNESSANDMASK_TEXTURE: boolean;
234
- SS_THICKNESSANDMASK_TEXTUREDIRECTUV: number;
235
- SS_HAS_THICKNESS: boolean;
236
- SS_REFRACTIONINTENSITY_TEXTURE: boolean;
237
- SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV: number;
238
- SS_TRANSLUCENCYINTENSITY_TEXTURE: boolean;
239
- SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV: number;
240
- SS_REFRACTIONMAP_3D: boolean;
241
- SS_REFRACTIONMAP_OPPOSITEZ: boolean;
242
- SS_LODINREFRACTIONALPHA: boolean;
243
- SS_GAMMAREFRACTION: boolean;
244
- SS_RGBDREFRACTION: boolean;
245
- SS_LINEARSPECULARREFRACTION: boolean;
246
- SS_LINKREFRACTIONTOTRANSPARENCY: boolean;
247
- SS_ALBEDOFORREFRACTIONTINT: boolean;
248
- SS_ALBEDOFORTRANSLUCENCYTINT: boolean;
249
- SS_USE_LOCAL_REFRACTIONMAP_CUBIC: boolean;
250
- SS_USE_THICKNESS_AS_DEPTH: boolean;
251
- SS_MASK_FROM_THICKNESS_TEXTURE: boolean;
252
- SS_USE_GLTF_TEXTURES: boolean;
253
191
  UNLIT: boolean;
254
192
  DEBUGMODE: number;
255
193
  /**
256
194
  * Initializes the PBR Material defines.
195
+ * @param externalProperties The external properties
257
196
  */
258
- constructor();
197
+ constructor(externalProperties?: {
198
+ [name: string]: {
199
+ type: string;
200
+ default: any;
201
+ };
202
+ });
259
203
  /**
260
204
  * Resets the PBR Material defines.
261
205
  */
@@ -749,6 +693,7 @@ export declare abstract class PBRBaseMaterial extends PushMaterial {
749
693
  * Defines the detail map parameters for the material.
750
694
  */
751
695
  readonly detailMap: DetailMapConfiguration;
696
+ protected _cacheHasRenderTargetTextures: boolean;
752
697
  /**
753
698
  * Instantiates a new PBRMaterial instance.
754
699
  *
@@ -823,10 +768,6 @@ export declare abstract class PBRBaseMaterial extends PushMaterial {
823
768
  * Initializes the uniform buffer layout for the shader.
824
769
  */
825
770
  buildUniformLayout(): void;
826
- /**
827
- * Unbinds the material from the mesh
828
- */
829
- unbind(): void;
830
771
  /**
831
772
  * Binds the submesh data.
832
773
  * @param world - The world matrix.
@@ -6,16 +6,13 @@ import { GetEnvironmentBRDFTexture } from "../../Misc/brdfTextureTools.js";
6
6
  import { Scene } from "../../scene.js";
7
7
  import { Vector4 } from "../../Maths/math.vector.js";
8
8
  import { VertexBuffer } from "../../Buffers/buffer.js";
9
- import { PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration.js";
10
- import { PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration.js";
11
9
  import { PBRBRDFConfiguration } from "./pbrBRDFConfiguration.js";
12
- import { PBRSheenConfiguration } from "./pbrSheenConfiguration.js";
13
- import { PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration.js";
14
10
  import { PrePassConfiguration } from "../prePassConfiguration.js";
15
11
  import { Color3, TmpColors } from '../../Maths/math.color.js';
16
12
  import { Scalar } from "../../Maths/math.scalar.js";
17
13
  import { ImageProcessingConfiguration } from "../../Materials/imageProcessingConfiguration.js";
18
14
  import { Material } from "../../Materials/material.js";
15
+ import { MaterialPluginEvent } from "../materialPluginEvent.js";
19
16
  import { MaterialDefines } from "../../Materials/materialDefines.js";
20
17
  import { PushMaterial } from "../../Materials/pushMaterial.js";
21
18
  import { MaterialHelper } from "../../Materials/materialHelper.js";
@@ -25,7 +22,11 @@ import "../../Materials/Textures/baseTexture.polynomial.js";
25
22
  import "../../Shaders/pbr.fragment.js";
26
23
  import "../../Shaders/pbr.vertex.js";
27
24
  import { EffectFallbacks } from '../effectFallbacks.js';
28
- import { DetailMapConfiguration } from '../material.detailMapConfiguration.js';
25
+ import { PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration.js";
26
+ import { PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration.js";
27
+ import { PBRSheenConfiguration } from "./pbrSheenConfiguration.js";
28
+ import { PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration.js";
29
+ import { DetailMapConfiguration } from "../material.detailMapConfiguration.js";
29
30
  var onCreatedEffectParameters = { effect: null, subMesh: null };
30
31
  /**
31
32
  * Manages the defines for the PBR Material.
@@ -35,9 +36,10 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
35
36
  __extends(PBRMaterialDefines, _super);
36
37
  /**
37
38
  * Initializes the PBR Material defines.
39
+ * @param externalProperties The external properties
38
40
  */
39
- function PBRMaterialDefines() {
40
- var _this = _super.call(this) || this;
41
+ function PBRMaterialDefines(externalProperties) {
42
+ var _this = _super.call(this, externalProperties) || this;
41
43
  _this.PBR = true;
42
44
  _this.NUM_SAMPLES = "0";
43
45
  _this.REALTIME_FILTERING = false;
@@ -57,9 +59,6 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
57
59
  _this.GAMMAALBEDO = false;
58
60
  _this.ALBEDODIRECTUV = 0;
59
61
  _this.VERTEXCOLOR = false;
60
- _this.DETAIL = false;
61
- _this.DETAILDIRECTUV = 0;
62
- _this.DETAIL_NORMALBLENDMETHOD = 0;
63
62
  _this.BAKED_VERTEX_ANIMATION_TEXTURE = false;
64
63
  _this.AMBIENT = false;
65
64
  _this.AMBIENTDIRECTUV = 0;
@@ -132,7 +131,6 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
132
131
  _this.INVERTCUBICMAP = false;
133
132
  _this.USESPHERICALFROMREFLECTIONMAP = false;
134
133
  _this.USEIRRADIANCEMAP = false;
135
- _this.SPHERICAL_HARMONICS = false;
136
134
  _this.USESPHERICALINVERTEX = false;
137
135
  _this.REFLECTIONMAP_OPPOSITEZ = false;
138
136
  _this.LODINREFLECTIONALPHA = false;
@@ -203,64 +201,6 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
203
201
  _this.LOGARITHMICDEPTH = false;
204
202
  _this.FORCENORMALFORWARD = false;
205
203
  _this.SPECULARAA = false;
206
- _this.CLEARCOAT = false;
207
- _this.CLEARCOAT_DEFAULTIOR = false;
208
- _this.CLEARCOAT_TEXTURE = false;
209
- _this.CLEARCOAT_TEXTURE_ROUGHNESS = false;
210
- _this.CLEARCOAT_TEXTUREDIRECTUV = 0;
211
- _this.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0;
212
- _this.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = false;
213
- _this.CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL = false;
214
- _this.CLEARCOAT_BUMP = false;
215
- _this.CLEARCOAT_BUMPDIRECTUV = 0;
216
- _this.CLEARCOAT_REMAP_F0 = true;
217
- _this.CLEARCOAT_TINT = false;
218
- _this.CLEARCOAT_TINT_TEXTURE = false;
219
- _this.CLEARCOAT_TINT_GAMMATEXTURE = false;
220
- _this.CLEARCOAT_TINT_TEXTUREDIRECTUV = 0;
221
- _this.ANISOTROPIC = false;
222
- _this.ANISOTROPIC_TEXTURE = false;
223
- _this.ANISOTROPIC_TEXTUREDIRECTUV = 0;
224
- _this.BRDF_V_HEIGHT_CORRELATED = false;
225
- _this.MS_BRDF_ENERGY_CONSERVATION = false;
226
- _this.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;
227
- _this.SHEEN = false;
228
- _this.SHEEN_TEXTURE = false;
229
- _this.SHEEN_GAMMATEXTURE = false;
230
- _this.SHEEN_TEXTURE_ROUGHNESS = false;
231
- _this.SHEEN_TEXTUREDIRECTUV = 0;
232
- _this.SHEEN_TEXTURE_ROUGHNESSDIRECTUV = 0;
233
- _this.SHEEN_LINKWITHALBEDO = false;
234
- _this.SHEEN_ROUGHNESS = false;
235
- _this.SHEEN_ALBEDOSCALING = false;
236
- _this.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE = false;
237
- _this.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL = false;
238
- _this.SUBSURFACE = false;
239
- _this.SS_REFRACTION = false;
240
- _this.SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE = false;
241
- _this.SS_TRANSLUCENCY = false;
242
- _this.SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE = false;
243
- _this.SS_SCATTERING = false;
244
- _this.SS_THICKNESSANDMASK_TEXTURE = false;
245
- _this.SS_THICKNESSANDMASK_TEXTUREDIRECTUV = 0;
246
- _this.SS_HAS_THICKNESS = false;
247
- _this.SS_REFRACTIONINTENSITY_TEXTURE = false;
248
- _this.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV = 0;
249
- _this.SS_TRANSLUCENCYINTENSITY_TEXTURE = false;
250
- _this.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV = 0;
251
- _this.SS_REFRACTIONMAP_3D = false;
252
- _this.SS_REFRACTIONMAP_OPPOSITEZ = false;
253
- _this.SS_LODINREFRACTIONALPHA = false;
254
- _this.SS_GAMMAREFRACTION = false;
255
- _this.SS_RGBDREFRACTION = false;
256
- _this.SS_LINEARSPECULARREFRACTION = false;
257
- _this.SS_LINKREFRACTIONTOTRANSPARENCY = false;
258
- _this.SS_ALBEDOFORREFRACTIONTINT = false;
259
- _this.SS_ALBEDOFORTRANSLUCENCYTINT = false;
260
- _this.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = false;
261
- _this.SS_USE_THICKNESS_AS_DEPTH = false;
262
- _this.SS_MASK_FROM_THICKNESS_TEXTURE = false;
263
- _this.SS_USE_GLTF_TEXTURES = false;
264
204
  _this.UNLIT = false;
265
205
  _this.DEBUGMODE = 0;
266
206
  _this.rebuild();
@@ -688,27 +628,13 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
688
628
  * You can use the factor to better multiply the final value.
689
629
  */
690
630
  _this.debugFactor = 1;
691
- /**
692
- * Defines the clear coat layer parameters for the material.
693
- */
694
- _this.clearCoat = new PBRClearCoatConfiguration(_this._markAllSubMeshesAsTexturesDirty.bind(_this));
695
- /**
696
- * Defines the anisotropic parameters for the material.
697
- */
698
- _this.anisotropy = new PBRAnisotropicConfiguration(_this._markAllSubMeshesAsTexturesDirty.bind(_this));
699
- /**
700
- * Defines the BRDF parameters for the material.
701
- */
702
- _this.brdf = new PBRBRDFConfiguration(_this._markAllSubMeshesAsMiscDirty.bind(_this));
703
- /**
704
- * Defines the Sheen parameters for the material.
705
- */
706
- _this.sheen = new PBRSheenConfiguration(_this._markAllSubMeshesAsTexturesDirty.bind(_this));
707
- /**
708
- * Defines the detail map parameters for the material.
709
- */
710
- _this.detailMap = new DetailMapConfiguration(_this._markAllSubMeshesAsTexturesDirty.bind(_this));
711
- _this.buildUniformLayout();
631
+ _this._cacheHasRenderTargetTextures = false;
632
+ _this.brdf = new PBRBRDFConfiguration(_this);
633
+ _this.clearCoat = new PBRClearCoatConfiguration(_this);
634
+ _this.anisotropy = new PBRAnisotropicConfiguration(_this);
635
+ _this.sheen = new PBRSheenConfiguration(_this);
636
+ _this.subSurface = new PBRSubSurfaceConfiguration(_this);
637
+ _this.detailMap = new DetailMapConfiguration(_this);
712
638
  // Setup the default processing configuration to the scene.
713
639
  _this._attachImageProcessingConfiguration(null);
714
640
  _this.getRenderTargetTextures = function () {
@@ -716,11 +642,11 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
716
642
  if (MaterialFlags.ReflectionTextureEnabled && _this._reflectionTexture && _this._reflectionTexture.isRenderTarget) {
717
643
  _this._renderTargets.push(_this._reflectionTexture);
718
644
  }
719
- _this.subSurface.fillRenderTargetTextures(_this._renderTargets);
645
+ _this._eventInfo.renderTargets = _this._renderTargets;
646
+ _this._callbackPluginEventFillRenderTargetTextures(_this._eventInfo);
720
647
  return _this._renderTargets;
721
648
  };
722
649
  _this._environmentBRDFTexture = GetEnvironmentBRDFTexture(scene);
723
- _this.subSurface = new PBRSubSurfaceConfiguration(_this._markAllSubMeshesAsTexturesDirty.bind(_this), _this._markScenePrePassDirty.bind(_this), scene);
724
650
  _this.prePassConfiguration = new PrePassConfiguration();
725
651
  return _this;
726
652
  }
@@ -797,7 +723,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
797
723
  if (MaterialFlags.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) {
798
724
  return true;
799
725
  }
800
- return this.subSurface.hasRenderTargetTextures();
726
+ return this._cacheHasRenderTargetTextures;
801
727
  },
802
728
  enumerable: false,
803
729
  configurable: true
@@ -807,7 +733,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
807
733
  * Can this material render to prepass
808
734
  */
809
735
  get: function () {
810
- return true;
736
+ return !this.disableDepthWrite;
811
737
  },
812
738
  enumerable: false,
813
739
  configurable: true
@@ -839,9 +765,10 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
839
765
  * Returns true if alpha blending should be disabled.
840
766
  */
841
767
  get: function () {
842
- return (this.subSurface.disableAlphaBlending ||
843
- this._transparencyMode === PBRBaseMaterial.PBRMATERIAL_OPAQUE ||
844
- this._transparencyMode === PBRBaseMaterial.PBRMATERIAL_ALPHATEST);
768
+ var _a;
769
+ return (this._transparencyMode === PBRBaseMaterial.PBRMATERIAL_OPAQUE ||
770
+ this._transparencyMode === PBRBaseMaterial.PBRMATERIAL_ALPHATEST ||
771
+ ((_a = this.subSurface) === null || _a === void 0 ? void 0 : _a.disableAlphaBlending));
845
772
  },
846
773
  enumerable: false,
847
774
  configurable: true
@@ -859,10 +786,11 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
859
786
  * Specifies whether or not this material should be rendered in alpha test mode.
860
787
  */
861
788
  PBRBaseMaterial.prototype.needAlphaTesting = function () {
789
+ var _a;
862
790
  if (this._forceAlphaTest) {
863
791
  return true;
864
792
  }
865
- if (this.subSurface.disableAlphaBlending) {
793
+ if ((_a = this.subSurface) === null || _a === void 0 ? void 0 : _a.disableAlphaBlending) {
866
794
  return false;
867
795
  }
868
796
  return this._hasAlphaChannel() && (this._transparencyMode == null || this._transparencyMode === PBRBaseMaterial.PBRMATERIAL_ALPHATEST);
@@ -893,13 +821,17 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
893
821
  * @returns - boolean indicating that the submesh is ready or not.
894
822
  */
895
823
  PBRBaseMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
824
+ if (!this._uniformBufferLayoutBuilt) {
825
+ this.buildUniformLayout();
826
+ }
896
827
  if (subMesh.effect && this.isFrozen) {
897
828
  if (subMesh.effect._wasPreviouslyReady) {
898
829
  return true;
899
830
  }
900
831
  }
901
832
  if (!subMesh.materialDefines) {
902
- subMesh.materialDefines = new PBRMaterialDefines();
833
+ this._callbackPluginEventGeneric(MaterialPluginEvent.GetDefineNames, this._eventInfo);
834
+ subMesh.materialDefines = new PBRMaterialDefines(this._eventInfo.defineNames);
903
835
  }
904
836
  var defines = subMesh.materialDefines;
905
837
  if (this._isReadyForSubMesh(subMesh)) {
@@ -908,6 +840,9 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
908
840
  var scene = this.getScene();
909
841
  var engine = scene.getEngine();
910
842
  if (defines._areTexturesDirty) {
843
+ this._eventInfo.hasRenderTargetTextures = false;
844
+ this._callbackPluginEventHasRenderTargetTextures(this._eventInfo);
845
+ this._cacheHasRenderTargetTextures = this._eventInfo.hasRenderTargetTextures;
911
846
  if (scene.texturesEnabled) {
912
847
  if (this._albedoTexture && MaterialFlags.DiffuseTextureEnabled) {
913
848
  if (!this._albedoTexture.isReadyOrNotBlocking()) {
@@ -984,11 +919,10 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
984
919
  }
985
920
  }
986
921
  }
987
- if (!this.subSurface.isReadyForSubMesh(defines, scene) ||
988
- !this.clearCoat.isReadyForSubMesh(defines, scene, engine, this._disableBumpMap) ||
989
- !this.sheen.isReadyForSubMesh(defines, scene) ||
990
- !this.anisotropy.isReadyForSubMesh(defines, scene) ||
991
- !this.detailMap.isReadyForSubMesh(defines, scene)) {
922
+ this._eventInfo.isReadyForSubMesh = true;
923
+ this._eventInfo.defines = defines;
924
+ this._callbackPluginEventIsReadyForSubMesh(this._eventInfo);
925
+ if (!this._eventInfo.isReadyForSubMesh) {
992
926
  return false;
993
927
  }
994
928
  if (defines._areImageProcessingDirty && this._imageProcessingConfiguration) {
@@ -1077,10 +1011,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1077
1011
  if (defines.PARALLAXOCCLUSION) {
1078
1012
  fallbacks.addFallback(fallbackRank++, "PARALLAXOCCLUSION");
1079
1013
  }
1080
- fallbackRank = PBRAnisotropicConfiguration.AddFallbacks(defines, fallbacks, fallbackRank);
1081
- fallbackRank = PBRAnisotropicConfiguration.AddFallbacks(defines, fallbacks, fallbackRank);
1082
- fallbackRank = PBRSubSurfaceConfiguration.AddFallbacks(defines, fallbacks, fallbackRank);
1083
- fallbackRank = PBRSheenConfiguration.AddFallbacks(defines, fallbacks, fallbackRank);
1084
1014
  if (defines.ENVIRONMENTBRDF) {
1085
1015
  fallbacks.addFallback(fallbackRank++, "ENVIRONMENTBRDF");
1086
1016
  }
@@ -1167,16 +1097,13 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1167
1097
  "microSurfaceSampler", "environmentBrdfSampler", "boneSampler", "metallicReflectanceSampler", "reflectanceSampler", "morphTargets",
1168
1098
  "oitDepthSampler", "oitFrontColorSampler"];
1169
1099
  var uniformBuffers = ["Material", "Scene", "Mesh"];
1170
- DetailMapConfiguration.AddUniforms(uniforms);
1171
- DetailMapConfiguration.AddSamplers(samplers);
1172
- PBRSubSurfaceConfiguration.AddUniforms(uniforms);
1173
- PBRSubSurfaceConfiguration.AddSamplers(samplers);
1174
- PBRClearCoatConfiguration.AddUniforms(uniforms);
1175
- PBRClearCoatConfiguration.AddSamplers(samplers);
1176
- PBRAnisotropicConfiguration.AddUniforms(uniforms);
1177
- PBRAnisotropicConfiguration.AddSamplers(samplers);
1178
- PBRSheenConfiguration.AddUniforms(uniforms);
1179
- PBRSheenConfiguration.AddSamplers(samplers);
1100
+ this._eventInfo.fallbacks = fallbacks;
1101
+ this._eventInfo.fallbackRank = fallbackRank;
1102
+ this._eventInfo.defines = defines;
1103
+ this._eventInfo.uniforms = uniforms;
1104
+ this._eventInfo.samplers = samplers;
1105
+ this._eventInfo.customCode = undefined;
1106
+ this._callbackPluginEventGeneric(MaterialPluginEvent.PrepareEffect, this._eventInfo);
1180
1107
  PrePassConfiguration.AddUniforms(uniforms);
1181
1108
  PrePassConfiguration.AddSamplers(samplers);
1182
1109
  if (ImageProcessingConfiguration) {
@@ -1206,6 +1133,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1206
1133
  onError: onError,
1207
1134
  indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: defines.NUM_MORPH_INFLUENCERS },
1208
1135
  processFinalCode: csnrOptions.processFinalCode,
1136
+ processCodeAfterIncludes: this._eventInfo.customCode,
1209
1137
  multiTarget: defines.PREPASS
1210
1138
  }, engine);
1211
1139
  };
@@ -1497,12 +1425,9 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1497
1425
  defines.DEBUGMODE = this._debugMode;
1498
1426
  }
1499
1427
  // External config
1500
- this.detailMap.prepareDefines(defines, scene);
1501
- this.subSurface.prepareDefines(defines, scene);
1502
- this.clearCoat.prepareDefines(defines, scene);
1503
- this.anisotropy.prepareDefines(defines, mesh, scene);
1504
- this.brdf.prepareDefines(defines);
1505
- this.sheen.prepareDefines(defines, scene);
1428
+ this._eventInfo.defines = defines;
1429
+ this._eventInfo.mesh = mesh;
1430
+ this._callbackPluginEventPrepareDefines(this._eventInfo);
1506
1431
  // Values that need to be evaluated on every frame
1507
1432
  MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false, useClipPlane, useThinInstances);
1508
1433
  // Attribs
@@ -1514,7 +1439,11 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1514
1439
  PBRBaseMaterial.prototype.forceCompilation = function (mesh, onCompiled, options) {
1515
1440
  var _this = this;
1516
1441
  var localOptions = __assign({ clipPlane: false, useInstances: false }, options);
1517
- var defines = new PBRMaterialDefines();
1442
+ if (!this._uniformBufferLayoutBuilt) {
1443
+ this.buildUniformLayout();
1444
+ }
1445
+ this._callbackPluginEventGeneric(MaterialPluginEvent.GetDefineNames, this._eventInfo);
1446
+ var defines = new PBRMaterialDefines(this._eventInfo.defineNames);
1518
1447
  var effect = this._prepareEffect(mesh, defines, undefined, undefined, localOptions.useInstances, localOptions.clipPlane, mesh.hasThinInstances);
1519
1448
  if (this._onEffectCreatedObservable) {
1520
1449
  onCreatedEffectParameters.effect = effect;
@@ -1576,11 +1505,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1576
1505
  ubo.addUniform("metallicReflectanceMatrix", 16);
1577
1506
  ubo.addUniform("vReflectanceInfos", 2);
1578
1507
  ubo.addUniform("reflectanceMatrix", 16);
1579
- PBRClearCoatConfiguration.PrepareUniformBuffer(ubo);
1580
- PBRAnisotropicConfiguration.PrepareUniformBuffer(ubo);
1581
- PBRSheenConfiguration.PrepareUniformBuffer(ubo);
1582
- PBRSubSurfaceConfiguration.PrepareUniformBuffer(ubo);
1583
- DetailMapConfiguration.PrepareUniformBuffer(ubo);
1584
1508
  ubo.addUniform("vSphericalL00", 3);
1585
1509
  ubo.addUniform("vSphericalL1_1", 3);
1586
1510
  ubo.addUniform("vSphericalL10", 3);
@@ -1599,26 +1523,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1599
1523
  ubo.addUniform("vSphericalXY", 3);
1600
1524
  ubo.addUniform("vSphericalYZ", 3);
1601
1525
  ubo.addUniform("vSphericalZX", 3);
1602
- ubo.create();
1603
- };
1604
- /**
1605
- * Unbinds the material from the mesh
1606
- */
1607
- PBRBaseMaterial.prototype.unbind = function () {
1608
- if (this._activeEffect && !this.getScene().getEngine()._features.needToAlwaysBindUniformBuffers) {
1609
- var needFlag = false;
1610
- if (this._reflectionTexture && this._reflectionTexture.isRenderTarget) {
1611
- this._activeEffect.setTexture("reflection2DSampler", null);
1612
- needFlag = true;
1613
- }
1614
- if (this.subSurface.unbind(this._activeEffect)) {
1615
- needFlag = true;
1616
- }
1617
- if (needFlag) {
1618
- this._markAllSubMeshesAsTexturesDirty();
1619
- }
1620
- }
1621
- _super.prototype.unbind.call(this);
1526
+ _super.prototype.buildUniformLayout.call(this);
1622
1527
  };
1623
1528
  /**
1624
1529
  * Binds the submesh data.
@@ -1627,7 +1532,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1627
1532
  * @param subMesh - A submesh of the BJS mesh.
1628
1533
  */
1629
1534
  PBRBaseMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
1630
- var _a;
1535
+ var _a, _b, _c, _d;
1631
1536
  var scene = this.getScene();
1632
1537
  var defines = subMesh.materialDefines;
1633
1538
  if (!defines) {
@@ -1644,8 +1549,9 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1644
1549
  var engine = scene.getEngine();
1645
1550
  // Binding unconditionally
1646
1551
  this._uniformBuffer.bindToEffect(effect, "Material");
1647
- this.subSurface.hardBindForSubMesh(this._uniformBuffer, scene, engine, this.isFrozen, defines.LODBASEDMICROSFURACE, this.realTimeFiltering, subMesh);
1648
1552
  this.prePassConfiguration.bindForSubMesh(this._activeEffect, scene, mesh, world, this.isFrozen);
1553
+ this._eventInfo.subMesh = subMesh;
1554
+ this._callbackPluginEventHardBindForSubMesh(this._eventInfo);
1649
1555
  // Normal Matrix
1650
1556
  if (defines.OBJECTSPACE_NORMALMAP) {
1651
1557
  world.toNormalMatrix(this._normalMatrix);
@@ -1766,7 +1672,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1766
1672
  TmpColors.Color3[0].r = (this._metallic === undefined || this._metallic === null) ? 1 : this._metallic;
1767
1673
  TmpColors.Color3[0].g = (this._roughness === undefined || this._roughness === null) ? 1 : this._roughness;
1768
1674
  ubo.updateColor4("vReflectivityColor", TmpColors.Color3[0], 1);
1769
- var ior = this.subSurface.indexOfRefraction;
1675
+ var ior = (_b = (_a = this.subSurface) === null || _a === void 0 ? void 0 : _a._indexOfRefraction) !== null && _b !== void 0 ? _b : 1.5;
1770
1676
  var outside_ior = 1; // consider air as clear coat and other layers would remap in the shader.
1771
1677
  // We are here deriving our default reflectance from a common value for none metallic surface.
1772
1678
  // Based of the schlick fresnel approximation model
@@ -1782,7 +1688,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1782
1688
  }
1783
1689
  ubo.updateColor3("vEmissiveColor", MaterialFlags.EmissiveTextureEnabled ? this._emissiveColor : Color3.BlackReadOnly);
1784
1690
  ubo.updateColor3("vReflectionColor", this._reflectionColor);
1785
- if (!defines.SS_REFRACTION && this.subSurface.linkRefractionWithTransparency) {
1691
+ if (!defines.SS_REFRACTION && ((_c = this.subSurface) === null || _c === void 0 ? void 0 : _c._linkRefractionWithTransparency)) {
1786
1692
  ubo.updateColor4("vAlbedoColor", this._albedoColor, 1);
1787
1693
  }
1788
1694
  else {
@@ -1857,11 +1763,8 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1857
1763
  if (this.getScene().useOrderIndependentTransparency && this.needAlphaBlendingForMesh(mesh)) {
1858
1764
  this.getScene().depthPeelingRenderer.bind(effect);
1859
1765
  }
1860
- this.detailMap.bindForSubMesh(ubo, scene, this.isFrozen);
1861
- this.subSurface.bindForSubMesh(ubo, scene, engine, this.isFrozen, defines.LODBASEDMICROSFURACE, this.realTimeFiltering, subMesh);
1862
- this.clearCoat.bindForSubMesh(ubo, scene, engine, this._disableBumpMap, this.isFrozen, this._invertNormalMapX, this._invertNormalMapY, subMesh);
1863
- this.anisotropy.bindForSubMesh(ubo, scene, this.isFrozen);
1864
- this.sheen.bindForSubMesh(ubo, scene, this.isFrozen, subMesh);
1766
+ this._eventInfo.subMesh = subMesh;
1767
+ this._callbackPluginEventBindForSubMesh(this._eventInfo);
1865
1768
  // Clip plane
1866
1769
  MaterialHelper.BindClipPlane(this._activeEffect, scene);
1867
1770
  this.bindEyePosition(effect);
@@ -1885,7 +1788,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1885
1788
  MaterialHelper.BindMorphTargetParameters(mesh, this._activeEffect);
1886
1789
  }
1887
1790
  if (defines.BAKED_VERTEX_ANIMATION_TEXTURE) {
1888
- (_a = mesh.bakedVertexAnimationManager) === null || _a === void 0 ? void 0 : _a.bind(effect, defines.INSTANCES);
1791
+ (_d = mesh.bakedVertexAnimationManager) === null || _d === void 0 ? void 0 : _d.bind(effect, defines.INSTANCES);
1889
1792
  }
1890
1793
  // image processing
1891
1794
  this._imageProcessingConfiguration.bind(this._activeEffect);
@@ -1900,7 +1803,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1900
1803
  * @returns - Array of animatable textures.
1901
1804
  */
1902
1805
  PBRBaseMaterial.prototype.getAnimatables = function () {
1903
- var results = [];
1806
+ var results = _super.prototype.getAnimatables.call(this);
1904
1807
  if (this._albedoTexture && this._albedoTexture.animations && this._albedoTexture.animations.length > 0) {
1905
1808
  results.push(this._albedoTexture);
1906
1809
  }
@@ -1928,11 +1831,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1928
1831
  if (this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0) {
1929
1832
  results.push(this._lightmapTexture);
1930
1833
  }
1931
- this.detailMap.getAnimatables(results);
1932
- this.subSurface.getAnimatables(results);
1933
- this.clearCoat.getAnimatables(results);
1934
- this.sheen.getAnimatables(results);
1935
- this.anisotropy.getAnimatables(results);
1936
1834
  return results;
1937
1835
  };
1938
1836
  /**
@@ -1987,11 +1885,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1987
1885
  if (this._lightmapTexture) {
1988
1886
  activeTextures.push(this._lightmapTexture);
1989
1887
  }
1990
- this.detailMap.getActiveTextures(activeTextures);
1991
- this.subSurface.getActiveTextures(activeTextures);
1992
- this.clearCoat.getActiveTextures(activeTextures);
1993
- this.sheen.getActiveTextures(activeTextures);
1994
- this.anisotropy.getActiveTextures(activeTextures);
1995
1888
  return activeTextures;
1996
1889
  };
1997
1890
  /**
@@ -2036,18 +1929,15 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
2036
1929
  if (this._lightmapTexture === texture) {
2037
1930
  return true;
2038
1931
  }
2039
- return this.detailMap.hasTexture(texture) ||
2040
- this.subSurface.hasTexture(texture) ||
2041
- this.clearCoat.hasTexture(texture) ||
2042
- this.sheen.hasTexture(texture) ||
2043
- this.anisotropy.hasTexture(texture);
1932
+ return false;
2044
1933
  };
2045
1934
  /**
2046
1935
  * Sets the required values to the prepass renderer.
2047
1936
  * @param prePassRenderer defines the prepass renderer to setup
2048
1937
  */
2049
1938
  PBRBaseMaterial.prototype.setPrePassRenderer = function (prePassRenderer) {
2050
- if (this.subSurface.isScatteringEnabled) {
1939
+ var _a;
1940
+ if ((_a = this.subSurface) === null || _a === void 0 ? void 0 : _a.isScatteringEnabled) {
2051
1941
  var subSurfaceConfiguration = this.getScene().enableSubSurfaceForPrePass();
2052
1942
  if (subSurfaceConfiguration) {
2053
1943
  subSurfaceConfiguration.enabled = true;
@@ -2080,11 +1970,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
2080
1970
  (_l = this._reflectanceTexture) === null || _l === void 0 ? void 0 : _l.dispose();
2081
1971
  (_m = this._microSurfaceTexture) === null || _m === void 0 ? void 0 : _m.dispose();
2082
1972
  }
2083
- this.detailMap.dispose(forceDisposeTextures);
2084
- this.subSurface.dispose(forceDisposeTextures);
2085
- this.clearCoat.dispose(forceDisposeTextures);
2086
- this.sheen.dispose(forceDisposeTextures);
2087
- this.anisotropy.dispose(forceDisposeTextures);
2088
1973
  this._renderTargets.dispose();
2089
1974
  if (this._imageProcessingConfiguration && this._imageProcessingObserver) {
2090
1975
  this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);