@babylonjs/core 9.11.0 → 9.12.1

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 (1078) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +8 -5
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animatable.core.d.ts +1 -1
  5. package/Animations/animatable.core.js +2 -2
  6. package/Animations/animatable.core.js.map +1 -1
  7. package/Animations/animationPropertiesOverride.js +1 -1
  8. package/Animations/animationPropertiesOverride.js.map +1 -1
  9. package/Animations/animatorAvatar.d.ts +2 -2
  10. package/Animations/animatorAvatar.js +3 -3
  11. package/Animations/animatorAvatar.js.map +1 -1
  12. package/Animations/pathCursor.d.ts +1 -1
  13. package/Animations/pathCursor.js +1 -1
  14. package/Animations/pathCursor.js.map +1 -1
  15. package/Animations/runtimeAnimation.d.ts +1 -1
  16. package/Animations/runtimeAnimation.js +2 -2
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Audio/analyser.js +1 -1
  19. package/Audio/analyser.js.map +1 -1
  20. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
  21. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
  22. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
  23. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
  24. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
  25. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
  26. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
  27. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
  28. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
  29. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
  30. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  31. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  32. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  33. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  34. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  35. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  36. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  37. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  38. package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
  39. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
  40. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  41. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  42. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  43. package/Behaviors/Cameras/framingBehavior.js +2 -2
  44. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  45. package/Behaviors/Cameras/interpolatingBehavior.d.ts +28 -1
  46. package/Behaviors/Cameras/interpolatingBehavior.js +64 -22
  47. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  48. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  49. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  50. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
  51. package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
  52. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  53. package/Behaviors/Meshes/followBehavior.js +1 -1
  54. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  55. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  56. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  57. package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
  58. package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
  60. package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
  61. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  62. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
  63. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
  64. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  65. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
  66. package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
  67. package/Bones/boneIKController.d.ts +1 -1
  68. package/Bones/boneIKController.js +1 -1
  69. package/Bones/boneIKController.js.map +1 -1
  70. package/Bones/boneLookController.d.ts +1 -1
  71. package/Bones/boneLookController.js +1 -1
  72. package/Bones/boneLookController.js.map +1 -1
  73. package/Bones/skeleton.d.ts +2 -2
  74. package/Bones/skeleton.functions.d.ts +1 -1
  75. package/Bones/skeleton.functions.js +3 -3
  76. package/Bones/skeleton.functions.js.map +1 -1
  77. package/Bones/skeleton.js +3 -4
  78. package/Bones/skeleton.js.map +1 -1
  79. package/Buffers/buffer.align.pure.js +6 -0
  80. package/Buffers/buffer.align.pure.js.map +1 -1
  81. package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
  82. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  83. package/Buffers/buffer.pure.d.ts +8 -0
  84. package/Buffers/buffer.pure.js +31 -2
  85. package/Buffers/buffer.pure.js.map +1 -1
  86. package/Buffers/bufferUtils.js +17 -5
  87. package/Buffers/bufferUtils.js.map +1 -1
  88. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
  89. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  90. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  91. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  92. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  93. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  94. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  95. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  96. package/Cameras/Inputs/flyCameraKeyboardInput.js +11 -3
  97. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  98. package/Cameras/Inputs/flyCameraMouseInput.d.ts +2 -0
  99. package/Cameras/Inputs/flyCameraMouseInput.js +16 -4
  100. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  101. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  102. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  103. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
  104. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  105. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  106. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  107. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +27 -7
  108. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  109. package/Cameras/Inputs/freeCameraMouseInput.d.ts +14 -0
  110. package/Cameras/Inputs/freeCameraMouseInput.js +27 -5
  111. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  112. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  113. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  114. package/Cameras/Inputs/freeCameraTouchInput.js +18 -7
  115. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  116. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +9 -2
  117. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  118. package/Cameras/Limits/geospatialLimits.d.ts +1 -1
  119. package/Cameras/Limits/geospatialLimits.js +1 -1
  120. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  121. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  122. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  123. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
  124. package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
  125. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  126. package/Cameras/RigModes/vrRigMode.js +2 -2
  127. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  128. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  129. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
  130. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  131. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  132. package/Cameras/VR/vrCameraMetrics.js +1 -1
  133. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  134. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  135. package/Cameras/cameraInputsManager.d.ts +1 -1
  136. package/Cameras/cameraInputsManager.js +1 -1
  137. package/Cameras/cameraInputsManager.js.map +1 -1
  138. package/Cameras/flyCamera.pure.d.ts +8 -0
  139. package/Cameras/flyCamera.pure.js.map +1 -1
  140. package/Cameras/freeCamera.pure.d.ts +8 -0
  141. package/Cameras/freeCamera.pure.js.map +1 -1
  142. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  143. package/Cameras/geospatialCamera.pure.js +39 -14
  144. package/Cameras/geospatialCamera.pure.js.map +1 -1
  145. package/Cameras/geospatialCameraMovement.js +2 -2
  146. package/Cameras/geospatialCameraMovement.js.map +1 -1
  147. package/Cameras/index.d.ts +1 -0
  148. package/Cameras/index.js +1 -0
  149. package/Cameras/index.js.map +1 -1
  150. package/Cameras/pure.d.ts +1 -0
  151. package/Cameras/pure.js +1 -0
  152. package/Cameras/pure.js.map +1 -1
  153. package/Cameras/targetCamera.pure.d.ts +25 -0
  154. package/Cameras/targetCamera.pure.js +83 -25
  155. package/Cameras/targetCamera.pure.js.map +1 -1
  156. package/Cameras/targetCameraMovement.d.ts +56 -0
  157. package/Cameras/targetCameraMovement.js +63 -0
  158. package/Cameras/targetCameraMovement.js.map +1 -0
  159. package/Collisions/collider.d.ts +1 -1
  160. package/Collisions/collider.js +1 -1
  161. package/Collisions/collider.js.map +1 -1
  162. package/Collisions/gpuPicker.d.ts +1 -1
  163. package/Collisions/gpuPicker.js +5 -5
  164. package/Collisions/gpuPicker.js.map +1 -1
  165. package/Collisions/meshCollisionData.d.ts +1 -1
  166. package/Collisions/meshCollisionData.js +1 -1
  167. package/Collisions/meshCollisionData.js.map +1 -1
  168. package/Collisions/pickingInfo.d.ts +1 -1
  169. package/Collisions/pickingInfo.js +2 -2
  170. package/Collisions/pickingInfo.js.map +1 -1
  171. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  172. package/Culling/Octrees/octreeBlock.js +1 -1
  173. package/Culling/Octrees/octreeBlock.js.map +1 -1
  174. package/Culling/boundingBox.d.ts +1 -1
  175. package/Culling/boundingBox.js +1 -1
  176. package/Culling/boundingBox.js.map +1 -1
  177. package/Culling/boundingInfo.d.ts +1 -1
  178. package/Culling/boundingInfo.js +1 -1
  179. package/Culling/boundingInfo.js.map +1 -1
  180. package/Culling/boundingSphere.d.ts +1 -1
  181. package/Culling/boundingSphere.js +1 -1
  182. package/Culling/boundingSphere.js.map +1 -1
  183. package/Culling/ray.core.d.ts +1 -1
  184. package/Culling/ray.core.js +1 -1
  185. package/Culling/ray.core.js.map +1 -1
  186. package/Debug/axesViewer.d.ts +1 -1
  187. package/Debug/axesViewer.js +3 -3
  188. package/Debug/axesViewer.js.map +1 -1
  189. package/Debug/boneAxesViewer.d.ts +1 -1
  190. package/Debug/boneAxesViewer.js +1 -1
  191. package/Debug/boneAxesViewer.js.map +1 -1
  192. package/Debug/directionalLightFrustumViewer.d.ts +1 -1
  193. package/Debug/directionalLightFrustumViewer.js +6 -6
  194. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  195. package/Debug/rayHelper.d.ts +1 -1
  196. package/Debug/rayHelper.js +2 -2
  197. package/Debug/rayHelper.js.map +1 -1
  198. package/Debug/skeletonViewer.d.ts +2 -2
  199. package/Debug/skeletonViewer.js +10 -10
  200. package/Debug/skeletonViewer.js.map +1 -1
  201. package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
  202. package/DeviceInput/internalDeviceSourceManager.js +0 -1
  203. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  204. package/DeviceInput/webDeviceInputSystem.js +1 -1
  205. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  206. package/Engines/AbstractEngine/abstractEngine.scissor.d.ts +18 -0
  207. package/Engines/AbstractEngine/abstractEngine.scissor.js +2 -0
  208. package/Engines/AbstractEngine/abstractEngine.scissor.js.map +1 -0
  209. package/Engines/Extensions/engine.views.d.ts +1 -1
  210. package/Engines/Extensions/engine.views.js +1 -1
  211. package/Engines/Extensions/engine.views.js.map +1 -1
  212. package/Engines/Native/nativeHelpers.js +4 -1
  213. package/Engines/Native/nativeHelpers.js.map +1 -1
  214. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  215. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
  216. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  217. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  218. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  219. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  220. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  221. package/Engines/abstractEngine.pure.js +2 -2
  222. package/Engines/abstractEngine.pure.js.map +1 -1
  223. package/Engines/constants.d.ts +4 -0
  224. package/Engines/constants.js +4 -0
  225. package/Engines/constants.js.map +1 -1
  226. package/Engines/engine.d.ts +1 -0
  227. package/Engines/engine.js +1 -0
  228. package/Engines/engine.js.map +1 -1
  229. package/Engines/engine.pure.d.ts +0 -12
  230. package/Engines/engine.pure.js +0 -20
  231. package/Engines/engine.pure.js.map +1 -1
  232. package/Engines/engineFactory.d.ts +2 -2
  233. package/Engines/engineFactory.js +3 -3
  234. package/Engines/engineFactory.js.map +1 -1
  235. package/Engines/nullEngine.pure.d.ts +66 -0
  236. package/Engines/nullEngine.pure.js +93 -0
  237. package/Engines/nullEngine.pure.js.map +1 -1
  238. package/Engines/pure.d.ts +1 -0
  239. package/Engines/pure.js +1 -0
  240. package/Engines/pure.js.map +1 -1
  241. package/Engines/thinEngine.scissor.d.ts +6 -0
  242. package/Engines/thinEngine.scissor.js +9 -0
  243. package/Engines/thinEngine.scissor.js.map +1 -0
  244. package/Engines/thinEngine.scissor.pure.d.ts +6 -0
  245. package/Engines/thinEngine.scissor.pure.js +24 -0
  246. package/Engines/thinEngine.scissor.pure.js.map +1 -0
  247. package/Engines/thinNativeEngine.d.ts +0 -1
  248. package/Engines/thinNativeEngine.js +0 -1
  249. package/Engines/thinNativeEngine.js.map +1 -1
  250. package/Engines/thinNativeEngine.pure.js +7 -0
  251. package/Engines/thinNativeEngine.pure.js.map +1 -1
  252. package/Engines/webgpuEngine.pure.js.map +1 -1
  253. package/Events/pointerEvents.d.ts +1 -1
  254. package/Events/pointerEvents.js +1 -1
  255. package/Events/pointerEvents.js.map +1 -1
  256. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
  257. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
  258. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  259. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  260. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  261. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
  262. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
  263. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
  264. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
  265. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
  266. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
  267. package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
  268. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  269. package/FlowGraph/flowGraphBlock.d.ts +1 -1
  270. package/FlowGraph/flowGraphBlock.js +1 -1
  271. package/FlowGraph/flowGraphBlock.js.map +1 -1
  272. package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
  273. package/FlowGraph/flowGraphExecutionBlock.js +1 -1
  274. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  275. package/FlowGraph/flowGraphMath.d.ts +1 -1
  276. package/FlowGraph/flowGraphMath.js +1 -1
  277. package/FlowGraph/flowGraphMath.js.map +1 -1
  278. package/FlowGraph/flowGraphParser.js +1 -1
  279. package/FlowGraph/flowGraphParser.js.map +1 -1
  280. package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
  281. package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
  282. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  283. package/FlowGraph/flowGraphValidator.js.map +1 -1
  284. package/FlowGraph/serialization.js +4 -4
  285. package/FlowGraph/serialization.js.map +1 -1
  286. package/FlowGraph/utils.js.map +1 -1
  287. package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
  288. package/FrameGraph/Node/nodeRenderGraph.js +7 -7
  289. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  290. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
  291. package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
  292. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  293. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
  294. package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
  295. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
  296. package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
  297. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
  298. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  299. package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
  300. package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
  301. package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
  302. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
  303. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  304. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
  305. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
  306. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
  307. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
  308. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
  309. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
  310. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
  311. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  312. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
  313. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
  314. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  315. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
  316. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
  317. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  318. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
  319. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
  320. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  321. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
  322. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
  323. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
  324. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
  325. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
  326. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
  327. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
  328. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
  329. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
  330. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
  331. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
  332. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  333. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  334. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
  335. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  336. package/FrameGraph/frameGraphRenderContext.js +1 -1
  337. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  338. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  339. package/FrameGraph/frameGraphTextureManager.js +1 -1
  340. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  341. package/Gamepads/gamepadManager.js +1 -1
  342. package/Gamepads/gamepadManager.js.map +1 -1
  343. package/Gizmos/axisDragGizmo.d.ts +5 -5
  344. package/Gizmos/axisDragGizmo.js +6 -6
  345. package/Gizmos/axisDragGizmo.js.map +1 -1
  346. package/Gizmos/axisScaleGizmo.d.ts +4 -4
  347. package/Gizmos/axisScaleGizmo.js +6 -6
  348. package/Gizmos/axisScaleGizmo.js.map +1 -1
  349. package/Gizmos/boundingBoxGizmo.d.ts +5 -5
  350. package/Gizmos/boundingBoxGizmo.js +7 -7
  351. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  352. package/Gizmos/cameraGizmo.d.ts +3 -3
  353. package/Gizmos/cameraGizmo.js +7 -7
  354. package/Gizmos/cameraGizmo.js.map +1 -1
  355. package/Gizmos/gizmo.d.ts +2 -2
  356. package/Gizmos/gizmo.js +3 -3
  357. package/Gizmos/gizmo.js.map +1 -1
  358. package/Gizmos/gizmoManager.d.ts +2 -2
  359. package/Gizmos/gizmoManager.js +2 -2
  360. package/Gizmos/gizmoManager.js.map +1 -1
  361. package/Gizmos/lightGizmo.d.ts +4 -4
  362. package/Gizmos/lightGizmo.js +11 -11
  363. package/Gizmos/lightGizmo.js.map +1 -1
  364. package/Gizmos/planeDragGizmo.d.ts +4 -4
  365. package/Gizmos/planeDragGizmo.js +5 -5
  366. package/Gizmos/planeDragGizmo.js.map +1 -1
  367. package/Gizmos/positionGizmo.d.ts +1 -1
  368. package/Gizmos/positionGizmo.js +2 -2
  369. package/Gizmos/positionGizmo.js.map +1 -1
  370. package/Gizmos/rotationGizmo.d.ts +3 -3
  371. package/Gizmos/rotationGizmo.js +3 -3
  372. package/Gizmos/rotationGizmo.js.map +1 -1
  373. package/Gizmos/scaleGizmo.d.ts +2 -2
  374. package/Gizmos/scaleGizmo.js +4 -4
  375. package/Gizmos/scaleGizmo.js.map +1 -1
  376. package/Gizmos/spatialAudioGizmo.d.ts +2 -2
  377. package/Gizmos/spatialAudioGizmo.js +6 -6
  378. package/Gizmos/spatialAudioGizmo.js.map +1 -1
  379. package/Helpers/environmentHelper.d.ts +6 -6
  380. package/Helpers/environmentHelper.js +12 -12
  381. package/Helpers/environmentHelper.js.map +1 -1
  382. package/Helpers/materialConversionHelper.d.ts +1 -1
  383. package/Helpers/materialConversionHelper.js +1 -1
  384. package/Helpers/materialConversionHelper.js.map +1 -1
  385. package/Helpers/photoDome.d.ts +1 -1
  386. package/Helpers/photoDome.js +1 -1
  387. package/Helpers/photoDome.js.map +1 -1
  388. package/Helpers/textureDome.d.ts +4 -4
  389. package/Helpers/textureDome.js +6 -6
  390. package/Helpers/textureDome.js.map +1 -1
  391. package/Helpers/videoDome.d.ts +1 -1
  392. package/Helpers/videoDome.js +2 -2
  393. package/Helpers/videoDome.js.map +1 -1
  394. package/Inputs/scene.inputManager.d.ts +1 -1
  395. package/Inputs/scene.inputManager.js +1 -1
  396. package/Inputs/scene.inputManager.js.map +1 -1
  397. package/Instrumentation/sceneInstrumentation.js +1 -1
  398. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  399. package/Layers/effectLayer.d.ts +1 -1
  400. package/Layers/effectLayer.js +3 -3
  401. package/Layers/effectLayer.js.map +1 -1
  402. package/Layers/layer.d.ts +2 -2
  403. package/Layers/layer.js +4 -4
  404. package/Layers/layer.js.map +1 -1
  405. package/Layers/thinEffectLayer.d.ts +2 -2
  406. package/Layers/thinEffectLayer.js +3 -3
  407. package/Layers/thinEffectLayer.js.map +1 -1
  408. package/Layers/thinGlowLayer.d.ts +1 -1
  409. package/Layers/thinGlowLayer.js +3 -3
  410. package/Layers/thinGlowLayer.js.map +1 -1
  411. package/Layers/thinHighlightLayer.d.ts +1 -1
  412. package/Layers/thinHighlightLayer.js +3 -3
  413. package/Layers/thinHighlightLayer.js.map +1 -1
  414. package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
  415. package/Layers/thinSelectionOutlineLayer.js +3 -3
  416. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  417. package/Legacy/legacy.js +12 -1
  418. package/Legacy/legacy.js.map +1 -1
  419. package/LensFlares/lensFlare.d.ts +2 -2
  420. package/LensFlares/lensFlare.js +3 -3
  421. package/LensFlares/lensFlare.js.map +1 -1
  422. package/LensFlares/lensFlareSystem.d.ts +1 -1
  423. package/LensFlares/lensFlareSystem.js +6 -6
  424. package/LensFlares/lensFlareSystem.js.map +1 -1
  425. package/Lights/LTC/ltcTextureTool.js +1 -1
  426. package/Lights/LTC/ltcTextureTool.js.map +1 -1
  427. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
  428. package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
  429. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  430. package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
  431. package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
  432. package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
  433. package/Lights/Shadows/pure.d.ts +1 -0
  434. package/Lights/Shadows/pure.js +1 -0
  435. package/Lights/Shadows/pure.js.map +1 -1
  436. package/Lights/Shadows/shadowGenerator.d.ts +3 -3
  437. package/Lights/Shadows/shadowGenerator.js +7 -7
  438. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  439. package/Lights/areaLight.d.ts +1 -1
  440. package/Lights/areaLight.js +0 -1
  441. package/Lights/areaLight.js.map +1 -1
  442. package/Lights/light.d.ts +2 -2
  443. package/Lights/light.js +2 -2
  444. package/Lights/light.js.map +1 -1
  445. package/Lights/shadowLight.d.ts +1 -1
  446. package/Lights/shadowLight.js +1 -1
  447. package/Lights/shadowLight.js.map +1 -1
  448. package/Loading/sceneLoader.d.ts +2 -2
  449. package/Loading/sceneLoader.js +3 -3
  450. package/Loading/sceneLoader.js.map +1 -1
  451. package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
  452. package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
  453. package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
  454. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +10 -3
  455. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
  456. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
  457. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
  458. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  459. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
  460. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  461. package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
  462. package/Materials/Node/nodeMaterial.pure.js +68 -13
  463. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  464. package/Materials/Node/nodeMaterialDefault.js +14 -14
  465. package/Materials/Node/nodeMaterialDefault.js.map +1 -1
  466. package/Materials/PBR/openpbrMaterial.pure.js +19 -4
  467. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  468. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
  469. package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
  470. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  471. package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
  472. package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
  473. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  474. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
  475. package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
  476. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  477. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
  478. package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
  479. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  480. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
  481. package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
  482. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  483. package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
  484. package/Materials/PBR/pbrSheenConfiguration.js +41 -2
  485. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  486. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
  487. package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
  488. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  489. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  490. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  491. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
  492. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
  493. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
  494. package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
  495. package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
  496. package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
  497. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
  498. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
  499. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  500. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  501. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  502. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  503. package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
  504. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  505. package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
  506. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  507. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  508. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  509. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  510. package/Materials/Textures/Packer/packer.d.ts +1 -1
  511. package/Materials/Textures/Packer/packer.js +6 -6
  512. package/Materials/Textures/Packer/packer.js.map +1 -1
  513. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  514. package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
  515. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  516. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
  517. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  518. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
  519. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  520. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  521. package/Materials/Textures/prePassRenderTarget.js +1 -1
  522. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  523. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  524. package/Materials/Textures/rawCubeTexture.js +2 -2
  525. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  526. package/Materials/Textures/rawTexture.d.ts +1 -1
  527. package/Materials/Textures/rawTexture.js +1 -1
  528. package/Materials/Textures/rawTexture.js.map +1 -1
  529. package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
  530. package/Materials/Textures/rawTexture2DArray.js +1 -1
  531. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  532. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  533. package/Materials/Textures/rawTexture3D.js +1 -1
  534. package/Materials/Textures/rawTexture3D.js.map +1 -1
  535. package/Materials/Textures/refractionTexture.d.ts +1 -1
  536. package/Materials/Textures/refractionTexture.js +1 -1
  537. package/Materials/Textures/refractionTexture.js.map +1 -1
  538. package/Materials/Textures/textureMerger.d.ts +1 -1
  539. package/Materials/Textures/textureMerger.js +1 -1
  540. package/Materials/Textures/textureMerger.js.map +1 -1
  541. package/Materials/Textures/textureProcessor.d.ts +1 -1
  542. package/Materials/Textures/textureProcessor.js +2 -2
  543. package/Materials/Textures/textureProcessor.js.map +1 -1
  544. package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
  545. package/Materials/Textures/thinRenderTargetTexture.js +2 -2
  546. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  547. package/Materials/clipPlaneMaterialHelper.js +1 -1
  548. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  549. package/Materials/effectRenderer.pure.js +4 -2
  550. package/Materials/effectRenderer.pure.js.map +1 -1
  551. package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
  552. package/Materials/floatingOriginMatrixOverrides.js +1 -1
  553. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  554. package/Materials/material.detailMapConfiguration.d.ts +39 -1
  555. package/Materials/material.detailMapConfiguration.js +39 -1
  556. package/Materials/material.detailMapConfiguration.js.map +1 -1
  557. package/Materials/materialHelper.functions.js +45 -1
  558. package/Materials/materialHelper.functions.js.map +1 -1
  559. package/Materials/materialHelper.geometryrendering.d.ts +1 -1
  560. package/Materials/materialHelper.geometryrendering.js +1 -1
  561. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  562. package/Materials/materialPluginFactoryExport.js +2 -2
  563. package/Materials/materialPluginFactoryExport.js.map +1 -1
  564. package/Materials/pushMaterial.d.ts +7 -1
  565. package/Materials/pushMaterial.js +7 -1
  566. package/Materials/pushMaterial.js.map +1 -1
  567. package/Materials/uniformBuffer.js +1 -1
  568. package/Materials/uniformBuffer.js.map +1 -1
  569. package/Maths/math.axis.d.ts +1 -1
  570. package/Maths/math.axis.js +1 -1
  571. package/Maths/math.axis.js.map +1 -1
  572. package/Maths/math.d.ts +2 -2
  573. package/Maths/math.functions.d.ts +1 -1
  574. package/Maths/math.functions.js +1 -1
  575. package/Maths/math.functions.js.map +1 -1
  576. package/Maths/math.isovector.d.ts +1 -1
  577. package/Maths/math.isovector.js +1 -1
  578. package/Maths/math.isovector.js.map +1 -1
  579. package/Maths/math.js +2 -2
  580. package/Maths/math.js.map +1 -1
  581. package/Maths/math.path.d.ts +1 -1
  582. package/Maths/math.path.js +1 -1
  583. package/Maths/math.path.js.map +1 -1
  584. package/Maths/math.plane.d.ts +1 -1
  585. package/Maths/math.plane.js +1 -1
  586. package/Maths/math.plane.js.map +1 -1
  587. package/Maths/math.polar.d.ts +1 -1
  588. package/Maths/math.polar.js +1 -1
  589. package/Maths/math.polar.js.map +1 -1
  590. package/Maths/math.vertexFormat.d.ts +1 -1
  591. package/Maths/math.vertexFormat.js +1 -1
  592. package/Maths/math.vertexFormat.js.map +1 -1
  593. package/Maths/pure.d.ts +1 -0
  594. package/Maths/pure.js +1 -0
  595. package/Maths/pure.js.map +1 -1
  596. package/Meshes/Builders/geodesicBuilder.js +1 -1
  597. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  598. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  599. package/Meshes/Builders/goldbergBuilder.js +4 -4
  600. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  601. package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
  602. package/Meshes/Builders/greasedLineBuilder.js +5 -5
  603. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  604. package/Meshes/Builders/textBuilder.d.ts +2 -2
  605. package/Meshes/Builders/textBuilder.js +4 -4
  606. package/Meshes/Builders/textBuilder.js.map +1 -1
  607. package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
  608. package/Meshes/Builders/tiledBoxBuilder.js +3 -3
  609. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  610. package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
  611. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  612. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  613. package/Meshes/Compression/dracoCodec.js +1 -1
  614. package/Meshes/Compression/dracoCodec.js.map +1 -1
  615. package/Meshes/Compression/dracoDecoder.js +1 -1
  616. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  617. package/Meshes/Compression/dracoEncoder.d.ts +1 -1
  618. package/Meshes/Compression/dracoEncoder.js +2 -2
  619. package/Meshes/Compression/dracoEncoder.js.map +1 -1
  620. package/Meshes/Compression/meshoptCompression.js +1 -1
  621. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  622. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  623. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  624. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +50 -1
  625. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +263 -107
  626. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  627. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +37 -0
  628. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +160 -0
  629. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  630. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  631. package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
  632. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  633. package/Meshes/Node/nodeGeometry.d.ts +2 -2
  634. package/Meshes/Node/nodeGeometry.js +4 -4
  635. package/Meshes/Node/nodeGeometry.js.map +1 -1
  636. package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
  637. package/Meshes/Node/nodeGeometryBuildState.js +1 -1
  638. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  639. package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
  640. package/Meshes/abstractMesh.hotSpot.js +2 -2
  641. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  642. package/Meshes/abstractMesh.pure.js +2 -13
  643. package/Meshes/abstractMesh.pure.js.map +1 -1
  644. package/Meshes/buffer.d.ts +1 -1
  645. package/Meshes/buffer.js +1 -1
  646. package/Meshes/buffer.js.map +1 -1
  647. package/Meshes/csg.d.ts +3 -3
  648. package/Meshes/csg.js +4 -4
  649. package/Meshes/csg.js.map +1 -1
  650. package/Meshes/csg2.d.ts +1 -1
  651. package/Meshes/csg2.js +38 -11
  652. package/Meshes/csg2.js.map +1 -1
  653. package/Meshes/geodesicMesh.d.ts +1 -1
  654. package/Meshes/geodesicMesh.js +1 -1
  655. package/Meshes/geodesicMesh.js.map +1 -1
  656. package/Meshes/geometry.d.ts +2 -2
  657. package/Meshes/geometry.js +34 -19
  658. package/Meshes/geometry.js.map +1 -1
  659. package/Meshes/lattice.d.ts +1 -1
  660. package/Meshes/lattice.js +1 -1
  661. package/Meshes/lattice.js.map +1 -1
  662. package/Meshes/lattice.material.d.ts +1 -1
  663. package/Meshes/lattice.material.js +1 -1
  664. package/Meshes/lattice.material.js.map +1 -1
  665. package/Meshes/mesh.pure.js +26 -14
  666. package/Meshes/mesh.pure.js.map +1 -1
  667. package/Meshes/mesh.vertexData.d.ts +2 -2
  668. package/Meshes/mesh.vertexData.js +3 -4
  669. package/Meshes/mesh.vertexData.js.map +1 -1
  670. package/Meshes/mesh.vertexData.subdivide.js +1 -1
  671. package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
  672. package/Meshes/meshBuilder.d.ts +18 -18
  673. package/Meshes/meshBuilder.js +18 -18
  674. package/Meshes/meshBuilder.js.map +1 -1
  675. package/Meshes/meshSimplification.d.ts +1 -1
  676. package/Meshes/meshSimplification.js +4 -4
  677. package/Meshes/meshSimplification.js.map +1 -1
  678. package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
  679. package/Meshes/meshUVSpaceRenderer.js +0 -1
  680. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  681. package/Meshes/meshUtils.d.ts +1 -1
  682. package/Meshes/meshUtils.js +2 -2
  683. package/Meshes/meshUtils.js.map +1 -1
  684. package/Meshes/polygonMesh.d.ts +2 -2
  685. package/Meshes/polygonMesh.js +3 -3
  686. package/Meshes/polygonMesh.js.map +1 -1
  687. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  688. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  689. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  690. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  691. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  692. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  693. package/Misc/areaLightsTextureTools.d.ts +1 -1
  694. package/Misc/areaLightsTextureTools.js +3 -3
  695. package/Misc/areaLightsTextureTools.js.map +1 -1
  696. package/Misc/assetsManager.d.ts +4 -4
  697. package/Misc/assetsManager.js +5 -5
  698. package/Misc/assetsManager.js.map +1 -1
  699. package/Misc/basisWorker.js +1 -1
  700. package/Misc/basisWorker.js.map +1 -1
  701. package/Misc/brdfTextureTools.js +1 -1
  702. package/Misc/brdfTextureTools.js.map +1 -1
  703. package/Misc/copyTextureToTexture.d.ts +1 -1
  704. package/Misc/copyTextureToTexture.js +1 -1
  705. package/Misc/copyTextureToTexture.js.map +1 -1
  706. package/Misc/decorators.serialization.js +2 -2
  707. package/Misc/decorators.serialization.js.map +1 -1
  708. package/Misc/depthReducer.d.ts +2 -2
  709. package/Misc/depthReducer.js +2 -2
  710. package/Misc/depthReducer.js.map +1 -1
  711. package/Misc/gradients.d.ts +1 -1
  712. package/Misc/gradients.js +1 -1
  713. package/Misc/gradients.js.map +1 -1
  714. package/Misc/greasedLineTools.d.ts +1 -1
  715. package/Misc/greasedLineTools.js +3 -3
  716. package/Misc/greasedLineTools.js.map +1 -1
  717. package/Misc/halfFloat.d.ts +17 -0
  718. package/Misc/halfFloat.js +131 -0
  719. package/Misc/halfFloat.js.map +1 -0
  720. package/Misc/khronosTextureContainer2.js +1 -1
  721. package/Misc/khronosTextureContainer2.js.map +1 -1
  722. package/Misc/meshExploder.js +1 -1
  723. package/Misc/meshExploder.js.map +1 -1
  724. package/Misc/pivotTools.js +1 -1
  725. package/Misc/pivotTools.js.map +1 -1
  726. package/Misc/rgbdTextureTools.js +1 -1
  727. package/Misc/rgbdTextureTools.js.map +1 -1
  728. package/Misc/sceneOptimizer.js +1 -1
  729. package/Misc/sceneOptimizer.js.map +1 -1
  730. package/Misc/sceneRecorder.js +7 -7
  731. package/Misc/sceneRecorder.js.map +1 -1
  732. package/Misc/sceneSerializer.js +3 -3
  733. package/Misc/sceneSerializer.js.map +1 -1
  734. package/Misc/snapshotRenderingHelper.js +1 -1
  735. package/Misc/snapshotRenderingHelper.js.map +1 -1
  736. package/Misc/textureTools.d.ts +3 -13
  737. package/Misc/textureTools.js +6 -64
  738. package/Misc/textureTools.js.map +1 -1
  739. package/Misc/thinMinMaxReducer.d.ts +1 -1
  740. package/Misc/thinMinMaxReducer.js +1 -1
  741. package/Misc/thinMinMaxReducer.js.map +1 -1
  742. package/Misc/tools.internals.js +1 -1
  743. package/Misc/tools.internals.js.map +1 -1
  744. package/Misc/tools.pure.js +1 -1
  745. package/Misc/tools.pure.js.map +1 -1
  746. package/Misc/trajectoryClassifier.d.ts +1 -1
  747. package/Misc/trajectoryClassifier.js +1 -1
  748. package/Misc/trajectoryClassifier.js.map +1 -1
  749. package/Misc/videoRecorder.js +1 -1
  750. package/Misc/videoRecorder.js.map +1 -1
  751. package/Misc/virtualJoystick.d.ts +1 -1
  752. package/Misc/virtualJoystick.js +1 -1
  753. package/Misc/virtualJoystick.js.map +1 -1
  754. package/Morph/morphTarget.js +1 -1
  755. package/Morph/morphTarget.js.map +1 -1
  756. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  757. package/Navigation/Plugins/recastJSPlugin.js +2 -2
  758. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  759. package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
  760. package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
  761. package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
  762. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
  763. package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
  764. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  765. package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
  766. package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
  767. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  768. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
  769. package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
  770. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  771. package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
  772. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
  773. package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
  774. package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
  775. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
  776. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  777. package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
  778. package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
  779. package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
  780. package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
  781. package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
  782. package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
  783. package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
  784. package/Particles/Node/nodeParticleBuildState.js +2 -2
  785. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  786. package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
  787. package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
  788. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  789. package/Particles/Node/nodeParticleSystemSet.js +8 -8
  790. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  791. package/Particles/attractor.d.ts +1 -1
  792. package/Particles/attractor.js +1 -1
  793. package/Particles/attractor.js.map +1 -1
  794. package/Particles/flowMap.d.ts +7 -1
  795. package/Particles/flowMap.js +7 -1
  796. package/Particles/flowMap.js.map +1 -1
  797. package/Particles/particle.d.ts +2 -2
  798. package/Particles/particle.js +2 -2
  799. package/Particles/particle.js.map +1 -1
  800. package/Particles/particleHelper.js +5 -5
  801. package/Particles/particleHelper.js.map +1 -1
  802. package/Particles/particleSystem.functions.d.ts +1 -1
  803. package/Particles/particleSystem.functions.js +1 -1
  804. package/Particles/particleSystem.functions.js.map +1 -1
  805. package/Particles/particleSystemSet.d.ts +1 -1
  806. package/Particles/particleSystemSet.js +5 -5
  807. package/Particles/particleSystemSet.js.map +1 -1
  808. package/Particles/pointsCloudSystem.d.ts +1 -1
  809. package/Particles/pointsCloudSystem.js +6 -6
  810. package/Particles/pointsCloudSystem.js.map +1 -1
  811. package/Particles/solidParticle.d.ts +2 -2
  812. package/Particles/solidParticle.js +3 -3
  813. package/Particles/solidParticle.js.map +1 -1
  814. package/Particles/solidParticleSystem.d.ts +4 -4
  815. package/Particles/solidParticleSystem.js +7 -7
  816. package/Particles/solidParticleSystem.js.map +1 -1
  817. package/Particles/subEmitter.js +1 -1
  818. package/Particles/subEmitter.js.map +1 -1
  819. package/Particles/thinParticleSystem.function.js +2 -2
  820. package/Particles/thinParticleSystem.function.js.map +1 -1
  821. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  822. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  823. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  824. package/Physics/castingResult.d.ts +1 -1
  825. package/Physics/castingResult.js +1 -1
  826. package/Physics/castingResult.js.map +1 -1
  827. package/Physics/physicsHelper.d.ts +1 -1
  828. package/Physics/physicsHelper.js +4 -4
  829. package/Physics/physicsHelper.js.map +1 -1
  830. package/Physics/physicsImpostor.d.ts +1 -1
  831. package/Physics/physicsImpostor.js +1 -1
  832. package/Physics/physicsImpostor.js.map +1 -1
  833. package/Physics/physicsRaycastResult.d.ts +1 -1
  834. package/Physics/physicsRaycastResult.js +1 -1
  835. package/Physics/physicsRaycastResult.js.map +1 -1
  836. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
  837. package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
  838. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  839. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
  840. package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
  841. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
  842. package/Physics/v1/physicsEngine.d.ts +1 -1
  843. package/Physics/v1/physicsEngine.js +1 -1
  844. package/Physics/v1/physicsEngine.js.map +1 -1
  845. package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
  846. package/Physics/v2/Plugins/havokPlugin.js +45 -7
  847. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  848. package/Physics/v2/characterController.d.ts +1 -1
  849. package/Physics/v2/characterController.js +2 -2
  850. package/Physics/v2/characterController.js.map +1 -1
  851. package/Physics/v2/physicsAggregate.d.ts +3 -3
  852. package/Physics/v2/physicsAggregate.js +10 -6
  853. package/Physics/v2/physicsAggregate.js.map +1 -1
  854. package/Physics/v2/physicsBody.d.ts +1 -1
  855. package/Physics/v2/physicsBody.js +1 -1
  856. package/Physics/v2/physicsBody.js.map +1 -1
  857. package/Physics/v2/physicsEngine.d.ts +1 -1
  858. package/Physics/v2/physicsEngine.js +1 -1
  859. package/Physics/v2/physicsEngine.js.map +1 -1
  860. package/Physics/v2/physicsShape.d.ts +1 -1
  861. package/Physics/v2/physicsShape.js +1 -1
  862. package/Physics/v2/physicsShape.js.map +1 -1
  863. package/Physics/v2/ragdoll.d.ts +2 -2
  864. package/Physics/v2/ragdoll.js +2 -2
  865. package/Physics/v2/ragdoll.js.map +1 -1
  866. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
  867. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
  868. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  869. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
  870. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
  871. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  872. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  873. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
  874. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  875. package/PostProcesses/bloomEffect.d.ts +1 -1
  876. package/PostProcesses/bloomEffect.js +4 -4
  877. package/PostProcesses/bloomEffect.js.map +1 -1
  878. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  879. package/PostProcesses/depthOfFieldEffect.js +3 -3
  880. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  881. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
  882. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
  883. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  884. package/PostProcesses/highlightsPostProcess.d.ts +1 -1
  885. package/PostProcesses/highlightsPostProcess.js +1 -1
  886. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  887. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  888. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  889. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  890. package/PostProcesses/postProcessManager.d.ts +3 -0
  891. package/PostProcesses/postProcessManager.js +4 -1
  892. package/PostProcesses/postProcessManager.js.map +1 -1
  893. package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
  894. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
  895. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
  896. package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
  897. package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
  898. package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
  899. package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
  900. package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
  901. package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
  902. package/PostProcesses/thinBloomEffect.js +1 -1
  903. package/PostProcesses/thinBloomEffect.js.map +1 -1
  904. package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
  905. package/PostProcesses/thinBloomMergePostProcess.js +1 -1
  906. package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
  907. package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
  908. package/PostProcesses/thinBlurPostProcess.js +1 -1
  909. package/PostProcesses/thinBlurPostProcess.js.map +1 -1
  910. package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
  911. package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
  912. package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
  913. package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
  914. package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
  915. package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
  916. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
  917. package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
  918. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
  919. package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
  920. package/PostProcesses/thinConvolutionPostProcess.js +1 -1
  921. package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
  922. package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
  923. package/PostProcesses/thinCustomPostProcess.js +1 -1
  924. package/PostProcesses/thinCustomPostProcess.js.map +1 -1
  925. package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
  926. package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
  927. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  928. package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
  929. package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
  930. package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
  931. package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
  932. package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
  933. package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
  934. package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
  935. package/PostProcesses/thinFXAAPostProcess.js +2 -2
  936. package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
  937. package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
  938. package/PostProcesses/thinFilterPostProcess.js +2 -2
  939. package/PostProcesses/thinFilterPostProcess.js.map +1 -1
  940. package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
  941. package/PostProcesses/thinGrainPostProcess.js +1 -1
  942. package/PostProcesses/thinGrainPostProcess.js.map +1 -1
  943. package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
  944. package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
  945. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  946. package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
  947. package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
  948. package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
  949. package/PostProcesses/thinPassPostProcess.d.ts +1 -1
  950. package/PostProcesses/thinPassPostProcess.js +1 -1
  951. package/PostProcesses/thinPassPostProcess.js.map +1 -1
  952. package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
  953. package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
  954. package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
  955. package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
  956. package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
  957. package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
  958. package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
  959. package/PostProcesses/thinSSAO2PostProcess.js +36 -4
  960. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  961. package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
  962. package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
  963. package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
  964. package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
  965. package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
  966. package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
  967. package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
  968. package/PostProcesses/thinSSRPostProcess.js +2 -2
  969. package/PostProcesses/thinSSRPostProcess.js.map +1 -1
  970. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
  971. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
  972. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
  973. package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
  974. package/PostProcesses/thinSharpenPostProcess.js +1 -1
  975. package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
  976. package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
  977. package/PostProcesses/thinTAAPostProcess.js +4 -4
  978. package/PostProcesses/thinTAAPostProcess.js.map +1 -1
  979. package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
  980. package/PostProcesses/thinTonemapPostProcess.js +1 -1
  981. package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
  982. package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
  983. package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
  984. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  985. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
  986. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
  987. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  988. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
  989. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
  990. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
  991. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
  992. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
  993. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  994. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  995. package/Rendering/depthPeelingRenderer.js +2 -2
  996. package/Rendering/depthPeelingRenderer.js.map +1 -1
  997. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  998. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  999. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  1000. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  1001. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
  1002. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  1003. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
  1004. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
  1005. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  1006. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  1007. package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
  1008. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  1009. package/Rendering/iblCdfGenerator.d.ts +3 -3
  1010. package/Rendering/iblCdfGenerator.js +5 -5
  1011. package/Rendering/iblCdfGenerator.js.map +1 -1
  1012. package/Rendering/renderingGroup.js +1 -1
  1013. package/Rendering/renderingGroup.js.map +1 -1
  1014. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  1015. package/Rendering/subSurfaceConfiguration.js +2 -2
  1016. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  1017. package/Rendering/utilityLayerRenderer.d.ts +2 -2
  1018. package/Rendering/utilityLayerRenderer.js +4 -4
  1019. package/Rendering/utilityLayerRenderer.js.map +1 -1
  1020. package/Shaders/greasedLine.vertex.js +19 -3
  1021. package/Shaders/greasedLine.vertex.js.map +1 -1
  1022. package/Shaders/ssao2.fragment.js +10 -2
  1023. package/Shaders/ssao2.fragment.js.map +1 -1
  1024. package/ShadersWGSL/ssao2.fragment.js +10 -2
  1025. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  1026. package/SmartAssets/smartAssetSerializer.js +1 -1
  1027. package/SmartAssets/smartAssetSerializer.js.map +1 -1
  1028. package/Sprites/sprite.d.ts +2 -2
  1029. package/Sprites/sprite.js +2 -2
  1030. package/Sprites/sprite.js.map +1 -1
  1031. package/Sprites/spriteManager.d.ts +2 -2
  1032. package/Sprites/spriteManager.js +4 -5
  1033. package/Sprites/spriteManager.js.map +1 -1
  1034. package/Sprites/spritePackedManager.js +1 -1
  1035. package/Sprites/spritePackedManager.js.map +1 -1
  1036. package/Sprites/spriteRenderer.js +2 -2
  1037. package/Sprites/spriteRenderer.js.map +1 -1
  1038. package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
  1039. package/XR/features/WebXRHitTestLegacy.js +2 -2
  1040. package/XR/features/WebXRHitTestLegacy.js.map +1 -1
  1041. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  1042. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1043. package/XR/motionController/webXRGenericMotionController.js +2 -2
  1044. package/XR/motionController/webXRGenericMotionController.js.map +1 -1
  1045. package/XR/motionController/webXRProfiledMotionController.js +4 -4
  1046. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  1047. package/XR/webXRCamera.d.ts +3 -3
  1048. package/XR/webXRCamera.js +4 -4
  1049. package/XR/webXRCamera.js.map +1 -1
  1050. package/XR/webXRDefaultExperience.d.ts +4 -4
  1051. package/XR/webXRDefaultExperience.js +4 -4
  1052. package/XR/webXRDefaultExperience.js.map +1 -1
  1053. package/XR/webXREnterExitUI.js +1 -1
  1054. package/XR/webXREnterExitUI.js.map +1 -1
  1055. package/XR/webXRExperienceHelper.js +2 -2
  1056. package/XR/webXRExperienceHelper.js.map +1 -1
  1057. package/XR/webXRFeaturesManager.d.ts +47 -0
  1058. package/XR/webXRFeaturesManager.js +1 -1
  1059. package/XR/webXRFeaturesManager.js.map +1 -1
  1060. package/XR/webXRInput.js +1 -1
  1061. package/XR/webXRInput.js.map +1 -1
  1062. package/XR/webXRInputSource.js +4 -4
  1063. package/XR/webXRInputSource.js.map +1 -1
  1064. package/XR/webXRManagedOutputCanvas.js +1 -1
  1065. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  1066. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1067. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1068. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1069. package/assetContainer.d.ts +4 -4
  1070. package/assetContainer.js +6 -6
  1071. package/assetContainer.js.map +1 -1
  1072. package/node.d.ts +1 -1
  1073. package/node.js +6 -2
  1074. package/node.js.map +1 -1
  1075. package/package.json +46 -175
  1076. package/scene.pure.d.ts +12 -0
  1077. package/scene.pure.js +36 -0
  1078. package/scene.pure.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pbrClearCoatConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrClearCoatConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { type Nullable } from \"../../types\";\r\nimport { serialize, serializeAsTexture, expandToProperty, serializeAsColor3 } from \"../../Misc/decorators\";\r\nimport { Color3 } from \"../../Maths/math.color\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { MaterialFlags } from \"../materialFlags\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { type SubMesh } from \"../../Meshes/subMesh\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Engine } from \"../../Engines/engine\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialClearCoatDefines extends MaterialDefines {\r\n public CLEARCOAT = false;\r\n public CLEARCOAT_DEFAULTIOR = false;\r\n public CLEARCOAT_TEXTURE = false;\r\n public CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n public CLEARCOAT_TEXTUREDIRECTUV = 0;\r\n public CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0;\r\n public CLEARCOAT_BUMP = false;\r\n public CLEARCOAT_BUMPDIRECTUV = 0;\r\n public CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = false;\r\n public CLEARCOAT_REMAP_F0 = false;\r\n\r\n public CLEARCOAT_TINT = false;\r\n public CLEARCOAT_TINT_TEXTURE = false;\r\n public CLEARCOAT_TINT_TEXTUREDIRECTUV = 0;\r\n public CLEARCOAT_TINT_GAMMATEXTURE = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the clear coat component of the PBR material\r\n */\r\nexport class PBRClearCoatConfiguration extends MaterialPluginBase {\r\n protected override _material: PBRBaseMaterial;\r\n\r\n /**\r\n * This defaults to 1.5 corresponding to a 0.04 f0 or a 4% reflectance at normal incidence\r\n * The default fits with a polyurethane material.\r\n * @internal\r\n */\r\n public static readonly _DefaultIndexOfRefraction = 1.5;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the clear coat is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the clear coat layer strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines the clear coat layer roughness.\r\n */\r\n @serialize()\r\n public roughness: number = 0;\r\n\r\n private _indexOfRefraction = PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n /**\r\n * Defines the index of refraction of the clear coat.\r\n * This defaults to 1.5 corresponding to a 0.04 f0 or a 4% reflectance at normal incidence\r\n * The default fits with a polyurethane material.\r\n * Changing the default value is more performance intensive.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public indexOfRefraction = PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear coat values in a texture (red channel is intensity and green channel is roughness)\r\n * If useRoughnessFromMainTexture is false, the green channel of texture is not used and the green channel of textureRoughness is used instead\r\n * if textureRoughness is not empty, else no texture roughness is used\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _useRoughnessFromMainTexture = true;\r\n /**\r\n * Indicates that the green channel of the texture property will be used for roughness (default: true)\r\n * If false, the green channel from textureRoughness is used for roughness\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public useRoughnessFromMainTexture = true;\r\n\r\n private _textureRoughness: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear coat roughness in a texture (green channel)\r\n * Not used if useRoughnessFromMainTexture is true\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public textureRoughness: Nullable<BaseTexture> = null;\r\n\r\n private _remapF0OnInterfaceChange = true;\r\n /**\r\n * Defines if the F0 value should be remapped to account for the interface change in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public remapF0OnInterfaceChange = true;\r\n\r\n private _bumpTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Define the clear coat specific bump texture.\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public bumpTexture: Nullable<BaseTexture> = null;\r\n\r\n private _isTintEnabled = false;\r\n /**\r\n * Defines if the clear coat tint is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isTintEnabled = false;\r\n\r\n /**\r\n * Defines the clear coat tint of the material.\r\n * This is only use if tint is enabled\r\n */\r\n @serializeAsColor3()\r\n public tintColor = Color3.White();\r\n\r\n /**\r\n * Defines the distance at which the tint color should be found in the\r\n * clear coat media.\r\n * This is only use if tint is enabled\r\n */\r\n @serialize()\r\n public tintColorAtDistance = 1;\r\n\r\n /**\r\n * Defines the clear coat layer thickness.\r\n * This is only use if tint is enabled\r\n */\r\n @serialize()\r\n public tintThickness: number = 1;\r\n\r\n private _tintTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear tint values in a texture.\r\n * rgb is tint\r\n * a is a thickness factor\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public tintTexture: Nullable<BaseTexture> = null;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRClearCoat\", 100, new MaterialClearCoatDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n }\r\n\r\n public override isReadyForSubMesh(defines: MaterialClearCoatDefines, scene: Scene, engine: Engine): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n const disableBumpMap = this._material._disableBumpMap;\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._textureRoughness && MaterialFlags.ClearCoatTextureEnabled) {\r\n if (!this._textureRoughness.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (engine.getCaps().standardDerivatives && this._bumpTexture && MaterialFlags.ClearCoatBumpTextureEnabled && !disableBumpMap) {\r\n // Bump texture cannot be not blocking.\r\n if (!this._bumpTexture.isReady()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._isTintEnabled && this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n if (!this._tintTexture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override prepareDefinesBeforeAttributes(defines: MaterialClearCoatDefines, scene: Scene): void {\r\n if (this._isEnabled) {\r\n defines.CLEARCOAT = true;\r\n defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = this._useRoughnessFromMainTexture;\r\n defines.CLEARCOAT_REMAP_F0 = this._remapF0OnInterfaceChange;\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"CLEARCOAT_TEXTURE\");\r\n } else {\r\n defines.CLEARCOAT_TEXTURE = false;\r\n }\r\n\r\n if (this._textureRoughness && MaterialFlags.ClearCoatTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._textureRoughness, defines, \"CLEARCOAT_TEXTURE_ROUGHNESS\");\r\n } else {\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n }\r\n\r\n if (this._bumpTexture && MaterialFlags.ClearCoatBumpTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._bumpTexture, defines, \"CLEARCOAT_BUMP\");\r\n } else {\r\n defines.CLEARCOAT_BUMP = false;\r\n }\r\n\r\n defines.CLEARCOAT_DEFAULTIOR = this._indexOfRefraction === PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n\r\n if (this._isTintEnabled) {\r\n defines.CLEARCOAT_TINT = true;\r\n if (this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._tintTexture, defines, \"CLEARCOAT_TINT_TEXTURE\");\r\n defines.CLEARCOAT_TINT_GAMMATEXTURE = this._tintTexture.gammaSpace;\r\n } else {\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n }\r\n } else {\r\n defines.CLEARCOAT_TINT = false;\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n }\r\n }\r\n }\r\n } else {\r\n defines.CLEARCOAT = false;\r\n defines.CLEARCOAT_TEXTURE = false;\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n defines.CLEARCOAT_BUMP = false;\r\n defines.CLEARCOAT_TINT = false;\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = false;\r\n defines.CLEARCOAT_DEFAULTIOR = false;\r\n defines.CLEARCOAT_TEXTUREDIRECTUV = 0;\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0;\r\n defines.CLEARCOAT_BUMPDIRECTUV = 0;\r\n defines.CLEARCOAT_REMAP_F0 = false;\r\n defines.CLEARCOAT_TINT_TEXTUREDIRECTUV = 0;\r\n defines.CLEARCOAT_TINT_GAMMATEXTURE = false;\r\n }\r\n }\r\n\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, engine: Engine, subMesh: SubMesh): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const defines = subMesh.materialDefines as unknown as MaterialClearCoatDefines;\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n const disableBumpMap = this._material._disableBumpMap;\r\n const invertNormalMapX = this._material._invertNormalMapX;\r\n const invertNormalMapY = this._material._invertNormalMapY;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if ((this._texture || this._textureRoughness) && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.updateFloat4(\r\n \"vClearCoatInfos\",\r\n this._texture?.coordinatesIndex ?? 0,\r\n this._texture?.level ?? 0,\r\n this._textureRoughness?.coordinatesIndex ?? 0,\r\n this._textureRoughness?.level ?? 0\r\n );\r\n if (this._texture) {\r\n BindTextureMatrix(this._texture, uniformBuffer, \"clearCoat\");\r\n }\r\n if (this._textureRoughness && !defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) {\r\n BindTextureMatrix(this._textureRoughness, uniformBuffer, \"clearCoatRoughness\");\r\n }\r\n }\r\n\r\n if (this._bumpTexture && engine.getCaps().standardDerivatives && MaterialFlags.ClearCoatTextureEnabled && !disableBumpMap) {\r\n uniformBuffer.updateFloat2(\"vClearCoatBumpInfos\", this._bumpTexture.coordinatesIndex, this._bumpTexture.level);\r\n BindTextureMatrix(this._bumpTexture, uniformBuffer, \"clearCoatBump\");\r\n\r\n if (scene._mirroredCameraPosition) {\r\n uniformBuffer.updateFloat2(\"vClearCoatTangentSpaceParams\", invertNormalMapX ? 1.0 : -1.0, invertNormalMapY ? 1.0 : -1.0);\r\n } else {\r\n uniformBuffer.updateFloat2(\"vClearCoatTangentSpaceParams\", invertNormalMapX ? -1.0 : 1.0, invertNormalMapY ? -1.0 : 1.0);\r\n }\r\n }\r\n\r\n if (this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vClearCoatTintInfos\", this._tintTexture.coordinatesIndex, this._tintTexture.level);\r\n BindTextureMatrix(this._tintTexture, uniformBuffer, \"clearCoatTint\");\r\n }\r\n\r\n // Clear Coat General params\r\n uniformBuffer.updateFloat2(\"vClearCoatParams\", this.intensity, this.roughness);\r\n\r\n // Clear Coat Refraction params\r\n const a = 1 - this._indexOfRefraction;\r\n const b = 1 + this._indexOfRefraction;\r\n const f0 = Math.pow(-a / b, 2); // Schlicks approx: (ior1 - ior2) / (ior1 + ior2) where ior2 for air is close to vacuum = 1.\r\n const eta = 1 / this._indexOfRefraction;\r\n uniformBuffer.updateFloat4(\"vClearCoatRefractionParams\", f0, eta, a, b);\r\n\r\n if (this._isTintEnabled) {\r\n uniformBuffer.updateFloat4(\"vClearCoatTintParams\", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(0.00001, this.tintThickness));\r\n uniformBuffer.updateFloat(\"clearCoatColorAtDistance\", Math.max(0.00001, this.tintColorAtDistance));\r\n }\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatSampler\", this._texture);\r\n }\r\n\r\n if (this._textureRoughness && !defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatRoughnessSampler\", this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture && engine.getCaps().standardDerivatives && MaterialFlags.ClearCoatBumpTextureEnabled && !disableBumpMap) {\r\n uniformBuffer.setTexture(\"clearCoatBumpSampler\", this._bumpTexture);\r\n }\r\n\r\n if (this._isTintEnabled && this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatTintSampler\", this._tintTexture);\r\n }\r\n }\r\n }\r\n\r\n public override hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._textureRoughness === texture) {\r\n return true;\r\n }\r\n\r\n if (this._bumpTexture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._tintTexture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public override getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n\r\n if (this._textureRoughness) {\r\n activeTextures.push(this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture) {\r\n activeTextures.push(this._bumpTexture);\r\n }\r\n\r\n if (this._tintTexture) {\r\n activeTextures.push(this._tintTexture);\r\n }\r\n }\r\n\r\n public override getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n\r\n if (this._textureRoughness && this._textureRoughness.animations && this._textureRoughness.animations.length > 0) {\r\n animatables.push(this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0) {\r\n animatables.push(this._bumpTexture);\r\n }\r\n\r\n if (this._tintTexture && this._tintTexture.animations && this._tintTexture.animations.length > 0) {\r\n animatables.push(this._tintTexture);\r\n }\r\n }\r\n\r\n public override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n this._textureRoughness?.dispose();\r\n this._bumpTexture?.dispose();\r\n this._tintTexture?.dispose();\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRClearCoatConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialClearCoatDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.CLEARCOAT_BUMP) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT_BUMP\");\r\n }\r\n if (defines.CLEARCOAT_TINT) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT_TINT\");\r\n }\r\n if (defines.CLEARCOAT) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"clearCoatSampler\", \"clearCoatRoughnessSampler\", \"clearCoatBumpSampler\", \"clearCoatTintSampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vClearCoatParams\", size: 2, type: \"vec2\" },\r\n { name: \"vClearCoatRefractionParams\", size: 4, type: \"vec4\" },\r\n { name: \"vClearCoatInfos\", size: 4, type: \"vec4\" },\r\n { name: \"clearCoatMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"clearCoatRoughnessMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"vClearCoatBumpInfos\", size: 2, type: \"vec2\" },\r\n { name: \"vClearCoatTangentSpaceParams\", size: 2, type: \"vec2\" },\r\n { name: \"clearCoatBumpMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"vClearCoatTintParams\", size: 4, type: \"vec4\" },\r\n { name: \"clearCoatColorAtDistance\", size: 1, type: \"float\" },\r\n { name: \"vClearCoatTintInfos\", size: 2, type: \"vec2\" },\r\n { name: \"clearCoatTintMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"pbrClearCoatConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrClearCoatConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { type Nullable } from \"../../types\";\r\nimport { serialize, serializeAsTexture, expandToProperty, serializeAsColor3 } from \"../../Misc/decorators\";\r\nimport { Color3 } from \"../../Maths/math.color.pure\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { MaterialFlags } from \"../materialFlags\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { type SubMesh } from \"../../Meshes/subMesh\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase.pure\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Engine } from \"../../Engines/engine\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialClearCoatDefines extends MaterialDefines {\r\n public CLEARCOAT = false;\r\n public CLEARCOAT_DEFAULTIOR = false;\r\n public CLEARCOAT_TEXTURE = false;\r\n public CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n public CLEARCOAT_TEXTUREDIRECTUV = 0;\r\n public CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0;\r\n public CLEARCOAT_BUMP = false;\r\n public CLEARCOAT_BUMPDIRECTUV = 0;\r\n public CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = false;\r\n public CLEARCOAT_REMAP_F0 = false;\r\n\r\n public CLEARCOAT_TINT = false;\r\n public CLEARCOAT_TINT_TEXTURE = false;\r\n public CLEARCOAT_TINT_TEXTUREDIRECTUV = 0;\r\n public CLEARCOAT_TINT_GAMMATEXTURE = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the clear coat component of the PBR material\r\n */\r\nexport class PBRClearCoatConfiguration extends MaterialPluginBase {\r\n protected override _material: PBRBaseMaterial;\r\n\r\n /**\r\n * This defaults to 1.5 corresponding to a 0.04 f0 or a 4% reflectance at normal incidence\r\n * The default fits with a polyurethane material.\r\n * @internal\r\n */\r\n public static readonly _DefaultIndexOfRefraction = 1.5;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the clear coat is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the clear coat layer strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines the clear coat layer roughness.\r\n */\r\n @serialize()\r\n public roughness: number = 0;\r\n\r\n private _indexOfRefraction = PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n /**\r\n * Defines the index of refraction of the clear coat.\r\n * This defaults to 1.5 corresponding to a 0.04 f0 or a 4% reflectance at normal incidence\r\n * The default fits with a polyurethane material.\r\n * Changing the default value is more performance intensive.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public indexOfRefraction = PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear coat values in a texture (red channel is intensity and green channel is roughness)\r\n * If useRoughnessFromMainTexture is false, the green channel of texture is not used and the green channel of textureRoughness is used instead\r\n * if textureRoughness is not empty, else no texture roughness is used\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _useRoughnessFromMainTexture = true;\r\n /**\r\n * Indicates that the green channel of the texture property will be used for roughness (default: true)\r\n * If false, the green channel from textureRoughness is used for roughness\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public useRoughnessFromMainTexture = true;\r\n\r\n private _textureRoughness: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear coat roughness in a texture (green channel)\r\n * Not used if useRoughnessFromMainTexture is true\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public textureRoughness: Nullable<BaseTexture> = null;\r\n\r\n private _remapF0OnInterfaceChange = true;\r\n /**\r\n * Defines if the F0 value should be remapped to account for the interface change in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public remapF0OnInterfaceChange = true;\r\n\r\n private _bumpTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Define the clear coat specific bump texture.\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public bumpTexture: Nullable<BaseTexture> = null;\r\n\r\n private _isTintEnabled = false;\r\n /**\r\n * Defines if the clear coat tint is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isTintEnabled = false;\r\n\r\n /**\r\n * Defines the clear coat tint of the material.\r\n * This is only use if tint is enabled\r\n */\r\n @serializeAsColor3()\r\n public tintColor = Color3.White();\r\n\r\n /**\r\n * Defines the distance at which the tint color should be found in the\r\n * clear coat media.\r\n * This is only use if tint is enabled\r\n */\r\n @serialize()\r\n public tintColorAtDistance = 1;\r\n\r\n /**\r\n * Defines the clear coat layer thickness.\r\n * This is only use if tint is enabled\r\n */\r\n @serialize()\r\n public tintThickness: number = 1;\r\n\r\n private _tintTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the clear tint values in a texture.\r\n * rgb is tint\r\n * a is a thickness factor\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public tintTexture: Nullable<BaseTexture> = null;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRClearCoat\", 100, new MaterialClearCoatDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n }\r\n\r\n /**\r\n * Checks whether the clear coat textures are ready for the sub mesh.\r\n * @param defines defines the material defines to inspect\r\n * @param scene defines the scene to use for readiness checks\r\n * @param engine defines the engine to use for readiness checks\r\n * @returns true if clear coat is ready\r\n */\r\n public override isReadyForSubMesh(defines: MaterialClearCoatDefines, scene: Scene, engine: Engine): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n const disableBumpMap = this._material._disableBumpMap;\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._textureRoughness && MaterialFlags.ClearCoatTextureEnabled) {\r\n if (!this._textureRoughness.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (engine.getCaps().standardDerivatives && this._bumpTexture && MaterialFlags.ClearCoatBumpTextureEnabled && !disableBumpMap) {\r\n // Bump texture cannot be not blocking.\r\n if (!this._bumpTexture.isReady()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._isTintEnabled && this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n if (!this._tintTexture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates shader defines for clear coat before attributes are processed.\r\n * @param defines defines the material defines to update\r\n * @param scene defines the scene to use for texture checks\r\n */\r\n public override prepareDefinesBeforeAttributes(defines: MaterialClearCoatDefines, scene: Scene): void {\r\n if (this._isEnabled) {\r\n defines.CLEARCOAT = true;\r\n defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = this._useRoughnessFromMainTexture;\r\n defines.CLEARCOAT_REMAP_F0 = this._remapF0OnInterfaceChange;\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"CLEARCOAT_TEXTURE\");\r\n } else {\r\n defines.CLEARCOAT_TEXTURE = false;\r\n }\r\n\r\n if (this._textureRoughness && MaterialFlags.ClearCoatTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._textureRoughness, defines, \"CLEARCOAT_TEXTURE_ROUGHNESS\");\r\n } else {\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n }\r\n\r\n if (this._bumpTexture && MaterialFlags.ClearCoatBumpTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._bumpTexture, defines, \"CLEARCOAT_BUMP\");\r\n } else {\r\n defines.CLEARCOAT_BUMP = false;\r\n }\r\n\r\n defines.CLEARCOAT_DEFAULTIOR = this._indexOfRefraction === PBRClearCoatConfiguration._DefaultIndexOfRefraction;\r\n\r\n if (this._isTintEnabled) {\r\n defines.CLEARCOAT_TINT = true;\r\n if (this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._tintTexture, defines, \"CLEARCOAT_TINT_TEXTURE\");\r\n defines.CLEARCOAT_TINT_GAMMATEXTURE = this._tintTexture.gammaSpace;\r\n } else {\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n }\r\n } else {\r\n defines.CLEARCOAT_TINT = false;\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n }\r\n }\r\n }\r\n } else {\r\n defines.CLEARCOAT = false;\r\n defines.CLEARCOAT_TEXTURE = false;\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESS = false;\r\n defines.CLEARCOAT_BUMP = false;\r\n defines.CLEARCOAT_TINT = false;\r\n defines.CLEARCOAT_TINT_TEXTURE = false;\r\n defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = false;\r\n defines.CLEARCOAT_DEFAULTIOR = false;\r\n defines.CLEARCOAT_TEXTUREDIRECTUV = 0;\r\n defines.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0;\r\n defines.CLEARCOAT_BUMPDIRECTUV = 0;\r\n defines.CLEARCOAT_REMAP_F0 = false;\r\n defines.CLEARCOAT_TINT_TEXTUREDIRECTUV = 0;\r\n defines.CLEARCOAT_TINT_GAMMATEXTURE = false;\r\n }\r\n }\r\n\r\n /**\r\n * Binds clear coat data for a sub mesh.\r\n * @param uniformBuffer defines the uniform buffer to update\r\n * @param scene defines the scene to use for texture binding\r\n * @param engine defines the engine to use for capability checks\r\n * @param subMesh defines the sub mesh being rendered\r\n */\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, engine: Engine, subMesh: SubMesh): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const defines = subMesh.materialDefines as unknown as MaterialClearCoatDefines;\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n const disableBumpMap = this._material._disableBumpMap;\r\n const invertNormalMapX = this._material._invertNormalMapX;\r\n const invertNormalMapY = this._material._invertNormalMapY;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if ((this._texture || this._textureRoughness) && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.updateFloat4(\r\n \"vClearCoatInfos\",\r\n this._texture?.coordinatesIndex ?? 0,\r\n this._texture?.level ?? 0,\r\n this._textureRoughness?.coordinatesIndex ?? 0,\r\n this._textureRoughness?.level ?? 0\r\n );\r\n if (this._texture) {\r\n BindTextureMatrix(this._texture, uniformBuffer, \"clearCoat\");\r\n }\r\n if (this._textureRoughness && !defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) {\r\n BindTextureMatrix(this._textureRoughness, uniformBuffer, \"clearCoatRoughness\");\r\n }\r\n }\r\n\r\n if (this._bumpTexture && engine.getCaps().standardDerivatives && MaterialFlags.ClearCoatTextureEnabled && !disableBumpMap) {\r\n uniformBuffer.updateFloat2(\"vClearCoatBumpInfos\", this._bumpTexture.coordinatesIndex, this._bumpTexture.level);\r\n BindTextureMatrix(this._bumpTexture, uniformBuffer, \"clearCoatBump\");\r\n\r\n if (scene._mirroredCameraPosition) {\r\n uniformBuffer.updateFloat2(\"vClearCoatTangentSpaceParams\", invertNormalMapX ? 1.0 : -1.0, invertNormalMapY ? 1.0 : -1.0);\r\n } else {\r\n uniformBuffer.updateFloat2(\"vClearCoatTangentSpaceParams\", invertNormalMapX ? -1.0 : 1.0, invertNormalMapY ? -1.0 : 1.0);\r\n }\r\n }\r\n\r\n if (this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vClearCoatTintInfos\", this._tintTexture.coordinatesIndex, this._tintTexture.level);\r\n BindTextureMatrix(this._tintTexture, uniformBuffer, \"clearCoatTint\");\r\n }\r\n\r\n // Clear Coat General params\r\n uniformBuffer.updateFloat2(\"vClearCoatParams\", this.intensity, this.roughness);\r\n\r\n // Clear Coat Refraction params\r\n const a = 1 - this._indexOfRefraction;\r\n const b = 1 + this._indexOfRefraction;\r\n const f0 = Math.pow(-a / b, 2); // Schlicks approx: (ior1 - ior2) / (ior1 + ior2) where ior2 for air is close to vacuum = 1.\r\n const eta = 1 / this._indexOfRefraction;\r\n uniformBuffer.updateFloat4(\"vClearCoatRefractionParams\", f0, eta, a, b);\r\n\r\n if (this._isTintEnabled) {\r\n uniformBuffer.updateFloat4(\"vClearCoatTintParams\", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(0.00001, this.tintThickness));\r\n uniformBuffer.updateFloat(\"clearCoatColorAtDistance\", Math.max(0.00001, this.tintColorAtDistance));\r\n }\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatSampler\", this._texture);\r\n }\r\n\r\n if (this._textureRoughness && !defines.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE && MaterialFlags.ClearCoatTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatRoughnessSampler\", this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture && engine.getCaps().standardDerivatives && MaterialFlags.ClearCoatBumpTextureEnabled && !disableBumpMap) {\r\n uniformBuffer.setTexture(\"clearCoatBumpSampler\", this._bumpTexture);\r\n }\r\n\r\n if (this._isTintEnabled && this._tintTexture && MaterialFlags.ClearCoatTintTextureEnabled) {\r\n uniformBuffer.setTexture(\"clearCoatTintSampler\", this._tintTexture);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether clear coat uses a texture.\r\n * @param texture defines the texture to check\r\n * @returns true if the texture is used by clear coat\r\n */\r\n public override hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._textureRoughness === texture) {\r\n return true;\r\n }\r\n\r\n if (this._bumpTexture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._tintTexture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Adds the active clear coat textures.\r\n * @param activeTextures defines the list of active textures to update\r\n */\r\n public override getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n\r\n if (this._textureRoughness) {\r\n activeTextures.push(this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture) {\r\n activeTextures.push(this._bumpTexture);\r\n }\r\n\r\n if (this._tintTexture) {\r\n activeTextures.push(this._tintTexture);\r\n }\r\n }\r\n\r\n /**\r\n * Adds the animatable clear coat textures.\r\n * @param animatables defines the list of animatables to update\r\n */\r\n public override getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n\r\n if (this._textureRoughness && this._textureRoughness.animations && this._textureRoughness.animations.length > 0) {\r\n animatables.push(this._textureRoughness);\r\n }\r\n\r\n if (this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0) {\r\n animatables.push(this._bumpTexture);\r\n }\r\n\r\n if (this._tintTexture && this._tintTexture.animations && this._tintTexture.animations.length > 0) {\r\n animatables.push(this._tintTexture);\r\n }\r\n }\r\n\r\n /**\r\n * Disposes the clear coat textures.\r\n * @param forceDisposeTextures defines whether to dispose the textures\r\n */\r\n public override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n this._textureRoughness?.dispose();\r\n this._bumpTexture?.dispose();\r\n this._tintTexture?.dispose();\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRClearCoatConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialClearCoatDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.CLEARCOAT_BUMP) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT_BUMP\");\r\n }\r\n if (defines.CLEARCOAT_TINT) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT_TINT\");\r\n }\r\n if (defines.CLEARCOAT) {\r\n fallbacks.addFallback(currentRank++, \"CLEARCOAT\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n /**\r\n * Adds the clear coat sampler names.\r\n * @param samplers defines the list of sampler names to update\r\n */\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"clearCoatSampler\", \"clearCoatRoughnessSampler\", \"clearCoatBumpSampler\", \"clearCoatTintSampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vClearCoatParams\", size: 2, type: \"vec2\" },\r\n { name: \"vClearCoatRefractionParams\", size: 4, type: \"vec4\" },\r\n { name: \"vClearCoatInfos\", size: 4, type: \"vec4\" },\r\n { name: \"clearCoatMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"clearCoatRoughnessMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"vClearCoatBumpInfos\", size: 2, type: \"vec2\" },\r\n { name: \"vClearCoatTangentSpaceParams\", size: 2, type: \"vec2\" },\r\n { name: \"clearCoatBumpMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"vClearCoatTintParams\", size: 4, type: \"vec4\" },\r\n { name: \"clearCoatColorAtDistance\", size: 1, type: \"float\" },\r\n { name: \"vClearCoatTintInfos\", size: 2, type: \"vec2\" },\r\n { name: \"clearCoatTintMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
