@onerjs/core 8.52.7 → 8.52.9

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 (1060) 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/subNodes/audioAnalyzerSubNode.d.ts +2 -0
  23. package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.js.map +1 -1
  24. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.d.ts +13 -3
  25. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js +16 -0
  26. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js.map +1 -1
  27. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
  28. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
  29. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
  30. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
  31. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
  32. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
  33. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.d.ts +4 -0
  34. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js +22 -0
  35. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js.map +1 -1
  36. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
  37. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
  38. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  39. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.d.ts +6 -0
  40. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js +22 -5
  41. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js.map +1 -1
  42. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  43. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  44. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  45. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  46. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  47. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  48. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  49. package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
  50. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
  51. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  52. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  53. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  54. package/Behaviors/Cameras/framingBehavior.js +2 -2
  55. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  56. package/Behaviors/Cameras/interpolatingBehavior.d.ts +13 -1
  57. package/Behaviors/Cameras/interpolatingBehavior.js +13 -1
  58. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  60. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  61. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
  62. package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
  63. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  64. package/Behaviors/Meshes/followBehavior.js +1 -1
  65. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  66. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  67. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  68. package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
  69. package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
  70. package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
  71. package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
  72. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  73. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
  74. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
  75. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  76. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
  77. package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
  78. package/Bones/boneIKController.d.ts +1 -1
  79. package/Bones/boneIKController.js +1 -1
  80. package/Bones/boneIKController.js.map +1 -1
  81. package/Bones/boneLookController.d.ts +1 -1
  82. package/Bones/boneLookController.js +1 -1
  83. package/Bones/boneLookController.js.map +1 -1
  84. package/Bones/skeleton.d.ts +2 -2
  85. package/Bones/skeleton.functions.d.ts +1 -1
  86. package/Bones/skeleton.functions.js +3 -3
  87. package/Bones/skeleton.functions.js.map +1 -1
  88. package/Bones/skeleton.js +3 -4
  89. package/Bones/skeleton.js.map +1 -1
  90. package/Buffers/buffer.align.pure.js +6 -0
  91. package/Buffers/buffer.align.pure.js.map +1 -1
  92. package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
  93. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  94. package/Buffers/buffer.pure.d.ts +8 -0
  95. package/Buffers/buffer.pure.js +31 -2
  96. package/Buffers/buffer.pure.js.map +1 -1
  97. package/Buffers/bufferUtils.js +17 -5
  98. package/Buffers/bufferUtils.js.map +1 -1
  99. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
  100. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  101. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  102. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  103. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  104. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  105. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  106. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  107. package/Cameras/Inputs/flyCameraKeyboardInput.js +2 -2
  108. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  109. package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
  110. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  111. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  112. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  113. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
  114. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  115. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  116. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  117. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +2 -2
  118. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  119. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  120. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  121. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  122. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  123. package/Cameras/Inputs/freeCameraTouchInput.js +2 -2
  124. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  125. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +1 -1
  126. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  127. package/Cameras/Limits/geospatialLimits.d.ts +1 -1
  128. package/Cameras/Limits/geospatialLimits.js +1 -1
  129. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  130. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  131. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  132. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
  133. package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
  134. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  135. package/Cameras/RigModes/vrRigMode.js +2 -2
  136. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  137. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  138. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
  139. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  140. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  141. package/Cameras/VR/vrCameraMetrics.js +1 -1
  142. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  143. package/Cameras/cameraInputsManager.d.ts +1 -1
  144. package/Cameras/cameraInputsManager.js +1 -1
  145. package/Cameras/cameraInputsManager.js.map +1 -1
  146. package/Cameras/targetCamera.pure.js +3 -0
  147. package/Cameras/targetCamera.pure.js.map +1 -1
  148. package/Collisions/collider.d.ts +1 -1
  149. package/Collisions/collider.js +1 -1
  150. package/Collisions/collider.js.map +1 -1
  151. package/Collisions/gpuPicker.d.ts +1 -1
  152. package/Collisions/gpuPicker.js +5 -5
  153. package/Collisions/gpuPicker.js.map +1 -1
  154. package/Collisions/meshCollisionData.d.ts +1 -1
  155. package/Collisions/meshCollisionData.js +1 -1
  156. package/Collisions/meshCollisionData.js.map +1 -1
  157. package/Collisions/pickingInfo.d.ts +1 -1
  158. package/Collisions/pickingInfo.js +2 -2
  159. package/Collisions/pickingInfo.js.map +1 -1
  160. package/Compute/computeEffect.d.ts +6 -0
  161. package/Compute/computeEffect.js +3 -0
  162. package/Compute/computeEffect.js.map +1 -1
  163. package/Compute/computeShader.pure.d.ts +4 -0
  164. package/Compute/computeShader.pure.js +1 -0
  165. package/Compute/computeShader.pure.js.map +1 -1
  166. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  167. package/Culling/Octrees/octreeBlock.js +1 -1
  168. package/Culling/Octrees/octreeBlock.js.map +1 -1
  169. package/Culling/boundingBox.d.ts +1 -1
  170. package/Culling/boundingBox.js +1 -1
  171. package/Culling/boundingBox.js.map +1 -1
  172. package/Culling/boundingInfo.d.ts +1 -1
  173. package/Culling/boundingInfo.js +1 -1
  174. package/Culling/boundingInfo.js.map +1 -1
  175. package/Culling/boundingSphere.d.ts +1 -1
  176. package/Culling/boundingSphere.js +1 -1
  177. package/Culling/boundingSphere.js.map +1 -1
  178. package/Culling/ray.core.d.ts +1 -1
  179. package/Culling/ray.core.js +1 -1
  180. package/Culling/ray.core.js.map +1 -1
  181. package/Debug/axesViewer.d.ts +1 -1
  182. package/Debug/axesViewer.js +3 -3
  183. package/Debug/axesViewer.js.map +1 -1
  184. package/Debug/boneAxesViewer.d.ts +1 -1
  185. package/Debug/boneAxesViewer.js +1 -1
  186. package/Debug/boneAxesViewer.js.map +1 -1
  187. package/Debug/directionalLightFrustumViewer.d.ts +1 -1
  188. package/Debug/directionalLightFrustumViewer.js +6 -6
  189. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  190. package/Debug/rayHelper.d.ts +1 -1
  191. package/Debug/rayHelper.js +2 -2
  192. package/Debug/rayHelper.js.map +1 -1
  193. package/Debug/skeletonViewer.d.ts +2 -2
  194. package/Debug/skeletonViewer.js +10 -10
  195. package/Debug/skeletonViewer.js.map +1 -1
  196. package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
  197. package/DeviceInput/internalDeviceSourceManager.js +0 -1
  198. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  199. package/DeviceInput/webDeviceInputSystem.js +1 -1
  200. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  201. package/Engines/Extensions/engine.views.d.ts +1 -1
  202. package/Engines/Extensions/engine.views.js +1 -1
  203. package/Engines/Extensions/engine.views.js.map +1 -1
  204. package/Engines/Native/nativeHelpers.js +4 -1
  205. package/Engines/Native/nativeHelpers.js.map +1 -1
  206. package/Engines/WebGPU/Extensions/engine.computeShader.pure.js +154 -2
  207. package/Engines/WebGPU/Extensions/engine.computeShader.pure.js.map +1 -1
  208. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  209. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
  210. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  211. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  212. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  213. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  214. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  215. package/Engines/abstractEngine.pure.d.ts +7 -1
  216. package/Engines/abstractEngine.pure.js +34 -4
  217. package/Engines/abstractEngine.pure.js.map +1 -1
  218. package/Engines/constants.d.ts +4 -0
  219. package/Engines/constants.js +4 -0
  220. package/Engines/constants.js.map +1 -1
  221. package/Engines/engine.pure.d.ts +0 -7
  222. package/Engines/engine.pure.js +0 -34
  223. package/Engines/engine.pure.js.map +1 -1
  224. package/Engines/engineFactory.d.ts +2 -2
  225. package/Engines/engineFactory.js +3 -3
  226. package/Engines/engineFactory.js.map +1 -1
  227. package/Engines/thinNativeEngine.pure.js +2 -2
  228. package/Engines/thinNativeEngine.pure.js.map +1 -1
  229. package/Events/pointerEvents.d.ts +1 -1
  230. package/Events/pointerEvents.js +1 -1
  231. package/Events/pointerEvents.js.map +1 -1
  232. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
  233. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
  234. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  235. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  236. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  237. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
  238. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
  239. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
  240. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
  241. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
  242. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +1 -1
  243. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
  244. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
  245. package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
  246. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  247. package/FlowGraph/flowGraphBlock.d.ts +1 -1
  248. package/FlowGraph/flowGraphBlock.js +1 -1
  249. package/FlowGraph/flowGraphBlock.js.map +1 -1
  250. package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
  251. package/FlowGraph/flowGraphExecutionBlock.js +1 -1
  252. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  253. package/FlowGraph/flowGraphMath.d.ts +1 -1
  254. package/FlowGraph/flowGraphMath.js +1 -1
  255. package/FlowGraph/flowGraphMath.js.map +1 -1
  256. package/FlowGraph/flowGraphParser.js +1 -1
  257. package/FlowGraph/flowGraphParser.js.map +1 -1
  258. package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
  259. package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
  260. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  261. package/FlowGraph/flowGraphValidator.js.map +1 -1
  262. package/FlowGraph/serialization.js +4 -4
  263. package/FlowGraph/serialization.js.map +1 -1
  264. package/FlowGraph/utils.js.map +1 -1
  265. package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
  266. package/FrameGraph/Node/nodeRenderGraph.js +7 -7
  267. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  268. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
  269. package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
  270. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  271. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
  272. package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
  273. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
  274. package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
  275. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
  276. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  277. package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
  278. package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
  279. package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
  280. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
  281. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  282. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
  283. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
  284. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
  285. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
  286. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
  287. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
  288. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
  289. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  290. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
  291. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
  292. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  293. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
  294. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
  295. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  296. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
  297. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
  298. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  299. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
  300. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
  301. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
  302. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
  303. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
  304. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
  305. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
  306. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
  307. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
  308. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
  309. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
  310. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  311. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  312. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
  313. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  314. package/FrameGraph/frameGraphRenderContext.js +1 -1
  315. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  316. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  317. package/FrameGraph/frameGraphTextureManager.js +1 -1
  318. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  319. package/Gamepads/gamepadManager.js +1 -1
  320. package/Gamepads/gamepadManager.js.map +1 -1
  321. package/Gizmos/axisDragGizmo.d.ts +5 -5
  322. package/Gizmos/axisDragGizmo.js +6 -6
  323. package/Gizmos/axisDragGizmo.js.map +1 -1
  324. package/Gizmos/axisScaleGizmo.d.ts +4 -4
  325. package/Gizmos/axisScaleGizmo.js +6 -6
  326. package/Gizmos/axisScaleGizmo.js.map +1 -1
  327. package/Gizmos/boundingBoxGizmo.d.ts +5 -5
  328. package/Gizmos/boundingBoxGizmo.js +7 -7
  329. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  330. package/Gizmos/cameraGizmo.d.ts +3 -3
  331. package/Gizmos/cameraGizmo.js +7 -7
  332. package/Gizmos/cameraGizmo.js.map +1 -1
  333. package/Gizmos/gizmo.d.ts +2 -2
  334. package/Gizmos/gizmo.js +3 -3
  335. package/Gizmos/gizmo.js.map +1 -1
  336. package/Gizmos/gizmoManager.d.ts +2 -2
  337. package/Gizmos/gizmoManager.js +2 -2
  338. package/Gizmos/gizmoManager.js.map +1 -1
  339. package/Gizmos/lightGizmo.d.ts +4 -4
  340. package/Gizmos/lightGizmo.js +11 -11
  341. package/Gizmos/lightGizmo.js.map +1 -1
  342. package/Gizmos/planeDragGizmo.d.ts +4 -4
  343. package/Gizmos/planeDragGizmo.js +5 -5
  344. package/Gizmos/planeDragGizmo.js.map +1 -1
  345. package/Gizmos/positionGizmo.d.ts +1 -1
  346. package/Gizmos/positionGizmo.js +2 -2
  347. package/Gizmos/positionGizmo.js.map +1 -1
  348. package/Gizmos/rotationGizmo.d.ts +3 -3
  349. package/Gizmos/rotationGizmo.js +3 -3
  350. package/Gizmos/rotationGizmo.js.map +1 -1
  351. package/Gizmos/scaleGizmo.d.ts +2 -2
  352. package/Gizmos/scaleGizmo.js +4 -4
  353. package/Gizmos/scaleGizmo.js.map +1 -1
  354. package/Gizmos/spatialAudioGizmo.d.ts +2 -2
  355. package/Gizmos/spatialAudioGizmo.js +6 -6
  356. package/Gizmos/spatialAudioGizmo.js.map +1 -1
  357. package/Helpers/environmentHelper.d.ts +6 -6
  358. package/Helpers/environmentHelper.js +12 -12
  359. package/Helpers/environmentHelper.js.map +1 -1
  360. package/Helpers/materialConversionHelper.d.ts +1 -1
  361. package/Helpers/materialConversionHelper.js +1 -1
  362. package/Helpers/materialConversionHelper.js.map +1 -1
  363. package/Helpers/photoDome.d.ts +1 -1
  364. package/Helpers/photoDome.js +1 -1
  365. package/Helpers/photoDome.js.map +1 -1
  366. package/Helpers/textureDome.d.ts +4 -4
  367. package/Helpers/textureDome.js +6 -6
  368. package/Helpers/textureDome.js.map +1 -1
  369. package/Helpers/videoDome.d.ts +1 -1
  370. package/Helpers/videoDome.js +2 -2
  371. package/Helpers/videoDome.js.map +1 -1
  372. package/Inputs/scene.inputManager.d.ts +1 -1
  373. package/Inputs/scene.inputManager.js +1 -1
  374. package/Inputs/scene.inputManager.js.map +1 -1
  375. package/Instrumentation/sceneInstrumentation.js +1 -1
  376. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  377. package/Layers/effectLayer.d.ts +1 -1
  378. package/Layers/effectLayer.js +3 -3
  379. package/Layers/effectLayer.js.map +1 -1
  380. package/Layers/layer.d.ts +2 -2
  381. package/Layers/layer.js +4 -4
  382. package/Layers/layer.js.map +1 -1
  383. package/Layers/thinEffectLayer.d.ts +2 -2
  384. package/Layers/thinEffectLayer.js +3 -3
  385. package/Layers/thinEffectLayer.js.map +1 -1
  386. package/Layers/thinGlowLayer.d.ts +1 -1
  387. package/Layers/thinGlowLayer.js +3 -3
  388. package/Layers/thinGlowLayer.js.map +1 -1
  389. package/Layers/thinHighlightLayer.d.ts +1 -1
  390. package/Layers/thinHighlightLayer.js +3 -3
  391. package/Layers/thinHighlightLayer.js.map +1 -1
  392. package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
  393. package/Layers/thinSelectionOutlineLayer.js +3 -3
  394. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  395. package/Legacy/legacy.js +12 -1
  396. package/Legacy/legacy.js.map +1 -1
  397. package/LensFlares/lensFlare.d.ts +2 -2
  398. package/LensFlares/lensFlare.js +3 -3
  399. package/LensFlares/lensFlare.js.map +1 -1
  400. package/LensFlares/lensFlareSystem.d.ts +1 -1
  401. package/LensFlares/lensFlareSystem.js +6 -6
  402. package/LensFlares/lensFlareSystem.js.map +1 -1
  403. package/Lights/LTC/ltcTextureTool.js +1 -1
  404. package/Lights/LTC/ltcTextureTool.js.map +1 -1
  405. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
  406. package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
  407. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  408. package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
  409. package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
  410. package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
  411. package/Lights/Shadows/pure.d.ts +1 -0
  412. package/Lights/Shadows/pure.js +1 -0
  413. package/Lights/Shadows/pure.js.map +1 -1
  414. package/Lights/Shadows/shadowGenerator.d.ts +3 -3
  415. package/Lights/Shadows/shadowGenerator.js +7 -7
  416. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  417. package/Lights/areaLight.d.ts +1 -1
  418. package/Lights/areaLight.js +0 -1
  419. package/Lights/areaLight.js.map +1 -1
  420. package/Lights/light.d.ts +2 -2
  421. package/Lights/light.js +2 -2
  422. package/Lights/light.js.map +1 -1
  423. package/Lights/shadowLight.d.ts +1 -1
  424. package/Lights/shadowLight.js +1 -1
  425. package/Lights/shadowLight.js.map +1 -1
  426. package/Loading/sceneLoader.d.ts +2 -2
  427. package/Loading/sceneLoader.js +3 -3
  428. package/Loading/sceneLoader.js.map +1 -1
  429. package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
  430. package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
  431. package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
  432. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
  433. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
  434. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  435. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
  436. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  437. package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
  438. package/Materials/Node/nodeMaterial.pure.js +68 -13
  439. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  440. package/Materials/Node/nodeMaterialDefault.js +14 -14
  441. package/Materials/Node/nodeMaterialDefault.js.map +1 -1
  442. package/Materials/PBR/openpbrMaterial.pure.js +19 -4
  443. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  444. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
  445. package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
  446. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  447. package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
  448. package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
  449. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  450. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
  451. package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
  452. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  453. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
  454. package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
  455. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  456. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
  457. package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
  458. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  459. package/Materials/PBR/pbrMaterial.pure.d.ts +6 -0
  460. package/Materials/PBR/pbrMaterial.pure.js +8 -0
  461. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  462. package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
  463. package/Materials/PBR/pbrSheenConfiguration.js +41 -2
  464. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  465. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
  466. package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
  467. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  468. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  469. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  470. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
  471. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
  472. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
  473. package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
  474. package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
  475. package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
  476. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
  477. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
  478. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  479. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  480. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  481. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  482. package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
  483. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  484. package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
  485. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  486. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  487. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  488. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  489. package/Materials/Textures/Packer/packer.d.ts +1 -1
  490. package/Materials/Textures/Packer/packer.js +6 -6
  491. package/Materials/Textures/Packer/packer.js.map +1 -1
  492. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  493. package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
  494. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  495. package/Materials/Textures/Procedurals/noiseProceduralTexture.pure.js +17 -5
  496. package/Materials/Textures/Procedurals/noiseProceduralTexture.pure.js.map +1 -1
  497. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
  498. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  499. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
  500. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  501. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  502. package/Materials/Textures/prePassRenderTarget.js +1 -1
  503. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  504. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  505. package/Materials/Textures/rawCubeTexture.js +2 -2
  506. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  507. package/Materials/Textures/rawTexture.d.ts +1 -1
  508. package/Materials/Textures/rawTexture.js +1 -1
  509. package/Materials/Textures/rawTexture.js.map +1 -1
  510. package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
  511. package/Materials/Textures/rawTexture2DArray.js +1 -1
  512. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  513. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  514. package/Materials/Textures/rawTexture3D.js +1 -1
  515. package/Materials/Textures/rawTexture3D.js.map +1 -1
  516. package/Materials/Textures/refractionTexture.d.ts +1 -1
  517. package/Materials/Textures/refractionTexture.js +1 -1
  518. package/Materials/Textures/refractionTexture.js.map +1 -1
  519. package/Materials/Textures/textureMerger.d.ts +1 -1
  520. package/Materials/Textures/textureMerger.js +1 -1
  521. package/Materials/Textures/textureMerger.js.map +1 -1
  522. package/Materials/Textures/textureProcessor.d.ts +1 -1
  523. package/Materials/Textures/textureProcessor.js +2 -2
  524. package/Materials/Textures/textureProcessor.js.map +1 -1
  525. package/Materials/clipPlaneMaterialHelper.js +1 -1
  526. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  527. package/Materials/effect.pure.d.ts +2 -2
  528. package/Materials/effect.pure.js +12 -6
  529. package/Materials/effect.pure.js.map +1 -1
  530. package/Materials/effectRenderer.pure.js +4 -2
  531. package/Materials/effectRenderer.pure.js.map +1 -1
  532. package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
  533. package/Materials/floatingOriginMatrixOverrides.js +1 -1
  534. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  535. package/Materials/material.detailMapConfiguration.d.ts +39 -1
  536. package/Materials/material.detailMapConfiguration.js +39 -1
  537. package/Materials/material.detailMapConfiguration.js.map +1 -1
  538. package/Materials/materialHelper.geometryrendering.d.ts +1 -1
  539. package/Materials/materialHelper.geometryrendering.js +1 -1
  540. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  541. package/Materials/materialPluginFactoryExport.js +2 -2
  542. package/Materials/materialPluginFactoryExport.js.map +1 -1
  543. package/Materials/meshDebugPluginMaterial.pure.js +15 -13
  544. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  545. package/Materials/pushMaterial.d.ts +7 -1
  546. package/Materials/pushMaterial.js +7 -1
  547. package/Materials/pushMaterial.js.map +1 -1
  548. package/Materials/uniformBuffer.js +1 -1
  549. package/Materials/uniformBuffer.js.map +1 -1
  550. package/Maths/math.axis.d.ts +1 -1
  551. package/Maths/math.axis.js +1 -1
  552. package/Maths/math.axis.js.map +1 -1
  553. package/Maths/math.d.ts +2 -2
  554. package/Maths/math.functions.d.ts +1 -1
  555. package/Maths/math.functions.js +1 -1
  556. package/Maths/math.functions.js.map +1 -1
  557. package/Maths/math.isovector.d.ts +1 -1
  558. package/Maths/math.isovector.js +1 -1
  559. package/Maths/math.isovector.js.map +1 -1
  560. package/Maths/math.js +2 -2
  561. package/Maths/math.js.map +1 -1
  562. package/Maths/math.path.d.ts +1 -1
  563. package/Maths/math.path.js +1 -1
  564. package/Maths/math.path.js.map +1 -1
  565. package/Maths/math.plane.d.ts +1 -1
  566. package/Maths/math.plane.js +1 -1
  567. package/Maths/math.plane.js.map +1 -1
  568. package/Maths/math.polar.d.ts +1 -1
  569. package/Maths/math.polar.js +1 -1
  570. package/Maths/math.polar.js.map +1 -1
  571. package/Maths/math.vertexFormat.d.ts +1 -1
  572. package/Maths/math.vertexFormat.js +1 -1
  573. package/Maths/math.vertexFormat.js.map +1 -1
  574. package/Maths/pure.d.ts +1 -0
  575. package/Maths/pure.js +1 -0
  576. package/Maths/pure.js.map +1 -1
  577. package/Meshes/Builders/geodesicBuilder.js +1 -1
  578. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  579. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  580. package/Meshes/Builders/goldbergBuilder.js +4 -4
  581. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  582. package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
  583. package/Meshes/Builders/greasedLineBuilder.js +5 -5
  584. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  585. package/Meshes/Builders/textBuilder.d.ts +2 -2
  586. package/Meshes/Builders/textBuilder.js +4 -4
  587. package/Meshes/Builders/textBuilder.js.map +1 -1
  588. package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
  589. package/Meshes/Builders/tiledBoxBuilder.js +3 -3
  590. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  591. package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
  592. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  593. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  594. package/Meshes/Compression/dracoCodec.js +1 -1
  595. package/Meshes/Compression/dracoCodec.js.map +1 -1
  596. package/Meshes/Compression/dracoDecoder.js +1 -1
  597. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  598. package/Meshes/Compression/dracoEncoder.d.ts +1 -1
  599. package/Meshes/Compression/dracoEncoder.js +2 -2
  600. package/Meshes/Compression/dracoEncoder.js.map +1 -1
  601. package/Meshes/Compression/meshoptCompression.js +1 -1
  602. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  603. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +9 -3
  604. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  605. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  606. package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
  607. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  608. package/Meshes/Node/nodeGeometry.d.ts +2 -2
  609. package/Meshes/Node/nodeGeometry.js +4 -4
  610. package/Meshes/Node/nodeGeometry.js.map +1 -1
  611. package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
  612. package/Meshes/Node/nodeGeometryBuildState.js +1 -1
  613. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  614. package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
  615. package/Meshes/abstractMesh.hotSpot.js +2 -2
  616. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  617. package/Meshes/abstractMesh.pure.js +2 -13
  618. package/Meshes/abstractMesh.pure.js.map +1 -1
  619. package/Meshes/buffer.d.ts +1 -1
  620. package/Meshes/buffer.js +1 -1
  621. package/Meshes/buffer.js.map +1 -1
  622. package/Meshes/csg.d.ts +3 -3
  623. package/Meshes/csg.js +4 -4
  624. package/Meshes/csg.js.map +1 -1
  625. package/Meshes/csg2.d.ts +1 -1
  626. package/Meshes/csg2.js +4 -4
  627. package/Meshes/csg2.js.map +1 -1
  628. package/Meshes/geodesicMesh.d.ts +1 -1
  629. package/Meshes/geodesicMesh.js +1 -1
  630. package/Meshes/geodesicMesh.js.map +1 -1
  631. package/Meshes/geometry.d.ts +2 -2
  632. package/Meshes/geometry.js +4 -4
  633. package/Meshes/geometry.js.map +1 -1
  634. package/Meshes/lattice.d.ts +1 -1
  635. package/Meshes/lattice.js +1 -1
  636. package/Meshes/lattice.js.map +1 -1
  637. package/Meshes/lattice.material.d.ts +1 -1
  638. package/Meshes/lattice.material.js +1 -1
  639. package/Meshes/lattice.material.js.map +1 -1
  640. package/Meshes/mesh.vertexData.d.ts +2 -2
  641. package/Meshes/mesh.vertexData.js +3 -4
  642. package/Meshes/mesh.vertexData.js.map +1 -1
  643. package/Meshes/mesh.vertexData.subdivide.js +1 -1
  644. package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
  645. package/Meshes/meshBuilder.d.ts +18 -18
  646. package/Meshes/meshBuilder.js +18 -18
  647. package/Meshes/meshBuilder.js.map +1 -1
  648. package/Meshes/meshSimplification.d.ts +1 -1
  649. package/Meshes/meshSimplification.js +4 -4
  650. package/Meshes/meshSimplification.js.map +1 -1
  651. package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
  652. package/Meshes/meshUVSpaceRenderer.js +0 -1
  653. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  654. package/Meshes/meshUtils.d.ts +1 -1
  655. package/Meshes/meshUtils.js +2 -2
  656. package/Meshes/meshUtils.js.map +1 -1
  657. package/Meshes/polygonMesh.d.ts +2 -2
  658. package/Meshes/polygonMesh.js +3 -3
  659. package/Meshes/polygonMesh.js.map +1 -1
  660. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  661. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  662. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  663. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  664. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  665. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  666. package/Misc/areaLightsTextureTools.d.ts +1 -1
  667. package/Misc/areaLightsTextureTools.js +3 -3
  668. package/Misc/areaLightsTextureTools.js.map +1 -1
  669. package/Misc/assetsManager.d.ts +4 -4
  670. package/Misc/assetsManager.js +5 -5
  671. package/Misc/assetsManager.js.map +1 -1
  672. package/Misc/basisWorker.js +1 -1
  673. package/Misc/basisWorker.js.map +1 -1
  674. package/Misc/brdfTextureTools.js +1 -1
  675. package/Misc/brdfTextureTools.js.map +1 -1
  676. package/Misc/copyTextureToTexture.d.ts +1 -1
  677. package/Misc/copyTextureToTexture.js +1 -1
  678. package/Misc/copyTextureToTexture.js.map +1 -1
  679. package/Misc/decorators.serialization.js +2 -2
  680. package/Misc/decorators.serialization.js.map +1 -1
  681. package/Misc/depthReducer.d.ts +2 -2
  682. package/Misc/depthReducer.js +2 -2
  683. package/Misc/depthReducer.js.map +1 -1
  684. package/Misc/gradients.d.ts +1 -1
  685. package/Misc/gradients.js +1 -1
  686. package/Misc/gradients.js.map +1 -1
  687. package/Misc/greasedLineTools.d.ts +1 -1
  688. package/Misc/greasedLineTools.js +3 -3
  689. package/Misc/greasedLineTools.js.map +1 -1
  690. package/Misc/halfFloat.d.ts +17 -0
  691. package/Misc/halfFloat.js +131 -0
  692. package/Misc/halfFloat.js.map +1 -0
  693. package/Misc/khronosTextureContainer2.js +1 -1
  694. package/Misc/khronosTextureContainer2.js.map +1 -1
  695. package/Misc/meshExploder.js +1 -1
  696. package/Misc/meshExploder.js.map +1 -1
  697. package/Misc/pivotTools.js +1 -1
  698. package/Misc/pivotTools.js.map +1 -1
  699. package/Misc/rgbdTextureTools.js +1 -1
  700. package/Misc/rgbdTextureTools.js.map +1 -1
  701. package/Misc/sceneOptimizer.js +1 -1
  702. package/Misc/sceneOptimizer.js.map +1 -1
  703. package/Misc/sceneRecorder.js +7 -7
  704. package/Misc/sceneRecorder.js.map +1 -1
  705. package/Misc/sceneSerializer.js +3 -3
  706. package/Misc/sceneSerializer.js.map +1 -1
  707. package/Misc/snapshotRenderingHelper.js +1 -1
  708. package/Misc/snapshotRenderingHelper.js.map +1 -1
  709. package/Misc/textureTools.d.ts +3 -13
  710. package/Misc/textureTools.js +6 -64
  711. package/Misc/textureTools.js.map +1 -1
  712. package/Misc/thinMinMaxReducer.d.ts +1 -1
  713. package/Misc/thinMinMaxReducer.js +1 -1
  714. package/Misc/thinMinMaxReducer.js.map +1 -1
  715. package/Misc/tools.internals.js +1 -1
  716. package/Misc/tools.internals.js.map +1 -1
  717. package/Misc/tools.pure.js +11 -4
  718. package/Misc/tools.pure.js.map +1 -1
  719. package/Misc/trajectoryClassifier.d.ts +1 -1
  720. package/Misc/trajectoryClassifier.js +1 -1
  721. package/Misc/trajectoryClassifier.js.map +1 -1
  722. package/Misc/videoRecorder.js +1 -1
  723. package/Misc/videoRecorder.js.map +1 -1
  724. package/Misc/virtualJoystick.d.ts +1 -1
  725. package/Misc/virtualJoystick.js +1 -1
  726. package/Misc/virtualJoystick.js.map +1 -1
  727. package/Morph/morphTarget.js +1 -1
  728. package/Morph/morphTarget.js.map +1 -1
  729. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  730. package/Navigation/Plugins/recastJSPlugin.js +2 -2
  731. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  732. package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
  733. package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
  734. package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
  735. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
  736. package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
  737. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  738. package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
  739. package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
  740. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  741. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
  742. package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
  743. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  744. package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
  745. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
  746. package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
  747. package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
  748. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
  749. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  750. package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
  751. package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
  752. package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
  753. package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
  754. package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
  755. package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
  756. package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
  757. package/Particles/Node/nodeParticleBuildState.js +2 -2
  758. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  759. package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
  760. package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
  761. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  762. package/Particles/Node/nodeParticleSystemSet.js +8 -8
  763. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  764. package/Particles/attractor.d.ts +1 -1
  765. package/Particles/attractor.js +1 -1
  766. package/Particles/attractor.js.map +1 -1
  767. package/Particles/computeShaderParticleSystem.pure.js +5 -1
  768. package/Particles/computeShaderParticleSystem.pure.js.map +1 -1
  769. package/Particles/flowMap.d.ts +7 -1
  770. package/Particles/flowMap.js +7 -1
  771. package/Particles/flowMap.js.map +1 -1
  772. package/Particles/gpuParticleSystem.pure.d.ts +1 -0
  773. package/Particles/gpuParticleSystem.pure.js +17 -1
  774. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  775. package/Particles/particle.d.ts +2 -2
  776. package/Particles/particle.js +2 -2
  777. package/Particles/particle.js.map +1 -1
  778. package/Particles/particleHelper.js +5 -5
  779. package/Particles/particleHelper.js.map +1 -1
  780. package/Particles/particleSystem.functions.d.ts +1 -1
  781. package/Particles/particleSystem.functions.js +1 -1
  782. package/Particles/particleSystem.functions.js.map +1 -1
  783. package/Particles/particleSystemSet.d.ts +1 -1
  784. package/Particles/particleSystemSet.js +5 -5
  785. package/Particles/particleSystemSet.js.map +1 -1
  786. package/Particles/pointsCloudSystem.d.ts +1 -1
  787. package/Particles/pointsCloudSystem.js +6 -6
  788. package/Particles/pointsCloudSystem.js.map +1 -1
  789. package/Particles/solidParticle.d.ts +2 -2
  790. package/Particles/solidParticle.js +3 -3
  791. package/Particles/solidParticle.js.map +1 -1
  792. package/Particles/solidParticleSystem.d.ts +4 -4
  793. package/Particles/solidParticleSystem.js +7 -7
  794. package/Particles/solidParticleSystem.js.map +1 -1
  795. package/Particles/subEmitter.js +1 -1
  796. package/Particles/subEmitter.js.map +1 -1
  797. package/Particles/thinParticleSystem.function.js +2 -2
  798. package/Particles/thinParticleSystem.function.js.map +1 -1
  799. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  800. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  801. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  802. package/Physics/castingResult.d.ts +1 -1
  803. package/Physics/castingResult.js +1 -1
  804. package/Physics/castingResult.js.map +1 -1
  805. package/Physics/physicsHelper.d.ts +1 -1
  806. package/Physics/physicsHelper.js +4 -4
  807. package/Physics/physicsHelper.js.map +1 -1
  808. package/Physics/physicsImpostor.d.ts +1 -1
  809. package/Physics/physicsImpostor.js +1 -1
  810. package/Physics/physicsImpostor.js.map +1 -1
  811. package/Physics/physicsRaycastResult.d.ts +1 -1
  812. package/Physics/physicsRaycastResult.js +1 -1
  813. package/Physics/physicsRaycastResult.js.map +1 -1
  814. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
  815. package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
  816. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  817. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
  818. package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
  819. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
  820. package/Physics/v1/physicsEngine.d.ts +1 -1
  821. package/Physics/v1/physicsEngine.js +1 -1
  822. package/Physics/v1/physicsEngine.js.map +1 -1
  823. package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
  824. package/Physics/v2/Plugins/havokPlugin.js +45 -7
  825. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  826. package/Physics/v2/characterController.d.ts +2 -2
  827. package/Physics/v2/characterController.js +2 -2
  828. package/Physics/v2/characterController.js.map +1 -1
  829. package/Physics/v2/physicsAggregate.d.ts +1 -1
  830. package/Physics/v2/physicsAggregate.js +1 -1
  831. package/Physics/v2/physicsAggregate.js.map +1 -1
  832. package/Physics/v2/physicsBody.d.ts +1 -1
  833. package/Physics/v2/physicsBody.js +1 -1
  834. package/Physics/v2/physicsBody.js.map +1 -1
  835. package/Physics/v2/physicsEngine.d.ts +1 -1
  836. package/Physics/v2/physicsEngine.js +1 -1
  837. package/Physics/v2/physicsEngine.js.map +1 -1
  838. package/Physics/v2/physicsShape.d.ts +1 -1
  839. package/Physics/v2/physicsShape.js +1 -1
  840. package/Physics/v2/physicsShape.js.map +1 -1
  841. package/Physics/v2/ragdoll.d.ts +2 -2
  842. package/Physics/v2/ragdoll.js +2 -2
  843. package/Physics/v2/ragdoll.js.map +1 -1
  844. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
  845. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
  846. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  847. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
  848. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
  849. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  850. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  851. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
  852. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  853. package/PostProcesses/bloomEffect.d.ts +1 -1
  854. package/PostProcesses/bloomEffect.js +4 -4
  855. package/PostProcesses/bloomEffect.js.map +1 -1
  856. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  857. package/PostProcesses/depthOfFieldEffect.js +3 -3
  858. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  859. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
  860. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
  861. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  862. package/PostProcesses/highlightsPostProcess.d.ts +1 -1
  863. package/PostProcesses/highlightsPostProcess.js +1 -1
  864. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  865. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  866. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  867. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  868. package/PostProcesses/postProcessManager.d.ts +3 -0
  869. package/PostProcesses/postProcessManager.js +4 -1
  870. package/PostProcesses/postProcessManager.js.map +1 -1
  871. package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
  872. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
  873. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
  874. package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
  875. package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
  876. package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
  877. package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
  878. package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
  879. package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
  880. package/PostProcesses/thinBloomEffect.js +1 -1
  881. package/PostProcesses/thinBloomEffect.js.map +1 -1
  882. package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
  883. package/PostProcesses/thinBloomMergePostProcess.js +1 -1
  884. package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
  885. package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
  886. package/PostProcesses/thinBlurPostProcess.js +1 -1
  887. package/PostProcesses/thinBlurPostProcess.js.map +1 -1
  888. package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
  889. package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
  890. package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
  891. package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
  892. package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
  893. package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
  894. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
  895. package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
  896. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
  897. package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
  898. package/PostProcesses/thinConvolutionPostProcess.js +1 -1
  899. package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
  900. package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
  901. package/PostProcesses/thinCustomPostProcess.js +1 -1
  902. package/PostProcesses/thinCustomPostProcess.js.map +1 -1
  903. package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
  904. package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
  905. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  906. package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
  907. package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
  908. package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
  909. package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
  910. package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
  911. package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
  912. package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
  913. package/PostProcesses/thinFXAAPostProcess.js +2 -2
  914. package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
  915. package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
  916. package/PostProcesses/thinFilterPostProcess.js +2 -2
  917. package/PostProcesses/thinFilterPostProcess.js.map +1 -1
  918. package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
  919. package/PostProcesses/thinGrainPostProcess.js +1 -1
  920. package/PostProcesses/thinGrainPostProcess.js.map +1 -1
  921. package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
  922. package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
  923. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  924. package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
  925. package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
  926. package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
  927. package/PostProcesses/thinPassPostProcess.d.ts +1 -1
  928. package/PostProcesses/thinPassPostProcess.js +1 -1
  929. package/PostProcesses/thinPassPostProcess.js.map +1 -1
  930. package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
  931. package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
  932. package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
  933. package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
  934. package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
  935. package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
  936. package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
  937. package/PostProcesses/thinSSAO2PostProcess.js +36 -4
  938. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  939. package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
  940. package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
  941. package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
  942. package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
  943. package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
  944. package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
  945. package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
  946. package/PostProcesses/thinSSRPostProcess.js +2 -2
  947. package/PostProcesses/thinSSRPostProcess.js.map +1 -1
  948. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
  949. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
  950. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
  951. package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
  952. package/PostProcesses/thinSharpenPostProcess.js +1 -1
  953. package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
  954. package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
  955. package/PostProcesses/thinTAAPostProcess.js +4 -4
  956. package/PostProcesses/thinTAAPostProcess.js.map +1 -1
  957. package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
  958. package/PostProcesses/thinTonemapPostProcess.js +1 -1
  959. package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
  960. package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
  961. package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
  962. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  963. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
  964. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
  965. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  966. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
  967. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
  968. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
  969. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
  970. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
  971. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  972. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  973. package/Rendering/depthPeelingRenderer.js +2 -2
  974. package/Rendering/depthPeelingRenderer.js.map +1 -1
  975. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  976. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  977. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  978. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  979. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
  980. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  981. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
  982. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
  983. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  984. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  985. package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
  986. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  987. package/Rendering/iblCdfGenerator.d.ts +3 -3
  988. package/Rendering/iblCdfGenerator.js +5 -5
  989. package/Rendering/iblCdfGenerator.js.map +1 -1
  990. package/Rendering/renderingGroup.js +1 -1
  991. package/Rendering/renderingGroup.js.map +1 -1
  992. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  993. package/Rendering/subSurfaceConfiguration.js +2 -2
  994. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  995. package/Rendering/utilityLayerRenderer.d.ts +2 -2
  996. package/Rendering/utilityLayerRenderer.js +4 -4
  997. package/Rendering/utilityLayerRenderer.js.map +1 -1
  998. package/Shaders/ssao2.fragment.js +10 -2
  999. package/Shaders/ssao2.fragment.js.map +1 -1
  1000. package/ShadersWGSL/gpuRenderParticles.fragment.d.ts +5 -0
  1001. package/ShadersWGSL/gpuRenderParticles.fragment.js +50 -0
  1002. package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -0
  1003. package/ShadersWGSL/gpuRenderParticles.vertex.d.ts +5 -0
  1004. package/ShadersWGSL/gpuRenderParticles.vertex.js +120 -0
  1005. package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -0
  1006. package/ShadersWGSL/noise.fragment.d.ts +5 -0
  1007. package/ShadersWGSL/noise.fragment.js +18 -0
  1008. package/ShadersWGSL/noise.fragment.js.map +1 -0
  1009. package/ShadersWGSL/ssao2.fragment.js +10 -2
  1010. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  1011. package/SmartAssets/smartAssetSerializer.js +1 -1
  1012. package/SmartAssets/smartAssetSerializer.js.map +1 -1
  1013. package/Sprites/sprite.d.ts +2 -2
  1014. package/Sprites/sprite.js +2 -2
  1015. package/Sprites/sprite.js.map +1 -1
  1016. package/Sprites/spriteManager.d.ts +2 -2
  1017. package/Sprites/spriteManager.js +4 -5
  1018. package/Sprites/spriteManager.js.map +1 -1
  1019. package/Sprites/spritePackedManager.js +1 -1
  1020. package/Sprites/spritePackedManager.js.map +1 -1
  1021. package/Sprites/spriteRenderer.js +2 -2
  1022. package/Sprites/spriteRenderer.js.map +1 -1
  1023. package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
  1024. package/XR/features/WebXRHitTestLegacy.js +2 -2
  1025. package/XR/features/WebXRHitTestLegacy.js.map +1 -1
  1026. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  1027. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1028. package/XR/motionController/webXRGenericMotionController.js +2 -2
  1029. package/XR/motionController/webXRGenericMotionController.js.map +1 -1
  1030. package/XR/motionController/webXRProfiledMotionController.js +4 -4
  1031. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  1032. package/XR/webXRCamera.d.ts +3 -3
  1033. package/XR/webXRCamera.js +4 -4
  1034. package/XR/webXRCamera.js.map +1 -1
  1035. package/XR/webXRDefaultExperience.d.ts +4 -4
  1036. package/XR/webXRDefaultExperience.js +4 -4
  1037. package/XR/webXRDefaultExperience.js.map +1 -1
  1038. package/XR/webXREnterExitUI.js +1 -1
  1039. package/XR/webXREnterExitUI.js.map +1 -1
  1040. package/XR/webXRExperienceHelper.js +2 -2
  1041. package/XR/webXRExperienceHelper.js.map +1 -1
  1042. package/XR/webXRFeaturesManager.d.ts +47 -0
  1043. package/XR/webXRFeaturesManager.js +1 -1
  1044. package/XR/webXRFeaturesManager.js.map +1 -1
  1045. package/XR/webXRInput.js +1 -1
  1046. package/XR/webXRInput.js.map +1 -1
  1047. package/XR/webXRInputSource.js +4 -4
  1048. package/XR/webXRInputSource.js.map +1 -1
  1049. package/XR/webXRManagedOutputCanvas.js +1 -1
  1050. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  1051. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1052. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1053. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1054. package/assetContainer.d.ts +4 -4
  1055. package/assetContainer.js +6 -6
  1056. package/assetContainer.js.map +1 -1
  1057. package/node.d.ts +1 -1
  1058. package/node.js +6 -2
  1059. package/node.js.map +1 -1
  1060. package/package.json +684 -3
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions, type Effect } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  import { Observable } from "../Misc/observable.js";
4
4
  /**
5
5
  * Class used to apply a custom post process
@@ -1,4 +1,4 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
3
  import { Observable } from "../Misc/observable.js";
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"thinCustomPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinCustomPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAMpD;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,GAAG,OAAO;SACb,CAAC,CAAC;QAlBP;;WAEG;QACI,qBAAgB,GAAuB,IAAI,UAAU,EAAU,CAAC;IAgBvE,CAAC;IAEe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE9B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC;IACrE,CAAC;CACJ","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions, type Effect } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Observable } from \"../Misc/observable\";\r\n\r\n/**\r\n * Class used to apply a custom post process\r\n */\r\nexport class ThinCustomPostProcess extends EffectWrapper {\r\n /**\r\n * Observable triggered when the post process is bound\r\n */\r\n public onBindObservable: Observable<Effect> = new Observable<Effect>();\r\n\r\n /**\r\n * Constructs a new custom post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n ...options,\r\n });\r\n }\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n this.onBindObservable.notifyObservers(this._drawWrapper.effect!);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinCustomPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinCustomPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAMpD;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,GAAG,OAAO;SACb,CAAC,CAAC;QAlBP;;WAEG;QACI,qBAAgB,GAAuB,IAAI,UAAU,EAAU,CAAC;IAgBvE,CAAC;IAEe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE9B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC;IACrE,CAAC;CACJ","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions, type Effect } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Observable } from \"../Misc/observable\";\r\n\r\n/**\r\n * Class used to apply a custom post process\r\n */\r\nexport class ThinCustomPostProcess extends EffectWrapper {\r\n /**\r\n * Observable triggered when the post process is bound\r\n */\r\n public onBindObservable: Observable<Effect> = new Observable<Effect>();\r\n\r\n /**\r\n * Constructs a new custom post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n ...options,\r\n });\r\n }\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n this.onBindObservable.notifyObservers(this._drawWrapper.effect!);\r\n }\r\n}\r\n"]}
@@ -20,6 +20,9 @@ export declare enum ThinDepthOfFieldEffectBlurLevel {
20
20
  */
21
21
  High = 2
22
22
  }
23
+ /**
24
+ * Thin depth of field effect composed of circle of confusion, blur, and merge post processes.
25
+ */
23
26
  export declare class ThinDepthOfFieldEffect {
24
27
  /** @internal */
25
28
  readonly _circleOfConfusion: ThinCircleOfConfusionPostProcess;
@@ -1,7 +1,7 @@
1
1
  import { ThinDepthOfFieldBlurPostProcess } from "./thinDepthOfFieldBlurPostProcess.js";
2
2
  import { ThinCircleOfConfusionPostProcess } from "./thinCircleOfConfusionPostProcess.js";
3
3
  import { ThinDepthOfFieldMergePostProcess } from "./thinDepthOfFieldMergePostProcess.js";
4
- import { Vector2 } from "../Maths/math.vector.js";
4
+ import { Vector2 } from "../Maths/math.vector.pure.js";
5
5
  /**
6
6
  * Specifies the level of blur that should be applied when using the depth of field effect
7
7
  */
@@ -20,6 +20,9 @@ export var ThinDepthOfFieldEffectBlurLevel;
20
20
  */
21
21
  ThinDepthOfFieldEffectBlurLevel[ThinDepthOfFieldEffectBlurLevel["High"] = 2] = "High";
22
22
  })(ThinDepthOfFieldEffectBlurLevel || (ThinDepthOfFieldEffectBlurLevel = {}));
23
+ /**
24
+ * Thin depth of field effect composed of circle of confusion, blur, and merge post processes.
25
+ */
23
26
  export class ThinDepthOfFieldEffect {
24
27
  /**
25
28
  * The focal the length of the camera used in the effect in scene units/1000 (eg. millimeter)
@@ -1 +1 @@
1
- {"version":3,"file":"thinDepthOfFieldEffect.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinDepthOfFieldEffect.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"core/types\";\r\nimport { type AbstractEngine } from \"core/Engines/abstractEngine\";\r\nimport { ThinDepthOfFieldBlurPostProcess } from \"./thinDepthOfFieldBlurPostProcess\";\r\nimport { ThinCircleOfConfusionPostProcess } from \"./thinCircleOfConfusionPostProcess\";\r\nimport { ThinDepthOfFieldMergePostProcess } from \"./thinDepthOfFieldMergePostProcess\";\r\nimport { Vector2 } from \"core/Maths/math.vector\";\r\n\r\n/**\r\n * Specifies the level of blur that should be applied when using the depth of field effect\r\n */\r\nexport const enum ThinDepthOfFieldEffectBlurLevel {\r\n /**\r\n * Subtle blur\r\n */\r\n Low,\r\n /**\r\n * Medium blur\r\n */\r\n Medium,\r\n /**\r\n * Large blur\r\n */\r\n High,\r\n}\r\n\r\nexport class ThinDepthOfFieldEffect {\r\n /** @internal */\r\n public readonly _circleOfConfusion: ThinCircleOfConfusionPostProcess;\r\n /** @internal */\r\n public readonly _depthOfFieldBlurX: Array<[ThinDepthOfFieldBlurPostProcess, number]> = [];\r\n /** @internal */\r\n public readonly _depthOfFieldBlurY: Array<[ThinDepthOfFieldBlurPostProcess, number]> = [];\r\n /** @internal */\r\n public readonly _dofMerge: ThinDepthOfFieldMergePostProcess;\r\n\r\n /**\r\n * The focal the length of the camera used in the effect in scene units/1000 (eg. millimeter)\r\n */\r\n public set focalLength(value: number) {\r\n this._circleOfConfusion.focalLength = value;\r\n }\r\n public get focalLength() {\r\n return this._circleOfConfusion.focalLength;\r\n }\r\n /**\r\n * F-Stop of the effect's camera. The diameter of the resulting aperture can be computed by lensSize/fStop. (default: 1.4)\r\n */\r\n public set fStop(value: number) {\r\n this._circleOfConfusion.fStop = value;\r\n }\r\n public get fStop() {\r\n return this._circleOfConfusion.fStop;\r\n }\r\n /**\r\n * Distance away from the camera to focus on in scene units/1000 (eg. millimeter). (default: 2000)\r\n */\r\n public set focusDistance(value: number) {\r\n this._circleOfConfusion.focusDistance = value;\r\n }\r\n public get focusDistance() {\r\n return this._circleOfConfusion.focusDistance;\r\n }\r\n /**\r\n * Max lens size in scene units/1000 (eg. millimeter). Standard cameras are 50mm. (default: 50) The diameter of the resulting aperture can be computed by lensSize/fStop.\r\n */\r\n public set lensSize(value: number) {\r\n this._circleOfConfusion.lensSize = value;\r\n }\r\n public get lensSize() {\r\n return this._circleOfConfusion.lensSize;\r\n }\r\n\r\n /**\r\n * The quality of the effect.\r\n */\r\n public readonly blurLevel: ThinDepthOfFieldEffectBlurLevel;\r\n\r\n /**\r\n * Creates a new instance of @see ThinDepthOfFieldEffect\r\n * @param name The name of the depth of field render effect\r\n * @param engine The engine which the render effect will be applied. (default: current engine)\r\n * @param blurLevel The quality of the effect. (default: DepthOfFieldEffectBlurLevel.Low)\r\n * @param depthNotNormalized If the (view) depth used in circle of confusion post-process is normalized (0.0 to 1.0 from near to far) or not (0 to camera max distance) (default: false)\r\n * @param blockCompilation If shaders should not be compiled when the effect is created (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n engine: Nullable<AbstractEngine>,\r\n blurLevel: ThinDepthOfFieldEffectBlurLevel = ThinDepthOfFieldEffectBlurLevel.Low,\r\n depthNotNormalized = false,\r\n blockCompilation = false\r\n ) {\r\n this._circleOfConfusion = new ThinCircleOfConfusionPostProcess(name, engine, { depthNotNormalized, blockCompilation });\r\n this.blurLevel = blurLevel;\r\n\r\n let blurCount: number;\r\n let kernelSize: number;\r\n switch (blurLevel) {\r\n case ThinDepthOfFieldEffectBlurLevel.High: {\r\n blurCount = 3;\r\n kernelSize = 51;\r\n break;\r\n }\r\n case ThinDepthOfFieldEffectBlurLevel.Medium: {\r\n blurCount = 2;\r\n kernelSize = 31;\r\n break;\r\n }\r\n default: {\r\n kernelSize = 15;\r\n blurCount = 1;\r\n break;\r\n }\r\n }\r\n\r\n const adjustedKernelSize = kernelSize / Math.pow(2, blurCount - 1);\r\n let ratio = 1.0;\r\n for (let i = 0; i < blurCount; i++) {\r\n this._depthOfFieldBlurY.push([new ThinDepthOfFieldBlurPostProcess(name, engine, new Vector2(0, 1), adjustedKernelSize, { blockCompilation }), ratio]);\r\n ratio = 0.75 / Math.pow(2, i);\r\n this._depthOfFieldBlurX.push([new ThinDepthOfFieldBlurPostProcess(name, engine, new Vector2(1, 0), adjustedKernelSize, { blockCompilation }), ratio]);\r\n }\r\n\r\n this._dofMerge = new ThinDepthOfFieldMergePostProcess(name, engine, { blockCompilation });\r\n }\r\n\r\n /**\r\n * Checks if the effect is ready to be used\r\n * @returns if the effect is ready\r\n */\r\n public isReady() {\r\n let isReady = this._circleOfConfusion.isReady() && this._dofMerge.isReady();\r\n for (let i = 0; i < this._depthOfFieldBlurX.length; i++) {\r\n isReady = isReady && this._depthOfFieldBlurX[i][0].isReady() && this._depthOfFieldBlurY[i][0].isReady();\r\n }\r\n return isReady;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinDepthOfFieldEffect.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinDepthOfFieldEffect.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"core/types\";\r\nimport { type AbstractEngine } from \"core/Engines/abstractEngine\";\r\nimport { ThinDepthOfFieldBlurPostProcess } from \"./thinDepthOfFieldBlurPostProcess\";\r\nimport { ThinCircleOfConfusionPostProcess } from \"./thinCircleOfConfusionPostProcess\";\r\nimport { ThinDepthOfFieldMergePostProcess } from \"./thinDepthOfFieldMergePostProcess\";\r\nimport { Vector2 } from \"core/Maths/math.vector.pure\";\r\n\r\n/**\r\n * Specifies the level of blur that should be applied when using the depth of field effect\r\n */\r\nexport const enum ThinDepthOfFieldEffectBlurLevel {\r\n /**\r\n * Subtle blur\r\n */\r\n Low,\r\n /**\r\n * Medium blur\r\n */\r\n Medium,\r\n /**\r\n * Large blur\r\n */\r\n High,\r\n}\r\n\r\n/**\r\n * Thin depth of field effect composed of circle of confusion, blur, and merge post processes.\r\n */\r\nexport class ThinDepthOfFieldEffect {\r\n /** @internal */\r\n public readonly _circleOfConfusion: ThinCircleOfConfusionPostProcess;\r\n /** @internal */\r\n public readonly _depthOfFieldBlurX: Array<[ThinDepthOfFieldBlurPostProcess, number]> = [];\r\n /** @internal */\r\n public readonly _depthOfFieldBlurY: Array<[ThinDepthOfFieldBlurPostProcess, number]> = [];\r\n /** @internal */\r\n public readonly _dofMerge: ThinDepthOfFieldMergePostProcess;\r\n\r\n /**\r\n * The focal the length of the camera used in the effect in scene units/1000 (eg. millimeter)\r\n */\r\n public set focalLength(value: number) {\r\n this._circleOfConfusion.focalLength = value;\r\n }\r\n public get focalLength() {\r\n return this._circleOfConfusion.focalLength;\r\n }\r\n /**\r\n * F-Stop of the effect's camera. The diameter of the resulting aperture can be computed by lensSize/fStop. (default: 1.4)\r\n */\r\n public set fStop(value: number) {\r\n this._circleOfConfusion.fStop = value;\r\n }\r\n public get fStop() {\r\n return this._circleOfConfusion.fStop;\r\n }\r\n /**\r\n * Distance away from the camera to focus on in scene units/1000 (eg. millimeter). (default: 2000)\r\n */\r\n public set focusDistance(value: number) {\r\n this._circleOfConfusion.focusDistance = value;\r\n }\r\n public get focusDistance() {\r\n return this._circleOfConfusion.focusDistance;\r\n }\r\n /**\r\n * Max lens size in scene units/1000 (eg. millimeter). Standard cameras are 50mm. (default: 50) The diameter of the resulting aperture can be computed by lensSize/fStop.\r\n */\r\n public set lensSize(value: number) {\r\n this._circleOfConfusion.lensSize = value;\r\n }\r\n public get lensSize() {\r\n return this._circleOfConfusion.lensSize;\r\n }\r\n\r\n /**\r\n * The quality of the effect.\r\n */\r\n public readonly blurLevel: ThinDepthOfFieldEffectBlurLevel;\r\n\r\n /**\r\n * Creates a new instance of @see ThinDepthOfFieldEffect\r\n * @param name The name of the depth of field render effect\r\n * @param engine The engine which the render effect will be applied. (default: current engine)\r\n * @param blurLevel The quality of the effect. (default: DepthOfFieldEffectBlurLevel.Low)\r\n * @param depthNotNormalized If the (view) depth used in circle of confusion post-process is normalized (0.0 to 1.0 from near to far) or not (0 to camera max distance) (default: false)\r\n * @param blockCompilation If shaders should not be compiled when the effect is created (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n engine: Nullable<AbstractEngine>,\r\n blurLevel: ThinDepthOfFieldEffectBlurLevel = ThinDepthOfFieldEffectBlurLevel.Low,\r\n depthNotNormalized = false,\r\n blockCompilation = false\r\n ) {\r\n this._circleOfConfusion = new ThinCircleOfConfusionPostProcess(name, engine, { depthNotNormalized, blockCompilation });\r\n this.blurLevel = blurLevel;\r\n\r\n let blurCount: number;\r\n let kernelSize: number;\r\n switch (blurLevel) {\r\n case ThinDepthOfFieldEffectBlurLevel.High: {\r\n blurCount = 3;\r\n kernelSize = 51;\r\n break;\r\n }\r\n case ThinDepthOfFieldEffectBlurLevel.Medium: {\r\n blurCount = 2;\r\n kernelSize = 31;\r\n break;\r\n }\r\n default: {\r\n kernelSize = 15;\r\n blurCount = 1;\r\n break;\r\n }\r\n }\r\n\r\n const adjustedKernelSize = kernelSize / Math.pow(2, blurCount - 1);\r\n let ratio = 1.0;\r\n for (let i = 0; i < blurCount; i++) {\r\n this._depthOfFieldBlurY.push([new ThinDepthOfFieldBlurPostProcess(name, engine, new Vector2(0, 1), adjustedKernelSize, { blockCompilation }), ratio]);\r\n ratio = 0.75 / Math.pow(2, i);\r\n this._depthOfFieldBlurX.push([new ThinDepthOfFieldBlurPostProcess(name, engine, new Vector2(1, 0), adjustedKernelSize, { blockCompilation }), ratio]);\r\n }\r\n\r\n this._dofMerge = new ThinDepthOfFieldMergePostProcess(name, engine, { blockCompilation });\r\n }\r\n\r\n /**\r\n * Checks if the effect is ready to be used\r\n * @returns if the effect is ready\r\n */\r\n public isReady() {\r\n let isReady = this._circleOfConfusion.isReady() && this._dofMerge.isReady();\r\n for (let i = 0; i < this._depthOfFieldBlurX.length; i++) {\r\n isReady = isReady && this._depthOfFieldBlurX[i][0].isReady() && this._depthOfFieldBlurY[i][0].isReady();\r\n }\r\n return isReady;\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * @internal
5
5
  */
@@ -1,4 +1,4 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
3
  /**
4
4
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"thinDepthOfFieldMergePostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinDepthOfFieldMergePostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,aAAa;IAK5C,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,gCAAgC,CAAC,WAAW;YAC5D,QAAQ,EAAE,gCAAgC,CAAC,QAAQ;SACtD,CAAC,CAAC;IACP,CAAC;;AAvBsB,4CAAW,GAAG,mBAAmB,CAAC;AAElC,yCAAQ,GAAG,CAAC,0BAA0B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class ThinDepthOfFieldMergePostProcess extends EffectWrapper {\r\n public static readonly FragmentUrl = \"depthOfFieldMerge\";\r\n\r\n public static readonly Samplers = [\"circleOfConfusionSampler\", \"blurStep0\", \"blurStep1\", \"blurStep2\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/depthOfFieldMerge.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/depthOfFieldMerge.fragment\"));\r\n }\r\n }\r\n\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinDepthOfFieldMergePostProcess.FragmentUrl,\r\n samplers: ThinDepthOfFieldMergePostProcess.Samplers,\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinDepthOfFieldMergePostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinDepthOfFieldMergePostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,aAAa;IAK5C,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,gCAAgC,CAAC,WAAW;YAC5D,QAAQ,EAAE,gCAAgC,CAAC,QAAQ;SACtD,CAAC,CAAC;IACP,CAAC;;AAvBsB,4CAAW,GAAG,mBAAmB,CAAC;AAElC,yCAAQ,GAAG,CAAC,0BAA0B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class ThinDepthOfFieldMergePostProcess extends EffectWrapper {\r\n public static readonly FragmentUrl = \"depthOfFieldMerge\";\r\n\r\n public static readonly Samplers = [\"circleOfConfusionSampler\", \"blurStep0\", \"blurStep1\", \"blurStep2\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/depthOfFieldMerge.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/depthOfFieldMerge.fragment\"));\r\n }\r\n }\r\n\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinDepthOfFieldMergePostProcess.FragmentUrl,\r\n samplers: ThinDepthOfFieldMergePostProcess.Samplers,\r\n });\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * Post process used to extract highlights.
5
5
  */
@@ -1,4 +1,4 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { ToGammaSpace } from "../Maths/math.constants.js";
3
3
  import { EngineStore } from "../Engines/engineStore.js";
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"thinExtractHighlightsPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinExtractHighlightsPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,aAAa;IAW5C,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,gCAAgC,CAAC,WAAW;YAC5D,QAAQ,EAAE,gCAAgC,CAAC,QAAQ;SACtD,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,GAAG,CAAC;QAEvB,gBAAgB;QACT,cAAS,GAAG,CAAC,CAAC;IARrB,CAAC;IAUe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC;QAEzC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;;AApDD;;GAEG;AACoB,4CAAW,GAAG,mBAAmB,AAAtB,CAAuB;AAEzD;;GAEG;AACoB,yCAAQ,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,AAA5B,CAA6B","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { ToGammaSpace } from \"../Maths/math.constants\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * Post process used to extract highlights.\r\n */\r\nexport class ThinExtractHighlightsPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"extractHighlights\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"threshold\", \"exposure\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/extractHighlights.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/extractHighlights.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new extract highlights post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinExtractHighlightsPostProcess.FragmentUrl,\r\n uniforms: ThinExtractHighlightsPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The luminance threshold, pixels below this value will be set to black.\r\n */\r\n public threshold = 0.9;\r\n\r\n /** @internal */\r\n public _exposure = 1;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n const effect = this._drawWrapper.effect!;\r\n\r\n effect.setFloat(\"threshold\", Math.pow(this.threshold, ToGammaSpace));\r\n effect.setFloat(\"exposure\", this._exposure);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinExtractHighlightsPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinExtractHighlightsPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,aAAa;IAW5C,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,gCAAgC,CAAC,WAAW;YAC5D,QAAQ,EAAE,gCAAgC,CAAC,QAAQ;SACtD,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,GAAG,CAAC;QAEvB,gBAAgB;QACT,cAAS,GAAG,CAAC,CAAC;IARrB,CAAC;IAUe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC;QAEzC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;;AApDD;;GAEG;AACoB,4CAAW,GAAG,mBAAmB,AAAtB,CAAuB;AAEzD;;GAEG;AACoB,yCAAQ,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,AAA5B,CAA6B","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { ToGammaSpace } from \"../Maths/math.constants\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * Post process used to extract highlights.\r\n */\r\nexport class ThinExtractHighlightsPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"extractHighlights\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"threshold\", \"exposure\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/extractHighlights.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/extractHighlights.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new extract highlights post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinExtractHighlightsPostProcess.FragmentUrl,\r\n uniforms: ThinExtractHighlightsPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The luminance threshold, pixels below this value will be set to black.\r\n */\r\n public threshold = 0.9;\r\n\r\n /** @internal */\r\n public _exposure = 1;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n const effect = this._drawWrapper.effect!;\r\n\r\n effect.setFloat(\"threshold\", Math.pow(this.threshold, ToGammaSpace));\r\n effect.setFloat(\"exposure\", this._exposure);\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
3
- import { Vector2 } from "../Maths/math.vector.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
+ import { Vector2 } from "../Maths/math.vector.pure.js";
4
4
  /**
5
5
  * Postprocess used to apply FXAA (antialiasing) to the scene
6
6
  */
@@ -1,6 +1,6 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
- import { Vector2 } from "../Maths/math.vector.js";
3
+ import { Vector2 } from "../Maths/math.vector.pure.js";
4
4
  /**
5
5
  * Postprocess used to apply FXAA (antialiasing) to the scene
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"thinFXAAPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinFXAAPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC1C,MAAM,CAAC,WAAW,CAAC,MAAsB;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAiBkB,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,MAAM,YAAY,GAAG;YACjB,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,mBAAmB,CAAC,SAAS;YAC3C,cAAc,EAAE,mBAAmB,CAAC,WAAW;YAC/C,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;SACzC,CAAC;QAEF,KAAK,CAAC;YACF,GAAG,YAAY;YACf,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;SAChE,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IALrC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;;AAxDD;;GAEG;AACoB,6BAAS,GAAG,MAAM,AAAT,CAAU;AAE1C;;GAEG;AACoB,+BAAW,GAAG,MAAM,AAAT,CAAU;AAE5C;;GAEG;AACoB,4BAAQ,GAAG,CAAC,WAAW,CAAC,AAAhB,CAAiB","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Vector2 } from \"../Maths/math.vector\";\r\n\r\n/**\r\n * Postprocess used to apply FXAA (antialiasing) to the scene\r\n */\r\nexport class ThinFXAAPostProcess extends EffectWrapper {\r\n private static _GetDefines(engine: AbstractEngine): Nullable<string> {\r\n if (!engine) {\r\n return null;\r\n }\r\n\r\n const driverInfo = engine.extractDriverInfo();\r\n if (driverInfo.toLowerCase().indexOf(\"mali\") > -1) {\r\n return \"#define MALI 1\\n\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * The vertex shader url\r\n */\r\n public static readonly VertexUrl = \"fxaa\";\r\n\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"fxaa\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"texelSize\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/fxaa.fragment\"), import(\"../ShadersWGSL/fxaa.vertex\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/fxaa.fragment\"), import(\"../Shaders/fxaa.vertex\")]));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new FXAA post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n const localOptions = {\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n vertexShader: ThinFXAAPostProcess.VertexUrl,\r\n fragmentShader: ThinFXAAPostProcess.FragmentUrl,\r\n uniforms: ThinFXAAPostProcess.Uniforms,\r\n };\r\n\r\n super({\r\n ...localOptions,\r\n defines: ThinFXAAPostProcess._GetDefines(localOptions.engine),\r\n });\r\n }\r\n\r\n /**\r\n * The texel size of the texture to apply FXAA on\r\n */\r\n public texelSize = new Vector2(0, 0);\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setFloat2(\"texelSize\", this.texelSize.x, this.texelSize.y);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinFXAAPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinFXAAPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC1C,MAAM,CAAC,WAAW,CAAC,MAAsB;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAiBkB,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,MAAM,YAAY,GAAG;YACjB,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,mBAAmB,CAAC,SAAS;YAC3C,cAAc,EAAE,mBAAmB,CAAC,WAAW;YAC/C,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;SACzC,CAAC;QAEF,KAAK,CAAC;YACF,GAAG,YAAY;YACf,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;SAChE,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IALrC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;;AAxDD;;GAEG;AACoB,6BAAS,GAAG,MAAM,AAAT,CAAU;AAE1C;;GAEG;AACoB,+BAAW,GAAG,MAAM,AAAT,CAAU;AAE5C;;GAEG;AACoB,4BAAQ,GAAG,CAAC,WAAW,CAAC,AAAhB,CAAiB","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Vector2 } from \"../Maths/math.vector.pure\";\r\n\r\n/**\r\n * Postprocess used to apply FXAA (antialiasing) to the scene\r\n */\r\nexport class ThinFXAAPostProcess extends EffectWrapper {\r\n private static _GetDefines(engine: AbstractEngine): Nullable<string> {\r\n if (!engine) {\r\n return null;\r\n }\r\n\r\n const driverInfo = engine.extractDriverInfo();\r\n if (driverInfo.toLowerCase().indexOf(\"mali\") > -1) {\r\n return \"#define MALI 1\\n\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * The vertex shader url\r\n */\r\n public static readonly VertexUrl = \"fxaa\";\r\n\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"fxaa\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"texelSize\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/fxaa.fragment\"), import(\"../ShadersWGSL/fxaa.vertex\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/fxaa.fragment\"), import(\"../Shaders/fxaa.vertex\")]));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new FXAA post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n const localOptions = {\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n vertexShader: ThinFXAAPostProcess.VertexUrl,\r\n fragmentShader: ThinFXAAPostProcess.FragmentUrl,\r\n uniforms: ThinFXAAPostProcess.Uniforms,\r\n };\r\n\r\n super({\r\n ...localOptions,\r\n defines: ThinFXAAPostProcess._GetDefines(localOptions.engine),\r\n });\r\n }\r\n\r\n /**\r\n * The texel size of the texture to apply FXAA on\r\n */\r\n public texelSize = new Vector2(0, 0);\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setFloat2(\"texelSize\", this.texelSize.x, this.texelSize.y);\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
3
- import { Matrix } from "../Maths/math.vector.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
+ import { Matrix } from "../Maths/math.vector.pure.js";
4
4
  /**
5
5
  * Post process used to apply a kernel filter
6
6
  */
@@ -1,6 +1,6 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
- import { Matrix } from "../Maths/math.vector.js";
3
+ import { Matrix } from "../Maths/math.vector.pure.js";
4
4
  /**
5
5
  * Post process used to apply a kernel filter
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"thinFilterPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinFilterPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAWjC,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,qBAAqB,CAAC,WAAW;YACjD,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;SAC3C,CAAC,CAAC;QAGP;;WAEG;QACI,iBAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IALxC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;;AA7CD;;GAEG;AACoB,iCAAW,GAAG,QAAQ,AAAX,CAAY;AAE9C;;GAEG;AACoB,8BAAQ,GAAG,CAAC,cAAc,CAAC,AAAnB,CAAoB","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Matrix } from \"../Maths/math.vector\";\r\n\r\n/**\r\n * Post process used to apply a kernel filter\r\n */\r\nexport class ThinFilterPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"filter\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"kernelMatrix\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/filter.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/filter.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new filter post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinFilterPostProcess.FragmentUrl,\r\n uniforms: ThinFilterPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The matrix to be applied to the image\r\n */\r\n public kernelMatrix = Matrix.Identity();\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setMatrix(\"kernelMatrix\", this.kernelMatrix);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinFilterPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinFilterPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAWjC,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,qBAAqB,CAAC,WAAW;YACjD,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;SAC3C,CAAC,CAAC;QAGP;;WAEG;QACI,iBAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IALxC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;;AA7CD;;GAEG;AACoB,iCAAW,GAAG,QAAQ,AAAX,CAAY;AAE9C;;GAEG;AACoB,8BAAQ,GAAG,CAAC,cAAc,CAAC,AAAnB,CAAoB","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { Matrix } from \"../Maths/math.vector.pure\";\r\n\r\n/**\r\n * Post process used to apply a kernel filter\r\n */\r\nexport class ThinFilterPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"filter\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"kernelMatrix\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/filter.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/filter.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new filter post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinFilterPostProcess.FragmentUrl,\r\n uniforms: ThinFilterPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The matrix to be applied to the image\r\n */\r\n public kernelMatrix = Matrix.Identity();\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setMatrix(\"kernelMatrix\", this.kernelMatrix);\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * Post process used to render a grain effect
5
5
  */
@@ -1,4 +1,4 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
3
  /**
4
4
  * Post process used to render a grain effect
@@ -1 +1 @@
1
- {"version":3,"file":"thinGrainPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinGrainPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IAWhC,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,oBAAoB,CAAC,WAAW;YAChD,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;SAC1C,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,EAAE,CAAC;QAEtB;;WAEG;QACI,aAAQ,GAAG,KAAK,CAAC;IAVxB,CAAC;IAYe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;;AAnDD;;GAEG;AACoB,gCAAW,GAAG,OAAO,AAAV,CAAW;AAE7C;;GAEG;AACoB,6BAAQ,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,AAAhC,CAAiC","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * Post process used to render a grain effect\r\n */\r\nexport class ThinGrainPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"grain\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"intensity\", \"animatedSeed\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/grain.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/grain.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new grain post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinGrainPostProcess.FragmentUrl,\r\n uniforms: ThinGrainPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The intensity of the grain added (default: 30)\r\n */\r\n public intensity = 30;\r\n\r\n /**\r\n * If the grain should be randomized on every frame\r\n */\r\n public animated = false;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setFloat(\"intensity\", this.intensity);\r\n this._drawWrapper.effect!.setFloat(\"animatedSeed\", this.animated ? Math.random() + 1 : 1);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinGrainPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinGrainPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IAWhC,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,iBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,oBAAoB,CAAC,WAAW;YAChD,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;SAC1C,CAAC,CAAC;QAGP;;WAEG;QACI,cAAS,GAAG,EAAE,CAAC;QAEtB;;WAEG;QACI,aAAQ,GAAG,KAAK,CAAC;IAVxB,CAAC;IAYe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;;AAnDD;;GAEG;AACoB,gCAAW,GAAG,OAAO,AAAV,CAAW;AAE7C;;GAEG;AACoB,6BAAQ,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,AAAhC,CAAiC","sourcesContent":["import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * Post process used to render a grain effect\r\n */\r\nexport class ThinGrainPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"grain\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"intensity\", \"animatedSeed\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/grain.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/grain.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new grain post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinGrainPostProcess.FragmentUrl,\r\n uniforms: ThinGrainPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The intensity of the grain added (default: 30)\r\n */\r\n public intensity = 30;\r\n\r\n /**\r\n * If the grain should be randomized on every frame\r\n */\r\n public animated = false;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setFloat(\"intensity\", this.intensity);\r\n this._drawWrapper.effect!.setFloat(\"animatedSeed\", this.animated ? Math.random() + 1 : 1);\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions, type NonNullableFields, type Scene, type ColorCurves, type BaseTexture, type Color4 } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
3
- import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
+ import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration.pure.js";
4
4
  /**
5
5
  * Options used to create a ThinImageProcessingPostProcessOptions.
6
6
  */
@@ -1,6 +1,6 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
- import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration.js";
3
+ import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration.pure.js";
4
4
  /**
5
5
  * Post process used to apply image processing to a scene
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"thinImageProcessingPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinImageProcessingPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type Nullable,\r\n type AbstractEngine,\r\n type EffectWrapperCreationOptions,\r\n type Observer,\r\n type NonNullableFields,\r\n type Scene,\r\n type ColorCurves,\r\n type BaseTexture,\r\n type Color4,\r\n} from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { type IImageProcessingConfigurationDefines } from \"../Materials/imageProcessingConfiguration.defines\";\r\nimport { ImageProcessingConfiguration } from \"../Materials/imageProcessingConfiguration\";\r\n\r\n/**\r\n * Options used to create a ThinImageProcessingPostProcessOptions.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport interface ThinImageProcessingPostProcessOptions extends EffectWrapperCreationOptions {\r\n /**\r\n * An existing image processing configuration to use. If not provided, the scene one will be used.\r\n */\r\n imageProcessingConfiguration?: ImageProcessingConfiguration;\r\n\r\n /**\r\n * The scene to retrieve the image processing configuration from if not provided in the options.\r\n * If not provided, the last created scene will be used.\r\n */\r\n scene?: Nullable<Scene>;\r\n}\r\n\r\n/**\r\n * Post process used to apply image processing to a scene\r\n */\r\nexport class ThinImageProcessingPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"imageProcessing\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/imageProcessing.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/imageProcessing.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Default configuration related to image processing available in the PBR Material.\r\n */\r\n protected _imageProcessingConfiguration: ImageProcessingConfiguration;\r\n\r\n /**\r\n * Gets the image processing configuration used either in this material.\r\n */\r\n public get imageProcessingConfiguration(): ImageProcessingConfiguration {\r\n return this._imageProcessingConfiguration;\r\n }\r\n\r\n /**\r\n * Sets the Default image processing configuration used either in the this material.\r\n *\r\n * If sets to null, the scene one is in use.\r\n */\r\n public set imageProcessingConfiguration(value: ImageProcessingConfiguration) {\r\n // We are almost sure it is applied by post process as\r\n // We are in the post process :-)\r\n value.applyByPostProcess = true;\r\n this._attachImageProcessingConfiguration(value);\r\n }\r\n\r\n /**\r\n * Keep track of the image processing observer to allow dispose and replace.\r\n */\r\n private _imageProcessingObserver: Nullable<Observer<ImageProcessingConfiguration>>;\r\n\r\n /**\r\n * Attaches a new image processing configuration to the PBR Material.\r\n * @param configuration\r\n * @param doNotBuild\r\n */\r\n protected _attachImageProcessingConfiguration(configuration: Nullable<ImageProcessingConfiguration>, doNotBuild = false): void {\r\n if (configuration === this._imageProcessingConfiguration) {\r\n return;\r\n }\r\n\r\n // Detaches observer.\r\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\r\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\r\n }\r\n\r\n // Pick the scene configuration if needed.\r\n if (!configuration) {\r\n let scene = this.options.scene;\r\n\r\n if (!scene) {\r\n const engine = this.options.engine;\r\n if (engine && engine.scenes) {\r\n const scenes = engine.scenes;\r\n scene = scenes[scenes.length - 1];\r\n } else {\r\n scene = EngineStore.LastCreatedScene!;\r\n }\r\n }\r\n\r\n if (scene) {\r\n this._imageProcessingConfiguration = scene.imageProcessingConfiguration;\r\n } else {\r\n this._imageProcessingConfiguration = new ImageProcessingConfiguration();\r\n }\r\n } else {\r\n this._imageProcessingConfiguration = configuration;\r\n }\r\n\r\n // Attaches observer.\r\n if (this._imageProcessingConfiguration) {\r\n this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\r\n this._updateParameters();\r\n });\r\n }\r\n\r\n // Ensure the effect will be rebuilt.\r\n if (!doNotBuild) {\r\n this._updateParameters();\r\n }\r\n }\r\n\r\n /**\r\n * Gets Color curves setup used in the effect if colorCurvesEnabled is set to true .\r\n */\r\n public get colorCurves(): Nullable<ColorCurves> {\r\n return this.imageProcessingConfiguration.colorCurves;\r\n }\r\n /**\r\n * Sets Color curves setup used in the effect if colorCurvesEnabled is set to true .\r\n */\r\n public set colorCurves(value: Nullable<ColorCurves>) {\r\n this.imageProcessingConfiguration.colorCurves = value;\r\n }\r\n\r\n /**\r\n * Gets whether the color curves effect is enabled.\r\n */\r\n public get colorCurvesEnabled(): boolean {\r\n return this.imageProcessingConfiguration.colorCurvesEnabled;\r\n }\r\n /**\r\n * Sets whether the color curves effect is enabled.\r\n */\r\n public set colorCurvesEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.colorCurvesEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\r\n */\r\n public get colorGradingTexture(): Nullable<BaseTexture> {\r\n return this.imageProcessingConfiguration.colorGradingTexture;\r\n }\r\n /**\r\n * Sets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\r\n */\r\n public set colorGradingTexture(value: Nullable<BaseTexture>) {\r\n this.imageProcessingConfiguration.colorGradingTexture = value;\r\n }\r\n\r\n /**\r\n * Gets whether the color grading effect is enabled.\r\n */\r\n public get colorGradingEnabled(): boolean {\r\n return this.imageProcessingConfiguration.colorGradingEnabled;\r\n }\r\n /**\r\n * Gets whether the color grading effect is enabled.\r\n */\r\n public set colorGradingEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.colorGradingEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets exposure used in the effect.\r\n */\r\n public get exposure(): number {\r\n return this.imageProcessingConfiguration.exposure;\r\n }\r\n /**\r\n * Sets exposure used in the effect.\r\n */\r\n public set exposure(value: number) {\r\n this.imageProcessingConfiguration.exposure = value;\r\n }\r\n\r\n /**\r\n * Gets whether tonemapping is enabled or not.\r\n */\r\n public get toneMappingEnabled(): boolean {\r\n return this._imageProcessingConfiguration.toneMappingEnabled;\r\n }\r\n /**\r\n * Sets whether tonemapping is enabled or not\r\n */\r\n public set toneMappingEnabled(value: boolean) {\r\n this._imageProcessingConfiguration.toneMappingEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets the type of tone mapping effect.\r\n */\r\n public get toneMappingType(): number {\r\n return this._imageProcessingConfiguration.toneMappingType;\r\n }\r\n /**\r\n * Sets the type of tone mapping effect.\r\n */\r\n public set toneMappingType(value: number) {\r\n this._imageProcessingConfiguration.toneMappingType = value;\r\n }\r\n\r\n /**\r\n * Gets contrast used in the effect.\r\n */\r\n public get contrast(): number {\r\n return this.imageProcessingConfiguration.contrast;\r\n }\r\n /**\r\n * Sets contrast used in the effect.\r\n */\r\n public set contrast(value: number) {\r\n this.imageProcessingConfiguration.contrast = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette stretch size.\r\n */\r\n public get vignetteStretch(): number {\r\n return this.imageProcessingConfiguration.vignetteStretch;\r\n }\r\n /**\r\n * Sets Vignette stretch size.\r\n */\r\n public set vignetteStretch(value: number) {\r\n this.imageProcessingConfiguration.vignetteStretch = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette center X Offset.\r\n * @deprecated use vignetteCenterX instead\r\n */\r\n public get vignetteCentreX(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterX;\r\n }\r\n /**\r\n * Sets Vignette center X Offset.\r\n * @deprecated use vignetteCenterX instead\r\n */\r\n public set vignetteCentreX(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterX = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette center Y Offset.\r\n * @deprecated use vignetteCenterY instead\r\n */\r\n public get vignetteCentreY(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterY;\r\n }\r\n /**\r\n * Sets Vignette center Y Offset.\r\n * @deprecated use vignetteCenterY instead\r\n */\r\n public set vignetteCentreY(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterY = value;\r\n }\r\n\r\n /**\r\n * Vignette center Y Offset.\r\n */\r\n public get vignetteCenterY(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterY;\r\n }\r\n public set vignetteCenterY(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterY = value;\r\n }\r\n\r\n /**\r\n * Vignette center X Offset.\r\n */\r\n public get vignetteCenterX(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterX;\r\n }\r\n public set vignetteCenterX(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterX = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette weight or intensity of the vignette effect.\r\n */\r\n public get vignetteWeight(): number {\r\n return this.imageProcessingConfiguration.vignetteWeight;\r\n }\r\n /**\r\n * Sets Vignette weight or intensity of the vignette effect.\r\n */\r\n public set vignetteWeight(value: number) {\r\n this.imageProcessingConfiguration.vignetteWeight = value;\r\n }\r\n\r\n /**\r\n * Gets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\r\n * if vignetteEnabled is set to true.\r\n */\r\n public get vignetteColor(): Color4 {\r\n return this.imageProcessingConfiguration.vignetteColor;\r\n }\r\n /**\r\n * Sets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\r\n * if vignetteEnabled is set to true.\r\n */\r\n public set vignetteColor(value: Color4) {\r\n this.imageProcessingConfiguration.vignetteColor = value;\r\n }\r\n\r\n /**\r\n * Gets Camera field of view used by the Vignette effect.\r\n */\r\n public get vignetteCameraFov(): number {\r\n return this.imageProcessingConfiguration.vignetteCameraFov;\r\n }\r\n /**\r\n * Sets Camera field of view used by the Vignette effect.\r\n */\r\n public set vignetteCameraFov(value: number) {\r\n this.imageProcessingConfiguration.vignetteCameraFov = value;\r\n }\r\n\r\n /**\r\n * Gets the vignette blend mode allowing different kind of effect.\r\n */\r\n public get vignetteBlendMode(): number {\r\n return this.imageProcessingConfiguration.vignetteBlendMode;\r\n }\r\n /**\r\n * Sets the vignette blend mode allowing different kind of effect.\r\n */\r\n public set vignetteBlendMode(value: number) {\r\n this.imageProcessingConfiguration.vignetteBlendMode = value;\r\n }\r\n\r\n /**\r\n * Gets whether the vignette effect is enabled.\r\n */\r\n public get vignetteEnabled(): boolean {\r\n return this.imageProcessingConfiguration.vignetteEnabled;\r\n }\r\n /**\r\n * Sets whether the vignette effect is enabled.\r\n */\r\n public set vignetteEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.vignetteEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets intensity of the dithering effect.\r\n */\r\n public get ditheringIntensity(): number {\r\n return this.imageProcessingConfiguration.ditheringIntensity;\r\n }\r\n /**\r\n * Sets intensity of the dithering effect.\r\n */\r\n public set ditheringIntensity(value: number) {\r\n this.imageProcessingConfiguration.ditheringIntensity = value;\r\n }\r\n\r\n /**\r\n * Gets whether the dithering effect is enabled.\r\n */\r\n public get ditheringEnabled(): boolean {\r\n return this.imageProcessingConfiguration.ditheringEnabled;\r\n }\r\n /**\r\n * Sets whether the dithering effect is enabled.\r\n */\r\n public set ditheringEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.ditheringEnabled = value;\r\n }\r\n\r\n private _fromLinearSpace = true;\r\n /**\r\n * Gets whether the input of the processing is in Gamma or Linear Space.\r\n */\r\n public get fromLinearSpace(): boolean {\r\n return this._fromLinearSpace;\r\n }\r\n /**\r\n * Sets whether the input of the processing is in Gamma or Linear Space.\r\n */\r\n public set fromLinearSpace(value: boolean) {\r\n if (this._fromLinearSpace === value) {\r\n return;\r\n }\r\n\r\n this._fromLinearSpace = value;\r\n this._updateParameters();\r\n }\r\n\r\n /**\r\n * * Gets the width of the output texture used to store the result of the post process.\r\n */\r\n public get outputTextureWidth() {\r\n return this.imageProcessingConfiguration.outputTextureWidth;\r\n }\r\n\r\n /**\r\n * * Sets the width of the output texture used to store the result of the post process.\r\n */\r\n public set outputTextureWidth(value: number) {\r\n this.imageProcessingConfiguration.outputTextureWidth = value;\r\n }\r\n\r\n /**\r\n * * Gets the height of the output texture used to store the result of the post process.\r\n */\r\n public get outputTextureHeight() {\r\n return this.imageProcessingConfiguration.outputTextureHeight;\r\n }\r\n\r\n /**\r\n * * Sets the height of the output texture used to store the result of the post process.\r\n */\r\n public set outputTextureHeight(value: number) {\r\n this.imageProcessingConfiguration.outputTextureHeight = value;\r\n }\r\n\r\n /**\r\n * Gets/sets the aspect ratio used to override the default one.\r\n */\r\n public overrideAspectRatio?: number;\r\n\r\n /**\r\n * Defines cache preventing GC.\r\n */\r\n private _defines: IImageProcessingConfigurationDefines & { FROMLINEARSPACE: boolean } = {\r\n IMAGEPROCESSING: false,\r\n VIGNETTE: false,\r\n VIGNETTEBLENDMODEMULTIPLY: false,\r\n VIGNETTEBLENDMODEOPAQUE: false,\r\n TONEMAPPING: 0,\r\n CONTRAST: false,\r\n COLORCURVES: false,\r\n COLORGRADING: false,\r\n COLORGRADING3D: false,\r\n FROMLINEARSPACE: false,\r\n SAMPLER3DGREENDEPTH: false,\r\n SAMPLER3DBGRMAP: false,\r\n DITHER: false,\r\n IMAGEPROCESSINGPOSTPROCESS: false,\r\n EXPOSURE: false,\r\n SKIPFINALCOLORCLAMP: false,\r\n };\r\n\r\n public override readonly options: Required<NonNullableFields<ThinImageProcessingPostProcessOptions>>;\r\n\r\n /**\r\n * Constructs a new image processing post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: ThinImageProcessingPostProcessOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinImageProcessingPostProcess.FragmentUrl,\r\n });\r\n\r\n const imageProcessingConfiguration = options?.imageProcessingConfiguration;\r\n\r\n // Setup the configuration as forced by the constructor. This would then not force the\r\n // scene materials output in linear space and let untouched the default forward pass.\r\n if (imageProcessingConfiguration) {\r\n imageProcessingConfiguration.applyByPostProcess = true;\r\n this._attachImageProcessingConfiguration(imageProcessingConfiguration, true);\r\n // This will cause the shader to be compiled\r\n this._updateParameters();\r\n }\r\n // Setup the default processing configuration to the scene.\r\n else {\r\n this._attachImageProcessingConfiguration(null, true);\r\n this.imageProcessingConfiguration.applyByPostProcess = true;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateParameters(): void {\r\n this._defines.FROMLINEARSPACE = this._fromLinearSpace;\r\n this.imageProcessingConfiguration.prepareDefines(this._defines, true);\r\n let defines = \"\";\r\n for (const prop in this._defines) {\r\n const value = (<any>this._defines)[prop];\r\n const type = typeof value;\r\n\r\n switch (type) {\r\n case \"number\":\r\n case \"string\":\r\n defines += `#define ${prop} ${value};\\n`;\r\n break;\r\n default:\r\n if (value) {\r\n defines += `#define ${prop};\\n`;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n const samplers = [\"textureSampler\"];\r\n const uniforms = [\"scale\"];\r\n\r\n if (ImageProcessingConfiguration) {\r\n ImageProcessingConfiguration.PrepareSamplers(samplers, this._defines);\r\n ImageProcessingConfiguration.PrepareUniforms(uniforms, this._defines);\r\n }\r\n\r\n this.updateEffect(defines, uniforms, samplers);\r\n }\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this.imageProcessingConfiguration.bind(this.effect, this.overrideAspectRatio);\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n\r\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\r\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\r\n }\r\n\r\n if (this._imageProcessingConfiguration) {\r\n this.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinImageProcessingPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinImageProcessingPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type Nullable,\r\n type AbstractEngine,\r\n type EffectWrapperCreationOptions,\r\n type Observer,\r\n type NonNullableFields,\r\n type Scene,\r\n type ColorCurves,\r\n type BaseTexture,\r\n type Color4,\r\n} from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { type IImageProcessingConfigurationDefines } from \"../Materials/imageProcessingConfiguration.defines\";\r\nimport { ImageProcessingConfiguration } from \"../Materials/imageProcessingConfiguration.pure\";\r\n\r\n/**\r\n * Options used to create a ThinImageProcessingPostProcessOptions.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport interface ThinImageProcessingPostProcessOptions extends EffectWrapperCreationOptions {\r\n /**\r\n * An existing image processing configuration to use. If not provided, the scene one will be used.\r\n */\r\n imageProcessingConfiguration?: ImageProcessingConfiguration;\r\n\r\n /**\r\n * The scene to retrieve the image processing configuration from if not provided in the options.\r\n * If not provided, the last created scene will be used.\r\n */\r\n scene?: Nullable<Scene>;\r\n}\r\n\r\n/**\r\n * Post process used to apply image processing to a scene\r\n */\r\nexport class ThinImageProcessingPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"imageProcessing\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/imageProcessing.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/imageProcessing.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Default configuration related to image processing available in the PBR Material.\r\n */\r\n protected _imageProcessingConfiguration: ImageProcessingConfiguration;\r\n\r\n /**\r\n * Gets the image processing configuration used either in this material.\r\n */\r\n public get imageProcessingConfiguration(): ImageProcessingConfiguration {\r\n return this._imageProcessingConfiguration;\r\n }\r\n\r\n /**\r\n * Sets the Default image processing configuration used either in the this material.\r\n *\r\n * If sets to null, the scene one is in use.\r\n */\r\n public set imageProcessingConfiguration(value: ImageProcessingConfiguration) {\r\n // We are almost sure it is applied by post process as\r\n // We are in the post process :-)\r\n value.applyByPostProcess = true;\r\n this._attachImageProcessingConfiguration(value);\r\n }\r\n\r\n /**\r\n * Keep track of the image processing observer to allow dispose and replace.\r\n */\r\n private _imageProcessingObserver: Nullable<Observer<ImageProcessingConfiguration>>;\r\n\r\n /**\r\n * Attaches a new image processing configuration to the PBR Material.\r\n * @param configuration\r\n * @param doNotBuild\r\n */\r\n protected _attachImageProcessingConfiguration(configuration: Nullable<ImageProcessingConfiguration>, doNotBuild = false): void {\r\n if (configuration === this._imageProcessingConfiguration) {\r\n return;\r\n }\r\n\r\n // Detaches observer.\r\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\r\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\r\n }\r\n\r\n // Pick the scene configuration if needed.\r\n if (!configuration) {\r\n let scene = this.options.scene;\r\n\r\n if (!scene) {\r\n const engine = this.options.engine;\r\n if (engine && engine.scenes) {\r\n const scenes = engine.scenes;\r\n scene = scenes[scenes.length - 1];\r\n } else {\r\n scene = EngineStore.LastCreatedScene!;\r\n }\r\n }\r\n\r\n if (scene) {\r\n this._imageProcessingConfiguration = scene.imageProcessingConfiguration;\r\n } else {\r\n this._imageProcessingConfiguration = new ImageProcessingConfiguration();\r\n }\r\n } else {\r\n this._imageProcessingConfiguration = configuration;\r\n }\r\n\r\n // Attaches observer.\r\n if (this._imageProcessingConfiguration) {\r\n this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\r\n this._updateParameters();\r\n });\r\n }\r\n\r\n // Ensure the effect will be rebuilt.\r\n if (!doNotBuild) {\r\n this._updateParameters();\r\n }\r\n }\r\n\r\n /**\r\n * Gets Color curves setup used in the effect if colorCurvesEnabled is set to true .\r\n */\r\n public get colorCurves(): Nullable<ColorCurves> {\r\n return this.imageProcessingConfiguration.colorCurves;\r\n }\r\n /**\r\n * Sets Color curves setup used in the effect if colorCurvesEnabled is set to true .\r\n */\r\n public set colorCurves(value: Nullable<ColorCurves>) {\r\n this.imageProcessingConfiguration.colorCurves = value;\r\n }\r\n\r\n /**\r\n * Gets whether the color curves effect is enabled.\r\n */\r\n public get colorCurvesEnabled(): boolean {\r\n return this.imageProcessingConfiguration.colorCurvesEnabled;\r\n }\r\n /**\r\n * Sets whether the color curves effect is enabled.\r\n */\r\n public set colorCurvesEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.colorCurvesEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\r\n */\r\n public get colorGradingTexture(): Nullable<BaseTexture> {\r\n return this.imageProcessingConfiguration.colorGradingTexture;\r\n }\r\n /**\r\n * Sets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\r\n */\r\n public set colorGradingTexture(value: Nullable<BaseTexture>) {\r\n this.imageProcessingConfiguration.colorGradingTexture = value;\r\n }\r\n\r\n /**\r\n * Gets whether the color grading effect is enabled.\r\n */\r\n public get colorGradingEnabled(): boolean {\r\n return this.imageProcessingConfiguration.colorGradingEnabled;\r\n }\r\n /**\r\n * Gets whether the color grading effect is enabled.\r\n */\r\n public set colorGradingEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.colorGradingEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets exposure used in the effect.\r\n */\r\n public get exposure(): number {\r\n return this.imageProcessingConfiguration.exposure;\r\n }\r\n /**\r\n * Sets exposure used in the effect.\r\n */\r\n public set exposure(value: number) {\r\n this.imageProcessingConfiguration.exposure = value;\r\n }\r\n\r\n /**\r\n * Gets whether tonemapping is enabled or not.\r\n */\r\n public get toneMappingEnabled(): boolean {\r\n return this._imageProcessingConfiguration.toneMappingEnabled;\r\n }\r\n /**\r\n * Sets whether tonemapping is enabled or not\r\n */\r\n public set toneMappingEnabled(value: boolean) {\r\n this._imageProcessingConfiguration.toneMappingEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets the type of tone mapping effect.\r\n */\r\n public get toneMappingType(): number {\r\n return this._imageProcessingConfiguration.toneMappingType;\r\n }\r\n /**\r\n * Sets the type of tone mapping effect.\r\n */\r\n public set toneMappingType(value: number) {\r\n this._imageProcessingConfiguration.toneMappingType = value;\r\n }\r\n\r\n /**\r\n * Gets contrast used in the effect.\r\n */\r\n public get contrast(): number {\r\n return this.imageProcessingConfiguration.contrast;\r\n }\r\n /**\r\n * Sets contrast used in the effect.\r\n */\r\n public set contrast(value: number) {\r\n this.imageProcessingConfiguration.contrast = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette stretch size.\r\n */\r\n public get vignetteStretch(): number {\r\n return this.imageProcessingConfiguration.vignetteStretch;\r\n }\r\n /**\r\n * Sets Vignette stretch size.\r\n */\r\n public set vignetteStretch(value: number) {\r\n this.imageProcessingConfiguration.vignetteStretch = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette center X Offset.\r\n * @deprecated use vignetteCenterX instead\r\n */\r\n public get vignetteCentreX(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterX;\r\n }\r\n /**\r\n * Sets Vignette center X Offset.\r\n * @deprecated use vignetteCenterX instead\r\n */\r\n public set vignetteCentreX(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterX = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette center Y Offset.\r\n * @deprecated use vignetteCenterY instead\r\n */\r\n public get vignetteCentreY(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterY;\r\n }\r\n /**\r\n * Sets Vignette center Y Offset.\r\n * @deprecated use vignetteCenterY instead\r\n */\r\n public set vignetteCentreY(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterY = value;\r\n }\r\n\r\n /**\r\n * Vignette center Y Offset.\r\n */\r\n public get vignetteCenterY(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterY;\r\n }\r\n public set vignetteCenterY(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterY = value;\r\n }\r\n\r\n /**\r\n * Vignette center X Offset.\r\n */\r\n public get vignetteCenterX(): number {\r\n return this.imageProcessingConfiguration.vignetteCenterX;\r\n }\r\n public set vignetteCenterX(value: number) {\r\n this.imageProcessingConfiguration.vignetteCenterX = value;\r\n }\r\n\r\n /**\r\n * Gets Vignette weight or intensity of the vignette effect.\r\n */\r\n public get vignetteWeight(): number {\r\n return this.imageProcessingConfiguration.vignetteWeight;\r\n }\r\n /**\r\n * Sets Vignette weight or intensity of the vignette effect.\r\n */\r\n public set vignetteWeight(value: number) {\r\n this.imageProcessingConfiguration.vignetteWeight = value;\r\n }\r\n\r\n /**\r\n * Gets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\r\n * if vignetteEnabled is set to true.\r\n */\r\n public get vignetteColor(): Color4 {\r\n return this.imageProcessingConfiguration.vignetteColor;\r\n }\r\n /**\r\n * Sets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\r\n * if vignetteEnabled is set to true.\r\n */\r\n public set vignetteColor(value: Color4) {\r\n this.imageProcessingConfiguration.vignetteColor = value;\r\n }\r\n\r\n /**\r\n * Gets Camera field of view used by the Vignette effect.\r\n */\r\n public get vignetteCameraFov(): number {\r\n return this.imageProcessingConfiguration.vignetteCameraFov;\r\n }\r\n /**\r\n * Sets Camera field of view used by the Vignette effect.\r\n */\r\n public set vignetteCameraFov(value: number) {\r\n this.imageProcessingConfiguration.vignetteCameraFov = value;\r\n }\r\n\r\n /**\r\n * Gets the vignette blend mode allowing different kind of effect.\r\n */\r\n public get vignetteBlendMode(): number {\r\n return this.imageProcessingConfiguration.vignetteBlendMode;\r\n }\r\n /**\r\n * Sets the vignette blend mode allowing different kind of effect.\r\n */\r\n public set vignetteBlendMode(value: number) {\r\n this.imageProcessingConfiguration.vignetteBlendMode = value;\r\n }\r\n\r\n /**\r\n * Gets whether the vignette effect is enabled.\r\n */\r\n public get vignetteEnabled(): boolean {\r\n return this.imageProcessingConfiguration.vignetteEnabled;\r\n }\r\n /**\r\n * Sets whether the vignette effect is enabled.\r\n */\r\n public set vignetteEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.vignetteEnabled = value;\r\n }\r\n\r\n /**\r\n * Gets intensity of the dithering effect.\r\n */\r\n public get ditheringIntensity(): number {\r\n return this.imageProcessingConfiguration.ditheringIntensity;\r\n }\r\n /**\r\n * Sets intensity of the dithering effect.\r\n */\r\n public set ditheringIntensity(value: number) {\r\n this.imageProcessingConfiguration.ditheringIntensity = value;\r\n }\r\n\r\n /**\r\n * Gets whether the dithering effect is enabled.\r\n */\r\n public get ditheringEnabled(): boolean {\r\n return this.imageProcessingConfiguration.ditheringEnabled;\r\n }\r\n /**\r\n * Sets whether the dithering effect is enabled.\r\n */\r\n public set ditheringEnabled(value: boolean) {\r\n this.imageProcessingConfiguration.ditheringEnabled = value;\r\n }\r\n\r\n private _fromLinearSpace = true;\r\n /**\r\n * Gets whether the input of the processing is in Gamma or Linear Space.\r\n */\r\n public get fromLinearSpace(): boolean {\r\n return this._fromLinearSpace;\r\n }\r\n /**\r\n * Sets whether the input of the processing is in Gamma or Linear Space.\r\n */\r\n public set fromLinearSpace(value: boolean) {\r\n if (this._fromLinearSpace === value) {\r\n return;\r\n }\r\n\r\n this._fromLinearSpace = value;\r\n this._updateParameters();\r\n }\r\n\r\n /**\r\n * * Gets the width of the output texture used to store the result of the post process.\r\n */\r\n public get outputTextureWidth() {\r\n return this.imageProcessingConfiguration.outputTextureWidth;\r\n }\r\n\r\n /**\r\n * * Sets the width of the output texture used to store the result of the post process.\r\n */\r\n public set outputTextureWidth(value: number) {\r\n this.imageProcessingConfiguration.outputTextureWidth = value;\r\n }\r\n\r\n /**\r\n * * Gets the height of the output texture used to store the result of the post process.\r\n */\r\n public get outputTextureHeight() {\r\n return this.imageProcessingConfiguration.outputTextureHeight;\r\n }\r\n\r\n /**\r\n * * Sets the height of the output texture used to store the result of the post process.\r\n */\r\n public set outputTextureHeight(value: number) {\r\n this.imageProcessingConfiguration.outputTextureHeight = value;\r\n }\r\n\r\n /**\r\n * Gets/sets the aspect ratio used to override the default one.\r\n */\r\n public overrideAspectRatio?: number;\r\n\r\n /**\r\n * Defines cache preventing GC.\r\n */\r\n private _defines: IImageProcessingConfigurationDefines & { FROMLINEARSPACE: boolean } = {\r\n IMAGEPROCESSING: false,\r\n VIGNETTE: false,\r\n VIGNETTEBLENDMODEMULTIPLY: false,\r\n VIGNETTEBLENDMODEOPAQUE: false,\r\n TONEMAPPING: 0,\r\n CONTRAST: false,\r\n COLORCURVES: false,\r\n COLORGRADING: false,\r\n COLORGRADING3D: false,\r\n FROMLINEARSPACE: false,\r\n SAMPLER3DGREENDEPTH: false,\r\n SAMPLER3DBGRMAP: false,\r\n DITHER: false,\r\n IMAGEPROCESSINGPOSTPROCESS: false,\r\n EXPOSURE: false,\r\n SKIPFINALCOLORCLAMP: false,\r\n };\r\n\r\n public override readonly options: Required<NonNullableFields<ThinImageProcessingPostProcessOptions>>;\r\n\r\n /**\r\n * Constructs a new image processing post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: ThinImageProcessingPostProcessOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinImageProcessingPostProcess.FragmentUrl,\r\n });\r\n\r\n const imageProcessingConfiguration = options?.imageProcessingConfiguration;\r\n\r\n // Setup the configuration as forced by the constructor. This would then not force the\r\n // scene materials output in linear space and let untouched the default forward pass.\r\n if (imageProcessingConfiguration) {\r\n imageProcessingConfiguration.applyByPostProcess = true;\r\n this._attachImageProcessingConfiguration(imageProcessingConfiguration, true);\r\n // This will cause the shader to be compiled\r\n this._updateParameters();\r\n }\r\n // Setup the default processing configuration to the scene.\r\n else {\r\n this._attachImageProcessingConfiguration(null, true);\r\n this.imageProcessingConfiguration.applyByPostProcess = true;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateParameters(): void {\r\n this._defines.FROMLINEARSPACE = this._fromLinearSpace;\r\n this.imageProcessingConfiguration.prepareDefines(this._defines, true);\r\n let defines = \"\";\r\n for (const prop in this._defines) {\r\n const value = (<any>this._defines)[prop];\r\n const type = typeof value;\r\n\r\n switch (type) {\r\n case \"number\":\r\n case \"string\":\r\n defines += `#define ${prop} ${value};\\n`;\r\n break;\r\n default:\r\n if (value) {\r\n defines += `#define ${prop};\\n`;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n const samplers = [\"textureSampler\"];\r\n const uniforms = [\"scale\"];\r\n\r\n if (ImageProcessingConfiguration) {\r\n ImageProcessingConfiguration.PrepareSamplers(samplers, this._defines);\r\n ImageProcessingConfiguration.PrepareUniforms(uniforms, this._defines);\r\n }\r\n\r\n this.updateEffect(defines, uniforms, samplers);\r\n }\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this.imageProcessingConfiguration.bind(this.effect, this.overrideAspectRatio);\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n\r\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\r\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\r\n }\r\n\r\n if (this._imageProcessingConfiguration) {\r\n this.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type EffectWrapperCreationOptions, type Scene } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * Post process used to apply a motion blur post process
5
5
  */
@@ -1,5 +1,5 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
- import { Matrix, TmpVectors } from "../Maths/math.vector.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
+ import { Matrix, TmpVectors } from "../Maths/math.vector.pure.js";
3
3
  /**
4
4
  * Post process used to apply a motion blur post process
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"thinMotionBlurPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinMotionBlurPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import { type EffectWrapperCreationOptions, type Scene } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { Matrix, TmpVectors } from \"../Maths/math.vector\";\r\n\r\n/**\r\n * Post process used to apply a motion blur post process\r\n */\r\nexport class ThinMotionBlurPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"motionBlur\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"motionStrength\", \"motionScale\", \"screenSize\", \"inverseViewProjection\", \"prevViewProjection\", \"projection\"];\r\n\r\n /**\r\n * The list of samplers used by the effect\r\n */\r\n public static readonly Samplers = [\"velocitySampler\", \"depthSampler\"];\r\n\r\n /**\r\n * The default defines used by the effect\r\n */\r\n public static readonly Defines = \"#define GEOMETRY_SUPPORTED\\n#define SAMPLES 64.0\\n#define OBJECT_BASED\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/motionBlur.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/motionBlur.fragment\"));\r\n }\r\n }\r\n\r\n private _scene: Scene;\r\n private _invViewProjection = Matrix.Identity();\r\n private _previousViewProjection = Matrix.Identity();\r\n\r\n /**\r\n * Constructs a new motion blur post process\r\n * @param name Name of the effect\r\n * @param scene The scene the effect belongs to\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, scene: Scene, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: scene.getEngine(),\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinMotionBlurPostProcess.FragmentUrl,\r\n uniforms: ThinMotionBlurPostProcess.Uniforms,\r\n samplers: ThinMotionBlurPostProcess.Samplers,\r\n defines: ThinMotionBlurPostProcess.Defines,\r\n });\r\n\r\n this._scene = scene;\r\n\r\n this._applyMode();\r\n }\r\n\r\n /**\r\n * Defines how much the image is blurred by the movement. Default value is equal to 1\r\n */\r\n public motionStrength: number = 1;\r\n\r\n private _motionBlurSamples: number = 32;\r\n\r\n /**\r\n * Gets the number of iterations that are used for motion blur quality. Default value is equal to 32\r\n */\r\n public get motionBlurSamples(): number {\r\n return this._motionBlurSamples;\r\n }\r\n\r\n /**\r\n * Sets the number of iterations to be used for motion blur quality\r\n */\r\n public set motionBlurSamples(samples: number) {\r\n this._motionBlurSamples = samples;\r\n this._updateEffect();\r\n }\r\n\r\n private _isObjectBased: boolean = true;\r\n\r\n /**\r\n * Gets whether or not the motion blur post-process is in object based mode.\r\n */\r\n public get isObjectBased(): boolean {\r\n return this._isObjectBased;\r\n }\r\n\r\n /**\r\n * Sets whether or not the motion blur post-process is in object based mode.\r\n */\r\n public set isObjectBased(value: boolean) {\r\n if (this._isObjectBased === value) {\r\n return;\r\n }\r\n\r\n this._isObjectBased = value;\r\n this._applyMode();\r\n }\r\n\r\n /**\r\n * The width of the source texture\r\n */\r\n public textureWidth: number = 0;\r\n\r\n /**\r\n * The height of the source texture\r\n */\r\n public textureHeight: number = 0;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n const effect = this._drawWrapper.effect!;\r\n\r\n effect.setFloat2(\"screenSize\", this.textureWidth, this.textureHeight);\r\n effect.setFloat(\"motionScale\", this._scene.getAnimationRatio());\r\n effect.setFloat(\"motionStrength\", this.motionStrength);\r\n\r\n if (!this.isObjectBased) {\r\n const viewProjection = TmpVectors.Matrix[0];\r\n viewProjection.copyFrom(this._scene.getTransformMatrix());\r\n\r\n viewProjection.invertToRef(this._invViewProjection);\r\n effect.setMatrix(\"inverseViewProjection\", this._invViewProjection);\r\n\r\n effect.setMatrix(\"prevViewProjection\", this._previousViewProjection);\r\n this._previousViewProjection.copyFrom(viewProjection);\r\n\r\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\r\n }\r\n }\r\n\r\n private _updateEffect(): void {\r\n const defines: string[] = [\r\n \"#define GEOMETRY_SUPPORTED\",\r\n \"#define SAMPLES \" + this._motionBlurSamples.toFixed(1),\r\n this._isObjectBased ? \"#define OBJECT_BASED\" : \"#define SCREEN_BASED\",\r\n ];\r\n\r\n this.updateEffect(defines.join(\"\\n\"));\r\n }\r\n\r\n private _applyMode() {\r\n this._updateEffect();\r\n this._previousViewProjection.copyFrom(this._scene.getTransformMatrix());\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinMotionBlurPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinMotionBlurPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import { type EffectWrapperCreationOptions, type Scene } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer.pure\";\r\nimport { Matrix, TmpVectors } from \"../Maths/math.vector.pure\";\r\n\r\n/**\r\n * Post process used to apply a motion blur post process\r\n */\r\nexport class ThinMotionBlurPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"motionBlur\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"motionStrength\", \"motionScale\", \"screenSize\", \"inverseViewProjection\", \"prevViewProjection\", \"projection\"];\r\n\r\n /**\r\n * The list of samplers used by the effect\r\n */\r\n public static readonly Samplers = [\"velocitySampler\", \"depthSampler\"];\r\n\r\n /**\r\n * The default defines used by the effect\r\n */\r\n public static readonly Defines = \"#define GEOMETRY_SUPPORTED\\n#define SAMPLES 64.0\\n#define OBJECT_BASED\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/motionBlur.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/motionBlur.fragment\"));\r\n }\r\n }\r\n\r\n private _scene: Scene;\r\n private _invViewProjection = Matrix.Identity();\r\n private _previousViewProjection = Matrix.Identity();\r\n\r\n /**\r\n * Constructs a new motion blur post process\r\n * @param name Name of the effect\r\n * @param scene The scene the effect belongs to\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, scene: Scene, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: scene.getEngine(),\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinMotionBlurPostProcess.FragmentUrl,\r\n uniforms: ThinMotionBlurPostProcess.Uniforms,\r\n samplers: ThinMotionBlurPostProcess.Samplers,\r\n defines: ThinMotionBlurPostProcess.Defines,\r\n });\r\n\r\n this._scene = scene;\r\n\r\n this._applyMode();\r\n }\r\n\r\n /**\r\n * Defines how much the image is blurred by the movement. Default value is equal to 1\r\n */\r\n public motionStrength: number = 1;\r\n\r\n private _motionBlurSamples: number = 32;\r\n\r\n /**\r\n * Gets the number of iterations that are used for motion blur quality. Default value is equal to 32\r\n */\r\n public get motionBlurSamples(): number {\r\n return this._motionBlurSamples;\r\n }\r\n\r\n /**\r\n * Sets the number of iterations to be used for motion blur quality\r\n */\r\n public set motionBlurSamples(samples: number) {\r\n this._motionBlurSamples = samples;\r\n this._updateEffect();\r\n }\r\n\r\n private _isObjectBased: boolean = true;\r\n\r\n /**\r\n * Gets whether or not the motion blur post-process is in object based mode.\r\n */\r\n public get isObjectBased(): boolean {\r\n return this._isObjectBased;\r\n }\r\n\r\n /**\r\n * Sets whether or not the motion blur post-process is in object based mode.\r\n */\r\n public set isObjectBased(value: boolean) {\r\n if (this._isObjectBased === value) {\r\n return;\r\n }\r\n\r\n this._isObjectBased = value;\r\n this._applyMode();\r\n }\r\n\r\n /**\r\n * The width of the source texture\r\n */\r\n public textureWidth: number = 0;\r\n\r\n /**\r\n * The height of the source texture\r\n */\r\n public textureHeight: number = 0;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n\r\n const effect = this._drawWrapper.effect!;\r\n\r\n effect.setFloat2(\"screenSize\", this.textureWidth, this.textureHeight);\r\n effect.setFloat(\"motionScale\", this._scene.getAnimationRatio());\r\n effect.setFloat(\"motionStrength\", this.motionStrength);\r\n\r\n if (!this.isObjectBased) {\r\n const viewProjection = TmpVectors.Matrix[0];\r\n viewProjection.copyFrom(this._scene.getTransformMatrix());\r\n\r\n viewProjection.invertToRef(this._invViewProjection);\r\n effect.setMatrix(\"inverseViewProjection\", this._invViewProjection);\r\n\r\n effect.setMatrix(\"prevViewProjection\", this._previousViewProjection);\r\n this._previousViewProjection.copyFrom(viewProjection);\r\n\r\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\r\n }\r\n }\r\n\r\n private _updateEffect(): void {\r\n const defines: string[] = [\r\n \"#define GEOMETRY_SUPPORTED\",\r\n \"#define SAMPLES \" + this._motionBlurSamples.toFixed(1),\r\n this._isObjectBased ? \"#define OBJECT_BASED\" : \"#define SCREEN_BASED\",\r\n ];\r\n\r\n this.updateEffect(defines.join(\"\\n\"));\r\n }\r\n\r\n private _applyMode() {\r\n this._updateEffect();\r\n this._previousViewProjection.copyFrom(this._scene.getTransformMatrix());\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type EffectWrapperCreationOptions, type AbstractEngine } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * PassPostProcess which produces an output the same as it's input
5
5
  */
@@ -1,4 +1,4 @@
1
- import { EffectWrapper } from "../Materials/effectRenderer.js";
1
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
2
2
  import { EngineStore } from "../Engines/engineStore.js";
3
3
  /**
4
4
  * PassPostProcess which produces an output the same as it's input
@@ -1 +1 @@
1
- {"version":3,"file":"thinPassPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinPassPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable, type EffectWrapperCreationOptions, type AbstractEngine } from \"core/index\";\r\nimport { EffectWrapper } from \"core/Materials/effectRenderer\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * PassPostProcess which produces an output the same as it's input\r\n */\r\nexport class ThinPassPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"pass\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/pass.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/pass.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * Constructs a new pass post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n const localOptions: EffectWrapperCreationOptions = {\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinPassPostProcess.FragmentUrl,\r\n ...options,\r\n };\r\n\r\n if (!localOptions.engine) {\r\n localOptions.engine = EngineStore.LastCreatedEngine!;\r\n }\r\n\r\n super(localOptions);\r\n }\r\n}\r\n\r\n/**\r\n * PassCubePostProcess which produces an output the same as it's input (which must be a cube texture)\r\n */\r\nexport class ThinPassCubePostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"passCube\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/passCube.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/passCube.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * Creates the PassCubePostProcess\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinPassCubePostProcess.FragmentUrl,\r\n defines: \"#define POSITIVEX\",\r\n });\r\n }\r\n\r\n private _face = 0;\r\n\r\n /**\r\n * Gets or sets the cube face to display.\r\n * * 0 is +X\r\n * * 1 is -X\r\n * * 2 is +Y\r\n * * 3 is -Y\r\n * * 4 is +Z\r\n * * 5 is -Z\r\n */\r\n public get face(): number {\r\n return this._face;\r\n }\r\n\r\n public set face(value: number) {\r\n if (value < 0 || value > 5) {\r\n return;\r\n }\r\n\r\n this._face = value;\r\n switch (this._face) {\r\n case 0:\r\n this.updateEffect(\"#define POSITIVEX\");\r\n break;\r\n case 1:\r\n this.updateEffect(\"#define NEGATIVEX\");\r\n break;\r\n case 2:\r\n this.updateEffect(\"#define POSITIVEY\");\r\n break;\r\n case 3:\r\n this.updateEffect(\"#define NEGATIVEY\");\r\n break;\r\n case 4:\r\n this.updateEffect(\"#define POSITIVEZ\");\r\n break;\r\n case 5:\r\n this.updateEffect(\"#define NEGATIVEZ\");\r\n break;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"thinPassPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinPassPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable, type EffectWrapperCreationOptions, type AbstractEngine } from \"core/index\";\r\nimport { EffectWrapper } from \"core/Materials/effectRenderer.pure\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\n\r\n/**\r\n * PassPostProcess which produces an output the same as it's input\r\n */\r\nexport class ThinPassPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"pass\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/pass.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/pass.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * Constructs a new pass post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n const localOptions: EffectWrapperCreationOptions = {\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinPassPostProcess.FragmentUrl,\r\n ...options,\r\n };\r\n\r\n if (!localOptions.engine) {\r\n localOptions.engine = EngineStore.LastCreatedEngine!;\r\n }\r\n\r\n super(localOptions);\r\n }\r\n}\r\n\r\n/**\r\n * PassCubePostProcess which produces an output the same as it's input (which must be a cube texture)\r\n */\r\nexport class ThinPassCubePostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"passCube\";\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/passCube.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/passCube.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * Creates the PassCubePostProcess\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || EngineStore.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinPassCubePostProcess.FragmentUrl,\r\n defines: \"#define POSITIVEX\",\r\n });\r\n }\r\n\r\n private _face = 0;\r\n\r\n /**\r\n * Gets or sets the cube face to display.\r\n * * 0 is +X\r\n * * 1 is -X\r\n * * 2 is +Y\r\n * * 3 is -Y\r\n * * 4 is +Z\r\n * * 5 is -Z\r\n */\r\n public get face(): number {\r\n return this._face;\r\n }\r\n\r\n public set face(value: number) {\r\n if (value < 0 || value > 5) {\r\n return;\r\n }\r\n\r\n this._face = value;\r\n switch (this._face) {\r\n case 0:\r\n this.updateEffect(\"#define POSITIVEX\");\r\n break;\r\n case 1:\r\n this.updateEffect(\"#define NEGATIVEX\");\r\n break;\r\n case 2:\r\n this.updateEffect(\"#define POSITIVEY\");\r\n break;\r\n case 3:\r\n this.updateEffect(\"#define NEGATIVEY\");\r\n break;\r\n case 4:\r\n this.updateEffect(\"#define POSITIVEZ\");\r\n break;\r\n case 5:\r\n this.updateEffect(\"#define NEGATIVEZ\");\r\n break;\r\n }\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Nullable, type AbstractEngine, type EffectWrapperCreationOptions } from "../index.js";
2
- import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
3
3
  /**
4
4
  * @internal
5
5
  */