@@ -3,7 +3,7 @@ import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
3
3
  import { type UniformBuffer } from "../../Materials/uniformBuffer.js";
4
4
  import { type IAnimatable } from "../../Animations/animatable.interface.js";
5
5
  import { type EffectFallbacks } from "../effectFallbacks.js";
6
- import { MaterialPluginBase } from "../materialPluginBase.js";
6
+ import { MaterialPluginBase } from "../materialPluginBase.pure.js";
7
7
  import { MaterialDefines } from "../materialDefines.js";
8
8
  import { type Scene } from "../../scene.js";
9
9
  import { type PBRBaseMaterial } from "./pbrBaseMaterial.js";
@@ -81,15 +81,52 @@ export declare class PBRIridescenceConfiguration extends MaterialPluginBase {
81
81
  */
82
82
  isCompatible(): boolean;
83
83
  constructor(material: PBRBaseMaterial, addToPluginList?: boolean);
84
+ /**
85
+ * Checks whether the iridescence textures are ready for the sub mesh.
86
+ * @param defines defines the material defines to inspect
87
+ * @param scene defines the scene to use for readiness checks
88
+ * @returns true if iridescence is ready
89
+ */
84
90
  isReadyForSubMesh(defines: MaterialIridescenceDefines, scene: Scene): boolean;
91
+ /**
92
+ * Updates shader defines for iridescence before attributes are processed.
93
+ * @param defines defines the material defines to update
94
+ * @param scene defines the scene to use for texture checks
95
+ */
85
96
  prepareDefinesBeforeAttributes(defines: MaterialIridescenceDefines, scene: Scene): void;
97
+ /**
98
+ * Binds iridescence data for a sub mesh.
99
+ * @param uniformBuffer defines the uniform buffer to update
100
+ * @param scene defines the scene to use for texture binding
101
+ */
86
102
  bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void;
103
+ /**
104
+ * Checks whether iridescence uses a texture.
105
+ * @param texture defines the texture to check
106
+ * @returns true if the texture is used by iridescence
107
+ */
87
108
  hasTexture(texture: BaseTexture): boolean;
109
+ /**
110
+ * Adds the active iridescence textures.
111
+ * @param activeTextures defines the list of active textures to update
112
+ */
88
113
  getActiveTextures(activeTextures: BaseTexture[]): void;
114
+ /**
115
+ * Adds the animatable iridescence textures.
116
+ * @param animatables defines the list of animatables to update
117
+ */
89
118
  getAnimatables(animatables: IAnimatable[]): void;
119
+ /**
120
+ * Disposes the iridescence textures.
121
+ * @param forceDisposeTextures defines whether to dispose the textures
122
+ */
90
123
  dispose(forceDisposeTextures?: boolean): void;
91
124
  getClassName(): string;
92
125
  addFallbacks(defines: MaterialIridescenceDefines, fallbacks: EffectFallbacks, currentRank: number): number;
126
+ /**
127
+ * Adds the iridescence sampler names.
128
+ * @param samplers defines the list of sampler names to update
129
+ */
93
130
  getSamplers(samplers: string[]): void;
94
131
  getUniforms(): {
95
132
  ubo?: Array<{
@@ -2,7 +2,7 @@ import { __decorate } from "../../tslib.es6.js";
2
2
  import { serialize, serializeAsTexture, expandToProperty } from "../../Misc/decorators.js";
3
3
  import { MaterialFlags } from "../materialFlags.js";
4
4
 
5
- import { MaterialPluginBase } from "../materialPluginBase.js";
5
+ import { MaterialPluginBase } from "../materialPluginBase.pure.js";
6
6
  import { MaterialDefines } from "../materialDefines.js";
7
7
  import { BindTextureMatrix, PrepareDefinesForMergedUV } from "../materialHelper.functions.js";
8
8
  /**
@@ -69,6 +69,12 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
69
69
  this.thicknessTexture = null;
70
70
  this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
71
71
  }
72
+ /**
73
+ * Checks whether the iridescence textures are ready for the sub mesh.
74
+ * @param defines defines the material defines to inspect
75
+ * @param scene defines the scene to use for readiness checks
76
+ * @returns true if iridescence is ready
77
+ */
72
78
  isReadyForSubMesh(defines, scene) {
73
79
  if (!this._isEnabled) {
74
80
  return true;
@@ -89,6 +95,11 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
89
95
  }
90
96
  return true;
91
97
  }
98
+ /**
99
+ * Updates shader defines for iridescence before attributes are processed.
100
+ * @param defines defines the material defines to update
101
+ * @param scene defines the scene to use for texture checks
102
+ */
92
103
  prepareDefinesBeforeAttributes(defines, scene) {
93
104
  if (this._isEnabled) {
94
105
  defines.IRIDESCENCE = true;
@@ -117,6 +128,11 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
117
128
  defines.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;
118
129
  }
119
130
  }
131
+ /**
132
+ * Binds iridescence data for a sub mesh.
133
+ * @param uniformBuffer defines the uniform buffer to update
134
+ * @param scene defines the scene to use for texture binding
135
+ */
120
136
  bindForSubMesh(uniformBuffer, scene) {
121
137
  if (!this._isEnabled) {
122
138
  return;
@@ -145,6 +161,11 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
145
161
  }
146
162
  }
147
163
  }
164
+ /**
165
+ * Checks whether iridescence uses a texture.
166
+ * @param texture defines the texture to check
167
+ * @returns true if the texture is used by iridescence
168
+ */
148
169
  hasTexture(texture) {
149
170
  if (this._texture === texture) {
150
171
  return true;
@@ -154,6 +175,10 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
154
175
  }
155
176
  return false;
156
177
  }
178
+ /**
179
+ * Adds the active iridescence textures.
180
+ * @param activeTextures defines the list of active textures to update
181
+ */
157
182
  getActiveTextures(activeTextures) {
158
183
  if (this._texture) {
159
184
  activeTextures.push(this._texture);
@@ -162,6 +187,10 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
162
187
  activeTextures.push(this._thicknessTexture);
163
188
  }
164
189
  }
190
+ /**
191
+ * Adds the animatable iridescence textures.
192
+ * @param animatables defines the list of animatables to update
193
+ */
165
194
  getAnimatables(animatables) {
166
195
  if (this._texture && this._texture.animations && this._texture.animations.length > 0) {
167
196
  animatables.push(this._texture);
@@ -170,6 +199,10 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
170
199
  animatables.push(this._thicknessTexture);
171
200
  }
172
201
  }
202
+ /**
203
+ * Disposes the iridescence textures.
204
+ * @param forceDisposeTextures defines whether to dispose the textures
205
+ */
173
206
  dispose(forceDisposeTextures) {
174
207
  if (forceDisposeTextures) {
175
208
  this._texture?.dispose();
@@ -185,6 +218,10 @@ export class PBRIridescenceConfiguration extends MaterialPluginBase {
185
218
  }
186
219
  return currentRank;
187
220
  }
221
+ /**
222
+ * Adds the iridescence sampler names.
223
+ * @param samplers defines the list of sampler names to update
224
+ */
188
225
  getSamplers(samplers) {
189
226
  samplers.push("iridescenceSampler", "iridescenceThicknessSampler");
190
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pbrIridescenceConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrIridescenceConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { type Nullable } from \"../../types\";\r\nimport { serialize, serializeAsTexture, expandToProperty } from \"../../Misc/decorators\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { MaterialFlags } from \"../materialFlags\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialIridescenceDefines extends MaterialDefines {\r\n public IRIDESCENCE = false;\r\n public IRIDESCENCE_TEXTURE = false;\r\n public IRIDESCENCE_TEXTUREDIRECTUV = 0;\r\n public IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n public IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the iridescence (thin film) component of the PBR material\r\n */\r\nexport class PBRIridescenceConfiguration extends MaterialPluginBase {\r\n protected override _material: PBRBaseMaterial;\r\n\r\n /**\r\n * The default minimum thickness of the thin-film layer given in nanometers (nm).\r\n * Defaults to 100 nm.\r\n * @internal\r\n */\r\n public static readonly _DefaultMinimumThickness = 100;\r\n\r\n /**\r\n * The default maximum thickness of the thin-film layer given in nanometers (nm).\r\n * Defaults to 400 nm.\r\n * @internal\r\n */\r\n public static readonly _DefaultMaximumThickness = 400;\r\n\r\n /**\r\n * The default index of refraction of the thin-film layer.\r\n * Defaults to 1.3\r\n * @internal\r\n */\r\n public static readonly _DefaultIndexOfRefraction = 1.3;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the iridescence is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the iridescence layer strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines the minimum thickness of the thin-film layer given in nanometers (nm).\r\n */\r\n @serialize()\r\n public minimumThickness: number = PBRIridescenceConfiguration._DefaultMinimumThickness;\r\n\r\n /**\r\n * Defines the maximum thickness of the thin-film layer given in nanometers (nm). This will be the thickness used if not thickness texture has been set.\r\n */\r\n @serialize()\r\n public maximumThickness: number = PBRIridescenceConfiguration._DefaultMaximumThickness;\r\n\r\n /**\r\n * Defines the maximum thickness of the thin-film layer given in nanometers (nm).\r\n */\r\n @serialize()\r\n public indexOfRefraction: number = PBRIridescenceConfiguration._DefaultIndexOfRefraction;\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the iridescence intensity in a texture (red channel)\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _thicknessTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the iridescence thickness in a texture (green channel)\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public thicknessTexture: Nullable<BaseTexture> = null;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRIridescence\", 110, new MaterialIridescenceDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n }\r\n\r\n public override isReadyForSubMesh(defines: MaterialIridescenceDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n if (!this._thicknessTexture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override prepareDefinesBeforeAttributes(defines: MaterialIridescenceDefines, scene: Scene): void {\r\n if (this._isEnabled) {\r\n defines.IRIDESCENCE = true;\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"IRIDESCENCE_TEXTURE\");\r\n } else {\r\n defines.IRIDESCENCE_TEXTURE = false;\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._thicknessTexture, defines, \"IRIDESCENCE_THICKNESS_TEXTURE\");\r\n } else {\r\n defines.IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n }\r\n }\r\n }\r\n } else {\r\n defines.IRIDESCENCE = false;\r\n defines.IRIDESCENCE_TEXTURE = false;\r\n defines.IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n defines.IRIDESCENCE_TEXTUREDIRECTUV = 0;\r\n defines.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;\r\n }\r\n }\r\n\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if ((this._texture || this._thicknessTexture) && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.updateFloat4(\r\n \"vIridescenceInfos\",\r\n this._texture?.coordinatesIndex ?? 0,\r\n this._texture?.level ?? 0,\r\n this._thicknessTexture?.coordinatesIndex ?? 0,\r\n this._thicknessTexture?.level ?? 0\r\n );\r\n if (this._texture) {\r\n BindTextureMatrix(this._texture, uniformBuffer, \"iridescence\");\r\n }\r\n if (this._thicknessTexture) {\r\n BindTextureMatrix(this._thicknessTexture, uniformBuffer, \"iridescenceThickness\");\r\n }\r\n }\r\n\r\n // Clear Coat General params\r\n uniformBuffer.updateFloat4(\"vIridescenceParams\", this.intensity, this.indexOfRefraction, this.minimumThickness, this.maximumThickness);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.setTexture(\"iridescenceSampler\", this._texture);\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.setTexture(\"iridescenceThicknessSampler\", this._thicknessTexture);\r\n }\r\n }\r\n }\r\n\r\n public override hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._thicknessTexture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public override getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n\r\n if (this._thicknessTexture) {\r\n activeTextures.push(this._thicknessTexture);\r\n }\r\n }\r\n\r\n public override getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n\r\n if (this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0) {\r\n animatables.push(this._thicknessTexture);\r\n }\r\n }\r\n\r\n public override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n this._thicknessTexture?.dispose();\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRIridescenceConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialIridescenceDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.IRIDESCENCE) {\r\n fallbacks.addFallback(currentRank++, \"IRIDESCENCE\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"iridescenceSampler\", \"iridescenceThicknessSampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vIridescenceParams\", size: 4, type: \"vec4\" },\r\n { name: \"vIridescenceInfos\", size: 4, type: \"vec4\" },\r\n { name: \"iridescenceMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"iridescenceThicknessMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"pbrIridescenceConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrIridescenceConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { type Nullable } from \"../../types\";\r\nimport { serialize, serializeAsTexture, expandToProperty } from \"../../Misc/decorators\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { MaterialFlags } from \"../materialFlags\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase.pure\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialIridescenceDefines extends MaterialDefines {\r\n public IRIDESCENCE = false;\r\n public IRIDESCENCE_TEXTURE = false;\r\n public IRIDESCENCE_TEXTUREDIRECTUV = 0;\r\n public IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n public IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the iridescence (thin film) component of the PBR material\r\n */\r\nexport class PBRIridescenceConfiguration extends MaterialPluginBase {\r\n protected override _material: PBRBaseMaterial;\r\n\r\n /**\r\n * The default minimum thickness of the thin-film layer given in nanometers (nm).\r\n * Defaults to 100 nm.\r\n * @internal\r\n */\r\n public static readonly _DefaultMinimumThickness = 100;\r\n\r\n /**\r\n * The default maximum thickness of the thin-film layer given in nanometers (nm).\r\n * Defaults to 400 nm.\r\n * @internal\r\n */\r\n public static readonly _DefaultMaximumThickness = 400;\r\n\r\n /**\r\n * The default index of refraction of the thin-film layer.\r\n * Defaults to 1.3\r\n * @internal\r\n */\r\n public static readonly _DefaultIndexOfRefraction = 1.3;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the iridescence is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the iridescence layer strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines the minimum thickness of the thin-film layer given in nanometers (nm).\r\n */\r\n @serialize()\r\n public minimumThickness: number = PBRIridescenceConfiguration._DefaultMinimumThickness;\r\n\r\n /**\r\n * Defines the maximum thickness of the thin-film layer given in nanometers (nm). This will be the thickness used if not thickness texture has been set.\r\n */\r\n @serialize()\r\n public maximumThickness: number = PBRIridescenceConfiguration._DefaultMaximumThickness;\r\n\r\n /**\r\n * Defines the maximum thickness of the thin-film layer given in nanometers (nm).\r\n */\r\n @serialize()\r\n public indexOfRefraction: number = PBRIridescenceConfiguration._DefaultIndexOfRefraction;\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the iridescence intensity in a texture (red channel)\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _thicknessTexture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the iridescence thickness in a texture (green channel)\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public thicknessTexture: Nullable<BaseTexture> = null;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRIridescence\", 110, new MaterialIridescenceDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n }\r\n\r\n /**\r\n * Checks whether the iridescence textures are ready for the sub mesh.\r\n * @param defines defines the material defines to inspect\r\n * @param scene defines the scene to use for readiness checks\r\n * @returns true if iridescence is ready\r\n */\r\n public override isReadyForSubMesh(defines: MaterialIridescenceDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n if (!this._thicknessTexture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates shader defines for iridescence before attributes are processed.\r\n * @param defines defines the material defines to update\r\n * @param scene defines the scene to use for texture checks\r\n */\r\n public override prepareDefinesBeforeAttributes(defines: MaterialIridescenceDefines, scene: Scene): void {\r\n if (this._isEnabled) {\r\n defines.IRIDESCENCE = true;\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"IRIDESCENCE_TEXTURE\");\r\n } else {\r\n defines.IRIDESCENCE_TEXTURE = false;\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._thicknessTexture, defines, \"IRIDESCENCE_THICKNESS_TEXTURE\");\r\n } else {\r\n defines.IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n }\r\n }\r\n }\r\n } else {\r\n defines.IRIDESCENCE = false;\r\n defines.IRIDESCENCE_TEXTURE = false;\r\n defines.IRIDESCENCE_THICKNESS_TEXTURE = false;\r\n defines.IRIDESCENCE_TEXTUREDIRECTUV = 0;\r\n defines.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;\r\n }\r\n }\r\n\r\n /**\r\n * Binds iridescence data for a sub mesh.\r\n * @param uniformBuffer defines the uniform buffer to update\r\n * @param scene defines the scene to use for texture binding\r\n */\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if ((this._texture || this._thicknessTexture) && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.updateFloat4(\r\n \"vIridescenceInfos\",\r\n this._texture?.coordinatesIndex ?? 0,\r\n this._texture?.level ?? 0,\r\n this._thicknessTexture?.coordinatesIndex ?? 0,\r\n this._thicknessTexture?.level ?? 0\r\n );\r\n if (this._texture) {\r\n BindTextureMatrix(this._texture, uniformBuffer, \"iridescence\");\r\n }\r\n if (this._thicknessTexture) {\r\n BindTextureMatrix(this._thicknessTexture, uniformBuffer, \"iridescenceThickness\");\r\n }\r\n }\r\n\r\n // Clear Coat General params\r\n uniformBuffer.updateFloat4(\"vIridescenceParams\", this.intensity, this.indexOfRefraction, this.minimumThickness, this.maximumThickness);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.setTexture(\"iridescenceSampler\", this._texture);\r\n }\r\n\r\n if (this._thicknessTexture && MaterialFlags.IridescenceTextureEnabled) {\r\n uniformBuffer.setTexture(\"iridescenceThicknessSampler\", this._thicknessTexture);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether iridescence uses a texture.\r\n * @param texture defines the texture to check\r\n * @returns true if the texture is used by iridescence\r\n */\r\n public override hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n if (this._thicknessTexture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Adds the active iridescence textures.\r\n * @param activeTextures defines the list of active textures to update\r\n */\r\n public override getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n\r\n if (this._thicknessTexture) {\r\n activeTextures.push(this._thicknessTexture);\r\n }\r\n }\r\n\r\n /**\r\n * Adds the animatable iridescence textures.\r\n * @param animatables defines the list of animatables to update\r\n */\r\n public override getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n\r\n if (this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0) {\r\n animatables.push(this._thicknessTexture);\r\n }\r\n }\r\n\r\n /**\r\n * Disposes the iridescence textures.\r\n * @param forceDisposeTextures defines whether to dispose the textures\r\n */\r\n public override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n this._thicknessTexture?.dispose();\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRIridescenceConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialIridescenceDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.IRIDESCENCE) {\r\n fallbacks.addFallback(currentRank++, \"IRIDESCENCE\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n /**\r\n * Adds the iridescence sampler names.\r\n * @param samplers defines the list of sampler names to update\r\n */\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"iridescenceSampler\", \"iridescenceThicknessSampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vIridescenceParams\", size: 4, type: \"vec4\" },\r\n { name: \"vIridescenceInfos\", size: 4, type: \"vec4\" },\r\n { name: \"iridescenceMatrix\", size: 16, type: \"mat4\" },\r\n { name: \"iridescenceThicknessMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
@@ -1,11 +1,11 @@
1
1
  import { type UniformBuffer } from "../../Materials/uniformBuffer.js";
2
- import { Color3 } from "../../Maths/math.color.js";
2
+ import { Color3 } from "../../Maths/math.color.pure.js";
3
3
  import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
4
4
  import { type Nullable } from "../../types.js";
5
5
  import { type IAnimatable } from "../../Animations/animatable.interface.js";
6
6
  import { type EffectFallbacks } from "../effectFallbacks.js";
7
7
  import { type SubMesh } from "../../Meshes/subMesh.js";
8
- import { MaterialPluginBase } from "../materialPluginBase.js";
8
+ import { MaterialPluginBase } from "../materialPluginBase.pure.js";
9
9
  import { MaterialDefines } from "../materialDefines.js";
10
10
  import { type Engine } from "../../Engines/engine.js";
11
11
  import { type Scene } from "../../scene.js";
@@ -91,15 +91,54 @@ export declare class PBRSheenConfiguration extends MaterialPluginBase {
91
91
  */
92
92
  isCompatible(): boolean;
93
93
  constructor(material: PBRBaseMaterial, addToPluginList?: boolean);
94
+ /**
95
+ * Checks whether the sheen textures are ready for the sub mesh.
96
+ * @param defines defines the material defines to inspect
97
+ * @param scene defines the scene to use for readiness checks
98
+ * @returns true if sheen is ready
99
+ */
94
100
  isReadyForSubMesh(defines: MaterialSheenDefines, scene: Scene): boolean;
101
+ /**
102
+ * Updates shader defines for sheen before attributes are processed.
103
+ * @param defines defines the material defines to update
104
+ * @param scene defines the scene to use for texture checks
105
+ */
95
106
  prepareDefinesBeforeAttributes(defines: MaterialSheenDefines, scene: Scene): void;
107
+ /**
108
+ * Binds sheen data for a sub mesh.
109
+ * @param uniformBuffer defines the uniform buffer to update
110
+ * @param scene defines the scene to use for texture binding
111
+ * @param engine defines the engine to use for capability checks
112
+ * @param subMesh defines the sub mesh being rendered
113
+ */
96
114
  bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, engine: Engine, subMesh: SubMesh): void;
115
+ /**
116
+ * Checks whether sheen uses a texture.
117
+ * @param texture defines the texture to check
118
+ * @returns true if the texture is used by sheen
119
+ */
97
120
  hasTexture(texture: BaseTexture): boolean;
121
+ /**
122
+ * Adds the active sheen textures.
123
+ * @param activeTextures defines the list of active textures to update
124
+ */
98
125
  getActiveTextures(activeTextures: BaseTexture[]): void;
126
+ /**
127
+ * Adds the animatable sheen textures.
128
+ * @param animatables defines the list of animatables to update
129
+ */
99
130
  getAnimatables(animatables: IAnimatable[]): void;
131
+ /**
132
+ * Disposes the sheen textures.
133
+ * @param forceDisposeTextures defines whether to dispose the textures
134
+ */
100
135
  dispose(forceDisposeTextures?: boolean): void;
101
136
  getClassName(): string;
102
137
  addFallbacks(defines: MaterialSheenDefines, fallbacks: EffectFallbacks, currentRank: number): number;
138
+ /**
139
+ * Adds the sheen sampler names.
140
+ * @param samplers defines the list of sampler names to update
141
+ */
103
142
  getSamplers(samplers: string[]): void;
104
143
  getUniforms(): {
105
144
  ubo?: Array<{
@@ -1,10 +1,10 @@
1
1
  import { __decorate } from "../../tslib.es6.js";
2
2
  /* eslint-disable @typescript-eslint/naming-convention */
3
3
  import { serialize, expandToProperty, serializeAsColor3, serializeAsTexture } from "../../Misc/decorators.js";
4
- import { Color3 } from "../../Maths/math.color.js";
4
+ import { Color3 } from "../../Maths/math.color.pure.js";
5
5
  import { MaterialFlags } from "../../Materials/materialFlags.js";
6
6
 
7
- import { MaterialPluginBase } from "../materialPluginBase.js";
7
+ import { MaterialPluginBase } from "../materialPluginBase.pure.js";
8
8
  import { MaterialDefines } from "../materialDefines.js";
9
9
  import { BindTextureMatrix, PrepareDefinesForMergedUV } from "../materialHelper.functions.js";
10
10
  /**
@@ -97,6 +97,12 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
97
97
  this.albedoScaling = false;
98
98
  this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
99
99
  }
100
+ /**
101
+ * Checks whether the sheen textures are ready for the sub mesh.
102
+ * @param defines defines the material defines to inspect
103
+ * @param scene defines the scene to use for readiness checks
104
+ * @returns true if sheen is ready
105
+ */
100
106
  isReadyForSubMesh(defines, scene) {
101
107
  if (!this._isEnabled) {
102
108
  return true;
@@ -117,6 +123,11 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
117
123
  }
118
124
  return true;
119
125
  }
126
+ /**
127
+ * Updates shader defines for sheen before attributes are processed.
128
+ * @param defines defines the material defines to update
129
+ * @param scene defines the scene to use for texture checks
130
+ */
120
131
  prepareDefinesBeforeAttributes(defines, scene) {
121
132
  if (this._isEnabled) {
122
133
  defines.SHEEN = true;
@@ -155,6 +166,13 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
155
166
  defines.SHEEN_TEXTURE_ROUGHNESSDIRECTUV = 0;
156
167
  }
157
168
  }
169
+ /**
170
+ * Binds sheen data for a sub mesh.
171
+ * @param uniformBuffer defines the uniform buffer to update
172
+ * @param scene defines the scene to use for texture binding
173
+ * @param engine defines the engine to use for capability checks
174
+ * @param subMesh defines the sub mesh being rendered
175
+ */
158
176
  bindForSubMesh(uniformBuffer, scene, engine, subMesh) {
159
177
  if (!this._isEnabled) {
160
178
  return;
@@ -187,6 +205,11 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
187
205
  }
188
206
  }
189
207
  }
208
+ /**
209
+ * Checks whether sheen uses a texture.
210
+ * @param texture defines the texture to check
211
+ * @returns true if the texture is used by sheen
212
+ */
190
213
  hasTexture(texture) {
191
214
  if (this._texture === texture) {
192
215
  return true;
@@ -196,6 +219,10 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
196
219
  }
197
220
  return false;
198
221
  }
222
+ /**
223
+ * Adds the active sheen textures.
224
+ * @param activeTextures defines the list of active textures to update
225
+ */
199
226
  getActiveTextures(activeTextures) {
200
227
  if (this._texture) {
201
228
  activeTextures.push(this._texture);
@@ -204,6 +231,10 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
204
231
  activeTextures.push(this._textureRoughness);
205
232
  }
206
233
  }
234
+ /**
235
+ * Adds the animatable sheen textures.
236
+ * @param animatables defines the list of animatables to update
237
+ */
207
238
  getAnimatables(animatables) {
208
239
  if (this._texture && this._texture.animations && this._texture.animations.length > 0) {
209
240
  animatables.push(this._texture);
@@ -212,6 +243,10 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
212
243
  animatables.push(this._textureRoughness);
213
244
  }
214
245
  }
246
+ /**
247
+ * Disposes the sheen textures.
248
+ * @param forceDisposeTextures defines whether to dispose the textures
249
+ */
215
250
  dispose(forceDisposeTextures) {
216
251
  if (forceDisposeTextures) {
217
252
  this._texture?.dispose();
@@ -227,6 +262,10 @@ export class PBRSheenConfiguration extends MaterialPluginBase {
227
262
  }
228
263
  return currentRank;
229
264
  }
265
+ /**
266
+ * Adds the sheen sampler names.
267
+ * @param samplers defines the list of sampler names to update
268
+ */
230
269
  getSamplers(samplers) {
231
270
  samplers.push("sheenSampler", "sheenRoughnessSampler");
232
271
  }