@babylonjs/core 5.45.1 → 5.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/Actions/condition.js +23 -23
  2. package/Actions/condition.js.map +1 -1
  3. package/Animations/animatable.js +48 -48
  4. package/Animations/animatable.js.map +1 -1
  5. package/Animations/animation.js +53 -53
  6. package/Animations/animation.js.map +1 -1
  7. package/Animations/animationGroup.js +53 -53
  8. package/Animations/animationGroup.js.map +1 -1
  9. package/Animations/runtimeAnimation.js +36 -36
  10. package/Animations/runtimeAnimation.js.map +1 -1
  11. package/Audio/audioEngine.js +14 -14
  12. package/Audio/audioEngine.js.map +1 -1
  13. package/Audio/audioSceneComponent.js +14 -14
  14. package/Audio/audioSceneComponent.js.map +1 -1
  15. package/Audio/sound.js +47 -47
  16. package/Audio/sound.js.map +1 -1
  17. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +1 -1
  18. package/Behaviors/Meshes/fadeInOutBehavior.js +11 -11
  19. package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
  20. package/Behaviors/Meshes/pointerDragBehavior.js +34 -34
  21. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  22. package/Bones/bone.js +15 -15
  23. package/Bones/bone.js.map +1 -1
  24. package/Bones/boneIKController.js +9 -9
  25. package/Bones/boneIKController.js.map +1 -1
  26. package/Bones/boneLookController.js +50 -50
  27. package/Bones/boneLookController.js.map +1 -1
  28. package/Bones/skeleton.js +35 -35
  29. package/Bones/skeleton.js.map +1 -1
  30. package/Buffers/buffer.js +14 -14
  31. package/Buffers/buffer.js.map +1 -1
  32. package/Buffers/dataBuffer.js +6 -6
  33. package/Buffers/dataBuffer.js.map +1 -1
  34. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +42 -42
  35. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  36. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +18 -18
  37. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  38. package/Cameras/VR/vrExperienceHelper.js +178 -178
  39. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  40. package/Cameras/arcRotateCamera.js +176 -176
  41. package/Cameras/arcRotateCamera.js.map +1 -1
  42. package/Cameras/camera.js +90 -90
  43. package/Cameras/camera.js.map +1 -1
  44. package/Cameras/flyCamera.js +82 -82
  45. package/Cameras/flyCamera.js.map +1 -1
  46. package/Cameras/freeCamera.js +54 -54
  47. package/Cameras/freeCamera.js.map +1 -1
  48. package/Compute/computeShader.js +12 -12
  49. package/Compute/computeShader.js.map +1 -1
  50. package/Culling/ray.d.ts +1 -1
  51. package/Debug/axesViewer.js +12 -12
  52. package/Debug/axesViewer.js.map +1 -1
  53. package/Debug/debugLayer.js +21 -21
  54. package/Debug/debugLayer.js.map +1 -1
  55. package/Debug/directionalLightFrustumViewer.js +20 -20
  56. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  57. package/Debug/rayHelper.js +10 -10
  58. package/Debug/rayHelper.js.map +1 -1
  59. package/Debug/skeletonViewer.js +81 -81
  60. package/Debug/skeletonViewer.js.map +1 -1
  61. package/DeviceInput/InputDevices/deviceSource.d.ts +1 -1
  62. package/DeviceInput/InputDevices/deviceSourceManager.js +31 -31
  63. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  64. package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
  65. package/DeviceInput/internalDeviceSourceManager.d.ts +2 -2
  66. package/Engines/Extensions/engine.computeShader.d.ts +3 -3
  67. package/Engines/Extensions/engine.multiRender.js +1 -1
  68. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  69. package/Engines/Extensions/engine.query.d.ts +1 -1
  70. package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
  71. package/Engines/Extensions/engine.renderTarget.js +1 -1
  72. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  73. package/Engines/Native/nativeDataStream.d.ts +1 -1
  74. package/Engines/Native/nativeHardwareTexture.js +3 -3
  75. package/Engines/Native/nativeHardwareTexture.js.map +1 -1
  76. package/Engines/Native/nativeInterfaces.d.ts +5 -5
  77. package/Engines/Native/nativePipelineContext.js +7 -7
  78. package/Engines/Native/nativePipelineContext.js.map +1 -1
  79. package/Engines/Native/nativeRenderTargetWrapper.js +6 -6
  80. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  81. package/Engines/Processors/shaderCodeInliner.js +4 -4
  82. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  83. package/Engines/Processors/shaderProcessingOptions.d.ts +1 -1
  84. package/Engines/WebGL/webGLHardwareTexture.js +3 -3
  85. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  86. package/Engines/WebGPU/webgpuBufferManager.js +3 -3
  87. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  88. package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -6
  89. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  90. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +5 -5
  91. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  92. package/Engines/WebGPU/webgpuClearQuad.js +11 -11
  93. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  94. package/Engines/WebGPU/webgpuComputeContext.js +7 -7
  95. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  96. package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -4
  97. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  98. package/Engines/WebGPU/webgpuDrawContext.js +7 -7
  99. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  100. package/Engines/WebGPU/webgpuHardwareTexture.js +9 -9
  101. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  102. package/Engines/WebGPU/webgpuMaterialContext.js +5 -5
  103. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  104. package/Engines/WebGPU/webgpuOcclusionQuery.js +10 -10
  105. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  106. package/Engines/WebGPU/webgpuPipelineContext.js +6 -6
  107. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  108. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  109. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  110. package/Engines/WebGPU/webgpuShaderProcessingContext.js +3 -3
  111. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  112. package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
  113. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  114. package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
  115. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  116. package/Engines/engine.js +134 -134
  117. package/Engines/engine.js.map +1 -1
  118. package/Engines/nativeEngine.js +6 -6
  119. package/Engines/nativeEngine.js.map +1 -1
  120. package/Engines/nullEngine.js +25 -25
  121. package/Engines/nullEngine.js.map +1 -1
  122. package/Engines/renderTargetWrapper.js +25 -25
  123. package/Engines/renderTargetWrapper.js.map +1 -1
  124. package/Engines/thinEngine.js +243 -243
  125. package/Engines/thinEngine.js.map +1 -1
  126. package/Engines/webgpuEngine.js +132 -132
  127. package/Engines/webgpuEngine.js.map +1 -1
  128. package/Events/keyboardEvents.js +10 -10
  129. package/Events/keyboardEvents.js.map +1 -1
  130. package/Events/pointerEvents.js +9 -9
  131. package/Events/pointerEvents.js.map +1 -1
  132. package/Gamepads/Controllers/poseEnabledController.js +9 -9
  133. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  134. package/Gamepads/Controllers/webVRController.js +13 -13
  135. package/Gamepads/Controllers/webVRController.js.map +1 -1
  136. package/Gamepads/gamepad.js +20 -20
  137. package/Gamepads/gamepad.js.map +1 -1
  138. package/Gizmos/axisDragGizmo.js +45 -45
  139. package/Gizmos/axisDragGizmo.js.map +1 -1
  140. package/Gizmos/axisScaleGizmo.js +12 -12
  141. package/Gizmos/axisScaleGizmo.js.map +1 -1
  142. package/Gizmos/boundingBoxGizmo.js +74 -74
  143. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  144. package/Gizmos/gizmo.js +34 -34
  145. package/Gizmos/gizmo.js.map +1 -1
  146. package/Gizmos/gizmoManager.js +40 -40
  147. package/Gizmos/gizmoManager.js.map +1 -1
  148. package/Gizmos/planeDragGizmo.js +23 -23
  149. package/Gizmos/planeDragGizmo.js.map +1 -1
  150. package/Gizmos/planeRotationGizmo.js +12 -12
  151. package/Gizmos/planeRotationGizmo.js.map +1 -1
  152. package/Gizmos/positionGizmo.js +40 -40
  153. package/Gizmos/positionGizmo.js.map +1 -1
  154. package/Gizmos/rotationGizmo.js +47 -47
  155. package/Gizmos/rotationGizmo.js.map +1 -1
  156. package/Gizmos/scaleGizmo.js +41 -41
  157. package/Gizmos/scaleGizmo.js.map +1 -1
  158. package/Helpers/environmentHelper.js +18 -18
  159. package/Helpers/environmentHelper.js.map +1 -1
  160. package/Helpers/textureDome.js +96 -96
  161. package/Helpers/textureDome.js.map +1 -1
  162. package/IAccessibilityTag.d.ts +2 -2
  163. package/Inputs/scene.inputManager.js +12 -1
  164. package/Inputs/scene.inputManager.js.map +1 -1
  165. package/Instrumentation/engineInstrumentation.js +21 -21
  166. package/Instrumentation/engineInstrumentation.js.map +1 -1
  167. package/Instrumentation/sceneInstrumentation.js +90 -90
  168. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  169. package/Layers/effectLayer.js +48 -48
  170. package/Layers/effectLayer.js.map +1 -1
  171. package/Layers/glowLayer.js +32 -32
  172. package/Layers/glowLayer.js.map +1 -1
  173. package/Layers/highlightLayer.js +26 -26
  174. package/Layers/highlightLayer.js.map +1 -1
  175. package/Layers/layer.js +40 -40
  176. package/Layers/layer.js.map +1 -1
  177. package/LensFlares/lensFlare.js +15 -15
  178. package/LensFlares/lensFlare.js.map +1 -1
  179. package/LensFlares/lensFlareSystem.js +4 -4
  180. package/LensFlares/lensFlareSystem.js.map +1 -1
  181. package/Lights/Shadows/cascadedShadowGenerator.js +18 -18
  182. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  183. package/Lights/Shadows/shadowGenerator.js +115 -115
  184. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  185. package/Lights/directionalLight.js +31 -31
  186. package/Lights/directionalLight.js.map +1 -1
  187. package/Lights/light.js +72 -72
  188. package/Lights/light.js.map +1 -1
  189. package/Lights/pointLight.js +18 -18
  190. package/Lights/pointLight.js.map +1 -1
  191. package/Lights/spotLight.js +30 -30
  192. package/Lights/spotLight.js.map +1 -1
  193. package/Loading/sceneLoader.d.ts +1 -1
  194. package/Materials/Background/backgroundMaterial.js +124 -124
  195. package/Materials/Background/backgroundMaterial.js.map +1 -1
  196. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +8 -8
  197. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  198. package/Materials/Node/Blocks/Dual/lightBlock.js +14 -14
  199. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  200. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +9 -9
  201. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  202. package/Materials/Node/Blocks/Dual/textureBlock.js +26 -26
  203. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  204. package/Materials/Node/Blocks/Input/inputBlock.js +34 -34
  205. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +14 -14
  207. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/PBR/reflectionBlock.js +16 -16
  209. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/customBlock.js +7 -7
  211. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/gradientBlock.js +13 -13
  213. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/triPlanarBlock.js +30 -30
  215. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  216. package/Materials/Node/nodeMaterial.d.ts +1 -1
  217. package/Materials/Node/nodeMaterial.js +60 -60
  218. package/Materials/Node/nodeMaterial.js.map +1 -1
  219. package/Materials/Node/nodeMaterialBlock.js +35 -35
  220. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  221. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +50 -50
  222. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  223. package/Materials/PBR/pbrAnisotropicConfiguration.js +5 -5
  224. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  225. package/Materials/PBR/pbrBRDFConfiguration.js +4 -4
  226. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  227. package/Materials/PBR/pbrBaseMaterial.js +52 -52
  228. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  229. package/Materials/PBR/pbrBaseSimpleMaterial.js +17 -17
  230. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  231. package/Materials/PBR/pbrClearCoatConfiguration.js +5 -5
  232. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  233. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  234. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  235. package/Materials/PBR/pbrMaterial.js +209 -209
  236. package/Materials/PBR/pbrMaterial.js.map +1 -1
  237. package/Materials/PBR/pbrSheenConfiguration.js +5 -5
  238. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  239. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +6 -6
  240. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  241. package/Materials/PBR/pbrSubSurfaceConfiguration.js +51 -51
  242. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  243. package/Materials/Textures/baseTexture.js +99 -99
  244. package/Materials/Textures/baseTexture.js.map +1 -1
  245. package/Materials/Textures/cubeTexture.js +61 -61
  246. package/Materials/Textures/cubeTexture.js.map +1 -1
  247. package/Materials/Textures/externalTexture.js +16 -16
  248. package/Materials/Textures/externalTexture.js.map +1 -1
  249. package/Materials/Textures/hdrCubeTexture.js +44 -44
  250. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  251. package/Materials/Textures/internalTexture.js +31 -31
  252. package/Materials/Textures/internalTexture.js.map +1 -1
  253. package/Materials/Textures/mirrorTexture.js +73 -73
  254. package/Materials/Textures/mirrorTexture.js.map +1 -1
  255. package/Materials/Textures/multiRenderTarget.js +47 -47
  256. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  257. package/Materials/Textures/rawTexture2DArray.js +6 -6
  258. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  259. package/Materials/Textures/renderTargetTexture.js +142 -142
  260. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  261. package/Materials/Textures/texture.d.ts +1 -1
  262. package/Materials/Textures/texture.js +26 -26
  263. package/Materials/Textures/texture.js.map +1 -1
  264. package/Materials/Textures/textureCreationOptions.d.ts +1 -1
  265. package/Materials/Textures/textureSampler.js +20 -20
  266. package/Materials/Textures/textureSampler.js.map +1 -1
  267. package/Materials/Textures/thinRenderTargetTexture.js +6 -6
  268. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  269. package/Materials/Textures/thinTexture.js +39 -39
  270. package/Materials/Textures/thinTexture.js.map +1 -1
  271. package/Materials/Textures/videoTexture.d.ts +1 -0
  272. package/Materials/Textures/videoTexture.js +59 -48
  273. package/Materials/Textures/videoTexture.js.map +1 -1
  274. package/Materials/drawWrapper.js +6 -6
  275. package/Materials/drawWrapper.js.map +1 -1
  276. package/Materials/effect.js +18 -18
  277. package/Materials/effect.js.map +1 -1
  278. package/Materials/effectRenderer.js +9 -9
  279. package/Materials/effectRenderer.js.map +1 -1
  280. package/Materials/fresnelParameters.d.ts +2 -2
  281. package/Materials/fresnelParameters.js +13 -13
  282. package/Materials/fresnelParameters.js.map +1 -1
  283. package/Materials/material.detailMapConfiguration.js +5 -5
  284. package/Materials/material.detailMapConfiguration.js.map +1 -1
  285. package/Materials/material.js +223 -223
  286. package/Materials/material.js.map +1 -1
  287. package/Materials/materialPluginBase.js +5 -5
  288. package/Materials/materialPluginBase.js.map +1 -1
  289. package/Materials/materialPluginEvent.d.ts +14 -14
  290. package/Materials/materialPluginManager.d.ts +1 -1
  291. package/Materials/multiMaterial.js +16 -16
  292. package/Materials/multiMaterial.js.map +1 -1
  293. package/Materials/shadowDepthWrapper.js +14 -14
  294. package/Materials/shadowDepthWrapper.js.map +1 -1
  295. package/Materials/standardMaterial.js +100 -100
  296. package/Materials/standardMaterial.js.map +1 -1
  297. package/Materials/uniformBufferEffectCommonAccessor.js +3 -3
  298. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  299. package/Maths/math.functions.js +2 -0
  300. package/Maths/math.functions.js.map +1 -1
  301. package/Maths/math.path.js +11 -11
  302. package/Maths/math.path.js.map +1 -1
  303. package/Maths/math.vector.d.ts +6 -7
  304. package/Maths/math.vector.js +48 -48
  305. package/Maths/math.vector.js.map +1 -1
  306. package/Meshes/Builders/goldbergBuilder.d.ts +2 -2
  307. package/Meshes/Compression/dracoCompression.js +23 -23
  308. package/Meshes/Compression/dracoCompression.js.map +1 -1
  309. package/Meshes/Compression/meshoptCompression.js +9 -9
  310. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  311. package/Meshes/abstractMesh.js +179 -179
  312. package/Meshes/abstractMesh.js.map +1 -1
  313. package/Meshes/geometry.js +32 -32
  314. package/Meshes/geometry.js.map +1 -1
  315. package/Meshes/goldbergMesh.d.ts +1 -1
  316. package/Meshes/linesMesh.js +3 -3
  317. package/Meshes/linesMesh.js.map +1 -1
  318. package/Meshes/mesh.js +165 -165
  319. package/Meshes/mesh.js.map +1 -1
  320. package/Meshes/mesh.vertexData.js.map +1 -1
  321. package/Meshes/polygonMesh.js +5 -5
  322. package/Meshes/polygonMesh.js.map +1 -1
  323. package/Meshes/subMesh.js +59 -59
  324. package/Meshes/subMesh.js.map +1 -1
  325. package/Meshes/transformNode.js +52 -52
  326. package/Meshes/transformNode.js.map +1 -1
  327. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -1
  328. package/Misc/PerformanceViewer/performanceViewerCollector.js +12 -12
  329. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  330. package/Misc/arrayTools.d.ts +1 -1
  331. package/Misc/copyTextureToTexture.js +3 -3
  332. package/Misc/copyTextureToTexture.js.map +1 -1
  333. package/Misc/coroutine.d.ts +5 -5
  334. package/Misc/deferred.js +9 -9
  335. package/Misc/deferred.js.map +1 -1
  336. package/Misc/depthReducer.js +7 -7
  337. package/Misc/depthReducer.js.map +1 -1
  338. package/Misc/environmentTextureTools.d.ts +1 -1
  339. package/Misc/error.d.ts +1 -1
  340. package/Misc/fileTools.d.ts +5 -5
  341. package/Misc/filesInput.js +6 -6
  342. package/Misc/filesInput.js.map +1 -1
  343. package/Misc/khronosTextureContainer2.js +9 -9
  344. package/Misc/khronosTextureContainer2.js.map +1 -1
  345. package/Misc/observable.js +12 -12
  346. package/Misc/observable.js.map +1 -1
  347. package/Misc/perfCounter.js +16 -16
  348. package/Misc/perfCounter.js.map +1 -1
  349. package/Misc/sceneOptimizer.js +76 -76
  350. package/Misc/sceneOptimizer.js.map +1 -1
  351. package/Misc/stringDictionary.d.ts +1 -1
  352. package/Misc/trajectoryClassifier.js +67 -67
  353. package/Misc/trajectoryClassifier.js.map +1 -1
  354. package/Misc/videoRecorder.js +15 -15
  355. package/Misc/videoRecorder.js.map +1 -1
  356. package/Misc/virtualJoystick.js +12 -12
  357. package/Misc/virtualJoystick.js.map +1 -1
  358. package/Morph/morphTarget.js +28 -28
  359. package/Morph/morphTarget.js.map +1 -1
  360. package/Morph/morphTargetManager.js +18 -18
  361. package/Morph/morphTargetManager.js.map +1 -1
  362. package/Offline/database.js +12 -12
  363. package/Offline/database.js.map +1 -1
  364. package/Particles/EmitterTypes/coneParticleEmitter.js +25 -25
  365. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  366. package/Particles/EmitterTypes/meshParticleEmitter.js +20 -20
  367. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  368. package/Particles/baseParticleSystem.js +232 -232
  369. package/Particles/baseParticleSystem.js.map +1 -1
  370. package/Particles/cloudPoint.js +9 -9
  371. package/Particles/cloudPoint.js.map +1 -1
  372. package/Particles/gpuParticleSystem.js +123 -123
  373. package/Particles/gpuParticleSystem.js.map +1 -1
  374. package/Particles/particleSystem.js +102 -102
  375. package/Particles/particleSystem.js.map +1 -1
  376. package/Particles/pointsCloudSystem.js +18 -18
  377. package/Particles/pointsCloudSystem.js.map +1 -1
  378. package/Particles/solidParticle.js +23 -23
  379. package/Particles/solidParticle.js.map +1 -1
  380. package/Physics/index.d.ts +1 -0
  381. package/Physics/index.js +1 -0
  382. package/Physics/index.js.map +1 -1
  383. package/Physics/physicsHelper.d.ts +452 -1
  384. package/Physics/physicsHelper.js +877 -2
  385. package/Physics/physicsHelper.js.map +1 -1
  386. package/Physics/v1/index.d.ts +0 -1
  387. package/Physics/v1/index.js +0 -1
  388. package/Physics/v1/index.js.map +1 -1
  389. package/Physics/v1/physicsEngine.js +14 -14
  390. package/Physics/v1/physicsEngine.js.map +1 -1
  391. package/Physics/v1/physicsImpostor.js +149 -149
  392. package/Physics/v1/physicsImpostor.js.map +1 -1
  393. package/Physics/v2/IPhysicsEnginePlugin.d.ts +2 -1
  394. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  395. package/Physics/v2/index.d.ts +1 -0
  396. package/Physics/v2/index.js +1 -0
  397. package/Physics/v2/index.js.map +1 -1
  398. package/Physics/v2/physicsAggregate.d.ts +18 -0
  399. package/Physics/v2/physicsAggregate.js +44 -2
  400. package/Physics/v2/physicsAggregate.js.map +1 -1
  401. package/Physics/v2/physicsBody.d.ts +22 -1
  402. package/Physics/v2/physicsBody.js +54 -1
  403. package/Physics/v2/physicsBody.js.map +1 -1
  404. package/Physics/v2/physicsEngine.d.ts +7 -2
  405. package/Physics/v2/physicsEngine.js +23 -16
  406. package/Physics/v2/physicsEngine.js.map +1 -1
  407. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +129 -129
  408. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  409. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +68 -68
  410. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  411. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +6 -6
  412. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  413. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +226 -225
  414. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  415. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +10 -10
  416. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  417. package/PostProcesses/anaglyphPostProcess.js +7 -7
  418. package/PostProcesses/anaglyphPostProcess.js.map +1 -1
  419. package/PostProcesses/blackAndWhitePostProcess.js +7 -7
  420. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  421. package/PostProcesses/bloomEffect.js +28 -28
  422. package/PostProcesses/bloomEffect.js.map +1 -1
  423. package/PostProcesses/bloomMergePostProcess.js +7 -7
  424. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  425. package/PostProcesses/blurPostProcess.js +32 -32
  426. package/PostProcesses/blurPostProcess.js.map +1 -1
  427. package/PostProcesses/chromaticAberrationPostProcess.js +7 -7
  428. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  429. package/PostProcesses/circleOfConfusionPostProcess.js +7 -7
  430. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  431. package/PostProcesses/colorCorrectionPostProcess.js +7 -7
  432. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  433. package/PostProcesses/convolutionPostProcess.js +7 -7
  434. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  435. package/PostProcesses/depthOfFieldBlurPostProcess.js +7 -7
  436. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  437. package/PostProcesses/depthOfFieldEffect.js +36 -36
  438. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  439. package/PostProcesses/depthOfFieldMergePostProcess.js +7 -7
  440. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  441. package/PostProcesses/extractHighlightsPostProcess.js +7 -7
  442. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  443. package/PostProcesses/filterPostProcess.js +7 -7
  444. package/PostProcesses/filterPostProcess.js.map +1 -1
  445. package/PostProcesses/grainPostProcess.js +7 -7
  446. package/PostProcesses/grainPostProcess.js.map +1 -1
  447. package/PostProcesses/imageProcessingPostProcess.js +42 -42
  448. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  449. package/PostProcesses/motionBlurPostProcess.js +41 -41
  450. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  451. package/PostProcesses/passPostProcess.js +15 -15
  452. package/PostProcesses/passPostProcess.js.map +1 -1
  453. package/PostProcesses/postProcess.d.ts +2 -2
  454. package/PostProcesses/postProcess.js +123 -123
  455. package/PostProcesses/postProcess.js.map +1 -1
  456. package/PostProcesses/refractionPostProcess.js +21 -21
  457. package/PostProcesses/refractionPostProcess.js.map +1 -1
  458. package/PostProcesses/screenSpaceCurvaturePostProcess.js +7 -7
  459. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  460. package/PostProcesses/screenSpaceReflectionPostProcess.js +19 -19
  461. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  462. package/PostProcesses/sharpenPostProcess.js +7 -7
  463. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  464. package/PostProcesses/stereoscopicInterlacePostProcess.js +14 -14
  465. package/PostProcesses/stereoscopicInterlacePostProcess.js.map +1 -1
  466. package/PostProcesses/tonemapPostProcess.js +7 -7
  467. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  468. package/PostProcesses/volumetricLightScatteringPostProcess.js +11 -11
  469. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  470. package/PostProcesses/vrDistortionCorrectionPostProcess.js +7 -7
  471. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  472. package/Rendering/depthPeelingRenderer.js +36 -36
  473. package/Rendering/depthPeelingRenderer.js.map +1 -1
  474. package/Rendering/depthRenderer.js +8 -8
  475. package/Rendering/depthRenderer.js.map +1 -1
  476. package/Rendering/edgesRenderer.js +34 -34
  477. package/Rendering/edgesRenderer.js.map +1 -1
  478. package/Rendering/fluidRenderer/fluidRenderer.js +8 -8
  479. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  480. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +3 -3
  481. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  482. package/Rendering/fluidRenderer/fluidRenderingObject.js +19 -19
  483. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  484. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +12 -12
  485. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  486. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +18 -18
  487. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  488. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +68 -68
  489. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  490. package/Rendering/fluidRenderer/fluidRenderingTextures.js +29 -29
  491. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  492. package/Rendering/geometryBufferRenderer.js +44 -44
  493. package/Rendering/geometryBufferRenderer.js.map +1 -1
  494. package/Rendering/prePassRenderer.js +51 -51
  495. package/Rendering/prePassRenderer.js.map +1 -1
  496. package/Rendering/renderingGroup.js +25 -25
  497. package/Rendering/renderingGroup.js.map +1 -1
  498. package/Rendering/renderingManager.js +21 -21
  499. package/Rendering/renderingManager.js.map +1 -1
  500. package/Rendering/subSurfaceConfiguration.js +18 -18
  501. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  502. package/Rendering/utilityLayerRenderer.js +76 -76
  503. package/Rendering/utilityLayerRenderer.js.map +1 -1
  504. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +4 -1
  505. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  506. package/Sprites/sprite.js +16 -16
  507. package/Sprites/sprite.js.map +1 -1
  508. package/Sprites/spriteManager.js +81 -81
  509. package/Sprites/spriteManager.js.map +1 -1
  510. package/Sprites/spriteMap.js +32 -32
  511. package/Sprites/spriteMap.js.map +1 -1
  512. package/Sprites/spriteRenderer.js +6 -6
  513. package/Sprites/spriteRenderer.js.map +1 -1
  514. package/Sprites/thinSprite.js +22 -22
  515. package/Sprites/thinSprite.js.map +1 -1
  516. package/States/stencilStateComposer.js +10 -10
  517. package/States/stencilStateComposer.js.map +1 -1
  518. package/XR/features/WebXRAnchorSystem.js +7 -7
  519. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  520. package/XR/features/WebXRControllerMovement.d.ts +3 -3
  521. package/XR/features/WebXRControllerMovement.js +97 -97
  522. package/XR/features/WebXRControllerMovement.js.map +1 -1
  523. package/XR/features/WebXRControllerPhysics.js +24 -24
  524. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  525. package/XR/features/WebXRControllerTeleportation.js +26 -26
  526. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  527. package/XR/features/WebXRDOMOverlay.d.ts +1 -1
  528. package/XR/features/WebXRFeaturePointSystem.js +6 -6
  529. package/XR/features/WebXRFeaturePointSystem.js.map +1 -1
  530. package/XR/features/WebXRHandTracking.d.ts +1 -1
  531. package/XR/features/WebXRHandTracking.js +95 -95
  532. package/XR/features/WebXRHandTracking.js.map +1 -1
  533. package/XR/features/WebXRWalkingLocomotion.js +21 -21
  534. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  535. package/XR/motionController/webXRAbstractMotionController.d.ts +3 -3
  536. package/XR/motionController/webXRMotionControllerManager.d.ts +1 -1
  537. package/XR/native/nativeXRFrame.js +3 -3
  538. package/XR/native/nativeXRFrame.js.map +1 -1
  539. package/XR/webXRFeaturesManager.d.ts +1 -1
  540. package/XR/webXRLayerWrapper.d.ts +2 -2
  541. package/XR/webXRLayerWrapper.js +17 -17
  542. package/XR/webXRLayerWrapper.js.map +1 -1
  543. package/abstractScene.d.ts +2 -2
  544. package/node.d.ts +1 -1
  545. package/node.js +71 -71
  546. package/node.js.map +1 -1
  547. package/package.json +1 -1
  548. package/scene.js +777 -777
  549. package/scene.js.map +1 -1
  550. package/sceneComponent.d.ts +12 -12
  551. package/types.d.ts +11 -11
  552. package/Physics/v1/physicsHelper.d.ts +0 -411
  553. package/Physics/v1/physicsHelper.js +0 -709
  554. package/Physics/v1/physicsHelper.js.map +0 -1
@@ -17,6 +17,12 @@ import "../../../Shaders/ssaoCombine.fragment.js";
17
17
  * Render pipeline to produce ssao effect
18
18
  */
19
19
  export class SSAORenderingPipeline extends PostProcessRenderPipeline {
20
+ /**
21
+ * Gets active scene
22
+ */
23
+ get scene() {
24
+ return this._scene;
25
+ }
20
26
  /**
21
27
  * @constructor
22
28
  * @param name - The rendering pipeline name
@@ -109,12 +115,6 @@ export class SSAORenderingPipeline extends PostProcessRenderPipeline {
109
115
  scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);
110
116
  }
111
117
  }
112
- /**
113
- * Gets active scene
114
- */
115
- get scene() {
116
- return this._scene;
117
- }
118
118
  /**
119
119
  * @internal
120
120
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ssaoRenderingPipeline.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Vector2, Vector3, TmpVectors } from \"../../../Maths/math.vector\";\r\nimport type { Camera } from \"../../../Cameras/camera\";\r\nimport type { Effect } from \"../../../Materials/effect\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport { DynamicTexture } from \"../../../Materials/Textures/dynamicTexture\";\r\nimport { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { PassPostProcess } from \"../../../PostProcesses/passPostProcess\";\r\nimport { BlurPostProcess } from \"../../../PostProcesses/blurPostProcess\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport { serialize } from \"../../../Misc/decorators\";\r\nimport type { Scene } from \"../../../scene\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\nimport \"../../../Shaders/ssao.fragment\";\r\nimport \"../../../Shaders/ssaoCombine.fragment\";\r\n\r\n/**\r\n * Render pipeline to produce ssao effect\r\n */\r\nexport class SSAORenderingPipeline extends PostProcessRenderPipeline {\r\n // Members\r\n\r\n /**\r\n * @ignore\r\n * The PassPostProcess id in the pipeline that contains the original scene color\r\n */\r\n public SSAOOriginalSceneColorEffect: string = \"SSAOOriginalSceneColorEffect\";\r\n /**\r\n * @ignore\r\n * The SSAO PostProcess id in the pipeline\r\n */\r\n public SSAORenderEffect: string = \"SSAORenderEffect\";\r\n /**\r\n * @ignore\r\n * The horizontal blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurHRenderEffect: string = \"SSAOBlurHRenderEffect\";\r\n /**\r\n * @ignore\r\n * The vertical blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurVRenderEffect: string = \"SSAOBlurVRenderEffect\";\r\n /**\r\n * @ignore\r\n * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)\r\n */\r\n public SSAOCombineRenderEffect: string = \"SSAOCombineRenderEffect\";\r\n\r\n /**\r\n * The output strength of the SSAO post-process. Default value is 1.0.\r\n */\r\n @serialize()\r\n public totalStrength: number = 1.0;\r\n\r\n /**\r\n * The radius around the analyzed pixel used by the SSAO post-process. Default value is 0.0006\r\n */\r\n @serialize()\r\n public radius: number = 0.0001;\r\n\r\n /**\r\n * Related to fallOff, used to interpolate SSAO samples (first interpolate function input) based on the occlusion difference of each pixel\r\n * Must not be equal to fallOff and superior to fallOff.\r\n * Default value is 0.0075\r\n */\r\n @serialize()\r\n public area: number = 0.0075;\r\n\r\n /**\r\n * Related to area, used to interpolate SSAO samples (second interpolate function input) based on the occlusion difference of each pixel\r\n * Must not be equal to area and inferior to area.\r\n * Default value is 0.000001\r\n */\r\n @serialize()\r\n public fallOff: number = 0.000001;\r\n\r\n /**\r\n * The base color of the SSAO post-process\r\n * The final result is \"base + ssao\" between [0, 1]\r\n */\r\n @serialize()\r\n public base: number = 0.5;\r\n\r\n private _scene: Scene;\r\n private _randomTexture: DynamicTexture;\r\n\r\n private _originalColorPostProcess: PassPostProcess;\r\n private _ssaoPostProcess: PostProcess;\r\n private _blurHPostProcess: BlurPostProcess;\r\n private _blurVPostProcess: BlurPostProcess;\r\n private _ssaoCombinePostProcess: PostProcess;\r\n\r\n private _firstUpdate: boolean = true;\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name - The rendering pipeline name\r\n * @param scene - The scene linked to this pipeline\r\n * @param ratio - The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, combineRatio: 1.0 }\r\n * @param cameras - The array of cameras that the rendering pipeline will be attached to\r\n */\r\n constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[]) {\r\n super(scene.getEngine(), name);\r\n\r\n this._scene = scene;\r\n\r\n // Set up assets\r\n this._createRandomTexture();\r\n\r\n const ssaoRatio = ratio.ssaoRatio || ratio;\r\n const combineRatio = ratio.combineRatio || ratio;\r\n\r\n this._originalColorPostProcess = new PassPostProcess(\"SSAOOriginalSceneColor\", combineRatio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false);\r\n this._createSSAOPostProcess(ssaoRatio);\r\n this._createBlurPostProcess(ssaoRatio);\r\n this._createSSAOCombinePostProcess(combineRatio);\r\n\r\n // Set up pipeline\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOOriginalSceneColorEffect,\r\n () => {\r\n return this._originalColorPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAORenderEffect,\r\n () => {\r\n return this._ssaoPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurHRenderEffect,\r\n () => {\r\n return this._blurHPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurVRenderEffect,\r\n () => {\r\n return this._blurVPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOCombineRenderEffect,\r\n () => {\r\n return this._ssaoCombinePostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n // Finish\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n if (cameras) {\r\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _attachCameras(cameras: any, unique: boolean): void {\r\n super._attachCameras(cameras, unique);\r\n\r\n for (const camera of this._cameras) {\r\n this._scene.enableDepthRenderer(camera).getDepthMap(); // Force depth renderer \"on\"\r\n }\r\n }\r\n\r\n // Public Methods\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"SSAORenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"SSAORenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\r\n * @param disableDepthRender\r\n */\r\n public dispose(disableDepthRender: boolean = false): void {\r\n for (let i = 0; i < this._scene.cameras.length; i++) {\r\n const camera = this._scene.cameras[i];\r\n\r\n this._originalColorPostProcess.dispose(camera);\r\n this._ssaoPostProcess.dispose(camera);\r\n this._blurHPostProcess.dispose(camera);\r\n this._blurVPostProcess.dispose(camera);\r\n this._ssaoCombinePostProcess.dispose(camera);\r\n }\r\n\r\n this._randomTexture.dispose();\r\n\r\n if (disableDepthRender) {\r\n this._scene.disableDepthRenderer();\r\n }\r\n\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private Methods\r\n private _createBlurPostProcess(ratio: number): void {\r\n const size = 16;\r\n\r\n this._blurHPostProcess = new BlurPostProcess(\r\n \"BlurH\",\r\n new Vector2(1, 0),\r\n size,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n Constants.TEXTURETYPE_UNSIGNED_INT\r\n );\r\n this._blurVPostProcess = new BlurPostProcess(\r\n \"BlurV\",\r\n new Vector2(0, 1),\r\n size,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n Constants.TEXTURETYPE_UNSIGNED_INT\r\n );\r\n\r\n this._blurHPostProcess.onActivateObservable.add(() => {\r\n const dw = this._blurHPostProcess.width / this._scene.getEngine().getRenderWidth();\r\n this._blurHPostProcess.kernel = size * dw;\r\n });\r\n\r\n this._blurVPostProcess.onActivateObservable.add(() => {\r\n const dw = this._blurVPostProcess.height / this._scene.getEngine().getRenderHeight();\r\n this._blurVPostProcess.kernel = size * dw;\r\n });\r\n }\r\n\r\n /** @internal */\r\n public _rebuild() {\r\n this._firstUpdate = true;\r\n super._rebuild();\r\n }\r\n\r\n private _createSSAOPostProcess(ratio: number): void {\r\n const numSamples = 16;\r\n const sampleSphere = [\r\n 0.5381, 0.1856, -0.4319, 0.1379, 0.2486, 0.443, 0.3371, 0.5679, -0.0057, -0.6999, -0.0451, -0.0019, 0.0689, -0.1598, -0.8547, 0.056, 0.0069, -0.1843, -0.0146, 0.1402,\r\n 0.0762, 0.01, -0.1924, -0.0344, -0.3577, -0.5301, -0.4358, -0.3169, 0.1063, 0.0158, 0.0103, -0.5869, 0.0046, -0.0897, -0.494, 0.3287, 0.7119, -0.0154, -0.0918, -0.0533,\r\n 0.0596, -0.5411, 0.0352, -0.0631, 0.546, -0.4776, 0.2847, -0.0271,\r\n ];\r\n const samplesFactor = 1.0 / numSamples;\r\n\r\n this._ssaoPostProcess = new PostProcess(\r\n \"ssao\",\r\n \"ssao\",\r\n [\"sampleSphere\", \"samplesFactor\", \"randTextureTiles\", \"totalStrength\", \"radius\", \"area\", \"fallOff\", \"base\", \"range\", \"viewport\"],\r\n [\"randomSampler\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define SAMPLES \" + numSamples + \"\\n#define SSAO\"\r\n );\r\n\r\n this._ssaoPostProcess.externalTextureSamplerBinding = true;\r\n this._ssaoPostProcess.onApply = (effect: Effect) => {\r\n if (this._firstUpdate) {\r\n effect.setArray3(\"sampleSphere\", sampleSphere);\r\n effect.setFloat(\"samplesFactor\", samplesFactor);\r\n effect.setFloat(\"randTextureTiles\", 4.0);\r\n }\r\n\r\n effect.setFloat(\"totalStrength\", this.totalStrength);\r\n effect.setFloat(\"radius\", this.radius);\r\n effect.setFloat(\"area\", this.area);\r\n effect.setFloat(\"fallOff\", this.fallOff);\r\n effect.setFloat(\"base\", this.base);\r\n\r\n effect.setTexture(\"textureSampler\", this._scene.enableDepthRenderer(this._scene.activeCamera).getDepthMap());\r\n effect.setTexture(\"randomSampler\", this._randomTexture);\r\n };\r\n }\r\n\r\n private _createSSAOCombinePostProcess(ratio: number): void {\r\n this._ssaoCombinePostProcess = new PostProcess(\r\n \"ssaoCombine\",\r\n \"ssaoCombine\",\r\n [],\r\n [\"originalColor\", \"viewport\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false\r\n );\r\n\r\n this._ssaoCombinePostProcess.onApply = (effect: Effect) => {\r\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(0, 0, 1.0, 1.0));\r\n effect.setTextureFromPostProcess(\"originalColor\", this._originalColorPostProcess);\r\n };\r\n }\r\n\r\n private _createRandomTexture(): void {\r\n const size = 512;\r\n\r\n this._randomTexture = new DynamicTexture(\"SSAORandomTexture\", size, this._scene, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._randomTexture.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this._randomTexture.wrapV = Texture.WRAP_ADDRESSMODE;\r\n\r\n const context = this._randomTexture.getContext();\r\n\r\n const rand = (min: number, max: number) => {\r\n return Math.random() * (max - min) + min;\r\n };\r\n\r\n const randVector = Vector3.Zero();\r\n\r\n for (let x = 0; x < size; x++) {\r\n for (let y = 0; y < size; y++) {\r\n randVector.x = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n randVector.y = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n randVector.z = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n\r\n context.fillStyle = \"rgb(\" + randVector.x + \", \" + randVector.y + \", \" + randVector.z + \")\";\r\n context.fillRect(x, y, 1, 1);\r\n }\r\n }\r\n\r\n this._randomTexture.update(false);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ssaoRenderingPipeline.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Vector2, Vector3, TmpVectors } from \"../../../Maths/math.vector\";\r\nimport type { Camera } from \"../../../Cameras/camera\";\r\nimport type { Effect } from \"../../../Materials/effect\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport { DynamicTexture } from \"../../../Materials/Textures/dynamicTexture\";\r\nimport { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { PassPostProcess } from \"../../../PostProcesses/passPostProcess\";\r\nimport { BlurPostProcess } from \"../../../PostProcesses/blurPostProcess\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport { serialize } from \"../../../Misc/decorators\";\r\nimport type { Scene } from \"../../../scene\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\nimport \"../../../Shaders/ssao.fragment\";\r\nimport \"../../../Shaders/ssaoCombine.fragment\";\r\n\r\n/**\r\n * Render pipeline to produce ssao effect\r\n */\r\nexport class SSAORenderingPipeline extends PostProcessRenderPipeline {\r\n // Members\r\n\r\n /**\r\n * @ignore\r\n * The PassPostProcess id in the pipeline that contains the original scene color\r\n */\r\n public SSAOOriginalSceneColorEffect: string = \"SSAOOriginalSceneColorEffect\";\r\n /**\r\n * @ignore\r\n * The SSAO PostProcess id in the pipeline\r\n */\r\n public SSAORenderEffect: string = \"SSAORenderEffect\";\r\n /**\r\n * @ignore\r\n * The horizontal blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurHRenderEffect: string = \"SSAOBlurHRenderEffect\";\r\n /**\r\n * @ignore\r\n * The vertical blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurVRenderEffect: string = \"SSAOBlurVRenderEffect\";\r\n /**\r\n * @ignore\r\n * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)\r\n */\r\n public SSAOCombineRenderEffect: string = \"SSAOCombineRenderEffect\";\r\n\r\n /**\r\n * The output strength of the SSAO post-process. Default value is 1.0.\r\n */\r\n @serialize()\r\n public totalStrength: number = 1.0;\r\n\r\n /**\r\n * The radius around the analyzed pixel used by the SSAO post-process. Default value is 0.0006\r\n */\r\n @serialize()\r\n public radius: number = 0.0001;\r\n\r\n /**\r\n * Related to fallOff, used to interpolate SSAO samples (first interpolate function input) based on the occlusion difference of each pixel\r\n * Must not be equal to fallOff and superior to fallOff.\r\n * Default value is 0.0075\r\n */\r\n @serialize()\r\n public area: number = 0.0075;\r\n\r\n /**\r\n * Related to area, used to interpolate SSAO samples (second interpolate function input) based on the occlusion difference of each pixel\r\n * Must not be equal to area and inferior to area.\r\n * Default value is 0.000001\r\n */\r\n @serialize()\r\n public fallOff: number = 0.000001;\r\n\r\n /**\r\n * The base color of the SSAO post-process\r\n * The final result is \"base + ssao\" between [0, 1]\r\n */\r\n @serialize()\r\n public base: number = 0.5;\r\n\r\n private _scene: Scene;\r\n private _randomTexture: DynamicTexture;\r\n\r\n private _originalColorPostProcess: PassPostProcess;\r\n private _ssaoPostProcess: PostProcess;\r\n private _blurHPostProcess: BlurPostProcess;\r\n private _blurVPostProcess: BlurPostProcess;\r\n private _ssaoCombinePostProcess: PostProcess;\r\n\r\n private _firstUpdate: boolean = true;\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name - The rendering pipeline name\r\n * @param scene - The scene linked to this pipeline\r\n * @param ratio - The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, combineRatio: 1.0 }\r\n * @param cameras - The array of cameras that the rendering pipeline will be attached to\r\n */\r\n constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[]) {\r\n super(scene.getEngine(), name);\r\n\r\n this._scene = scene;\r\n\r\n // Set up assets\r\n this._createRandomTexture();\r\n\r\n const ssaoRatio = ratio.ssaoRatio || ratio;\r\n const combineRatio = ratio.combineRatio || ratio;\r\n\r\n this._originalColorPostProcess = new PassPostProcess(\"SSAOOriginalSceneColor\", combineRatio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false);\r\n this._createSSAOPostProcess(ssaoRatio);\r\n this._createBlurPostProcess(ssaoRatio);\r\n this._createSSAOCombinePostProcess(combineRatio);\r\n\r\n // Set up pipeline\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOOriginalSceneColorEffect,\r\n () => {\r\n return this._originalColorPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAORenderEffect,\r\n () => {\r\n return this._ssaoPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurHRenderEffect,\r\n () => {\r\n return this._blurHPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurVRenderEffect,\r\n () => {\r\n return this._blurVPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOCombineRenderEffect,\r\n () => {\r\n return this._ssaoCombinePostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n // Finish\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n if (cameras) {\r\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _attachCameras(cameras: any, unique: boolean): void {\r\n super._attachCameras(cameras, unique);\r\n\r\n for (const camera of this._cameras) {\r\n this._scene.enableDepthRenderer(camera).getDepthMap(); // Force depth renderer \"on\"\r\n }\r\n }\r\n\r\n // Public Methods\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"SSAORenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"SSAORenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\r\n * @param disableDepthRender\r\n */\r\n public dispose(disableDepthRender: boolean = false): void {\r\n for (let i = 0; i < this._scene.cameras.length; i++) {\r\n const camera = this._scene.cameras[i];\r\n\r\n this._originalColorPostProcess.dispose(camera);\r\n this._ssaoPostProcess.dispose(camera);\r\n this._blurHPostProcess.dispose(camera);\r\n this._blurVPostProcess.dispose(camera);\r\n this._ssaoCombinePostProcess.dispose(camera);\r\n }\r\n\r\n this._randomTexture.dispose();\r\n\r\n if (disableDepthRender) {\r\n this._scene.disableDepthRenderer();\r\n }\r\n\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private Methods\r\n private _createBlurPostProcess(ratio: number): void {\r\n const size = 16;\r\n\r\n this._blurHPostProcess = new BlurPostProcess(\r\n \"BlurH\",\r\n new Vector2(1, 0),\r\n size,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n Constants.TEXTURETYPE_UNSIGNED_INT\r\n );\r\n this._blurVPostProcess = new BlurPostProcess(\r\n \"BlurV\",\r\n new Vector2(0, 1),\r\n size,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n Constants.TEXTURETYPE_UNSIGNED_INT\r\n );\r\n\r\n this._blurHPostProcess.onActivateObservable.add(() => {\r\n const dw = this._blurHPostProcess.width / this._scene.getEngine().getRenderWidth();\r\n this._blurHPostProcess.kernel = size * dw;\r\n });\r\n\r\n this._blurVPostProcess.onActivateObservable.add(() => {\r\n const dw = this._blurVPostProcess.height / this._scene.getEngine().getRenderHeight();\r\n this._blurVPostProcess.kernel = size * dw;\r\n });\r\n }\r\n\r\n /** @internal */\r\n public _rebuild() {\r\n this._firstUpdate = true;\r\n super._rebuild();\r\n }\r\n\r\n private _createSSAOPostProcess(ratio: number): void {\r\n const numSamples = 16;\r\n const sampleSphere = [\r\n 0.5381, 0.1856, -0.4319, 0.1379, 0.2486, 0.443, 0.3371, 0.5679, -0.0057, -0.6999, -0.0451, -0.0019, 0.0689, -0.1598, -0.8547, 0.056, 0.0069, -0.1843, -0.0146, 0.1402,\r\n 0.0762, 0.01, -0.1924, -0.0344, -0.3577, -0.5301, -0.4358, -0.3169, 0.1063, 0.0158, 0.0103, -0.5869, 0.0046, -0.0897, -0.494, 0.3287, 0.7119, -0.0154, -0.0918, -0.0533,\r\n 0.0596, -0.5411, 0.0352, -0.0631, 0.546, -0.4776, 0.2847, -0.0271,\r\n ];\r\n const samplesFactor = 1.0 / numSamples;\r\n\r\n this._ssaoPostProcess = new PostProcess(\r\n \"ssao\",\r\n \"ssao\",\r\n [\"sampleSphere\", \"samplesFactor\", \"randTextureTiles\", \"totalStrength\", \"radius\", \"area\", \"fallOff\", \"base\", \"range\", \"viewport\"],\r\n [\"randomSampler\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define SAMPLES \" + numSamples + \"\\n#define SSAO\"\r\n );\r\n\r\n this._ssaoPostProcess.externalTextureSamplerBinding = true;\r\n this._ssaoPostProcess.onApply = (effect: Effect) => {\r\n if (this._firstUpdate) {\r\n effect.setArray3(\"sampleSphere\", sampleSphere);\r\n effect.setFloat(\"samplesFactor\", samplesFactor);\r\n effect.setFloat(\"randTextureTiles\", 4.0);\r\n }\r\n\r\n effect.setFloat(\"totalStrength\", this.totalStrength);\r\n effect.setFloat(\"radius\", this.radius);\r\n effect.setFloat(\"area\", this.area);\r\n effect.setFloat(\"fallOff\", this.fallOff);\r\n effect.setFloat(\"base\", this.base);\r\n\r\n effect.setTexture(\"textureSampler\", this._scene.enableDepthRenderer(this._scene.activeCamera).getDepthMap());\r\n effect.setTexture(\"randomSampler\", this._randomTexture);\r\n };\r\n }\r\n\r\n private _createSSAOCombinePostProcess(ratio: number): void {\r\n this._ssaoCombinePostProcess = new PostProcess(\r\n \"ssaoCombine\",\r\n \"ssaoCombine\",\r\n [],\r\n [\"originalColor\", \"viewport\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false\r\n );\r\n\r\n this._ssaoCombinePostProcess.onApply = (effect: Effect) => {\r\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(0, 0, 1.0, 1.0));\r\n effect.setTextureFromPostProcess(\"originalColor\", this._originalColorPostProcess);\r\n };\r\n }\r\n\r\n private _createRandomTexture(): void {\r\n const size = 512;\r\n\r\n this._randomTexture = new DynamicTexture(\"SSAORandomTexture\", size, this._scene, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._randomTexture.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this._randomTexture.wrapV = Texture.WRAP_ADDRESSMODE;\r\n\r\n const context = this._randomTexture.getContext();\r\n\r\n const rand = (min: number, max: number) => {\r\n return Math.random() * (max - min) + min;\r\n };\r\n\r\n const randVector = Vector3.Zero();\r\n\r\n for (let x = 0; x < size; x++) {\r\n for (let y = 0; y < size; y++) {\r\n randVector.x = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n randVector.y = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n randVector.z = Math.floor(Math.max(0.0, rand(-1.0, 1.0)) * 255);\r\n\r\n context.fillStyle = \"rgb(\" + randVector.x + \", \" + randVector.y + \", \" + randVector.z + \")\";\r\n context.fillRect(x, y, 1, 1);\r\n }\r\n }\r\n\r\n this._randomTexture.update(false);\r\n }\r\n}\r\n"]}
@@ -21,6 +21,231 @@ import "../../../Shaders/standard.fragment.js";
21
21
  * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/standardRenderingPipeline
22
22
  */
23
23
  export class StandardRenderingPipeline extends PostProcessRenderPipeline {
24
+ /**
25
+ * Gets the overall exposure used by the pipeline
26
+ */
27
+ get exposure() {
28
+ return this._fixedExposure;
29
+ }
30
+ /**
31
+ * Sets the overall exposure used by the pipeline
32
+ */
33
+ set exposure(value) {
34
+ this._fixedExposure = value;
35
+ this._currentExposure = value;
36
+ }
37
+ /**
38
+ * Gets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process
39
+ */
40
+ get hdrAutoExposure() {
41
+ return this._hdrAutoExposure;
42
+ }
43
+ /**
44
+ * Sets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process
45
+ */
46
+ set hdrAutoExposure(value) {
47
+ this._hdrAutoExposure = value;
48
+ if (this.hdrPostProcess) {
49
+ const defines = ["#define HDR"];
50
+ if (value) {
51
+ defines.push("#define AUTO_EXPOSURE");
52
+ }
53
+ this.hdrPostProcess.updateEffect(defines.join("\n"));
54
+ }
55
+ }
56
+ /**
57
+ * Gets how much the image is blurred by the movement while using the motion blur post-process
58
+ */
59
+ get motionStrength() {
60
+ return this._motionStrength;
61
+ }
62
+ /**
63
+ * Sets how much the image is blurred by the movement while using the motion blur post-process
64
+ */
65
+ set motionStrength(strength) {
66
+ this._motionStrength = strength;
67
+ if (this._isObjectBasedMotionBlur && this.motionBlurPostProcess) {
68
+ this.motionBlurPostProcess.motionStrength = strength;
69
+ }
70
+ }
71
+ /**
72
+ * Gets whether or not the motion blur post-process is object based or screen based.
73
+ */
74
+ get objectBasedMotionBlur() {
75
+ return this._isObjectBasedMotionBlur;
76
+ }
77
+ /**
78
+ * Sets whether or not the motion blur post-process should be object based or screen based
79
+ */
80
+ set objectBasedMotionBlur(value) {
81
+ const shouldRebuild = this._isObjectBasedMotionBlur !== value;
82
+ this._isObjectBasedMotionBlur = value;
83
+ if (shouldRebuild) {
84
+ this._buildPipeline();
85
+ }
86
+ }
87
+ /**
88
+ * @ignore
89
+ * Specifies if the bloom pipeline is enabled
90
+ */
91
+ get BloomEnabled() {
92
+ return this._bloomEnabled;
93
+ }
94
+ set BloomEnabled(enabled) {
95
+ if (this._bloomEnabled === enabled) {
96
+ return;
97
+ }
98
+ this._bloomEnabled = enabled;
99
+ this._buildPipeline();
100
+ }
101
+ /**
102
+ * @ignore
103
+ * Specifies if the depth of field pipeline is enabled
104
+ */
105
+ get DepthOfFieldEnabled() {
106
+ return this._depthOfFieldEnabled;
107
+ }
108
+ set DepthOfFieldEnabled(enabled) {
109
+ if (this._depthOfFieldEnabled === enabled) {
110
+ return;
111
+ }
112
+ this._depthOfFieldEnabled = enabled;
113
+ this._buildPipeline();
114
+ }
115
+ /**
116
+ * @ignore
117
+ * Specifies if the lens flare pipeline is enabled
118
+ */
119
+ get LensFlareEnabled() {
120
+ return this._lensFlareEnabled;
121
+ }
122
+ set LensFlareEnabled(enabled) {
123
+ if (this._lensFlareEnabled === enabled) {
124
+ return;
125
+ }
126
+ this._lensFlareEnabled = enabled;
127
+ this._buildPipeline();
128
+ }
129
+ /**
130
+ * @ignore
131
+ * Specifies if the HDR pipeline is enabled
132
+ */
133
+ get HDREnabled() {
134
+ return this._hdrEnabled;
135
+ }
136
+ set HDREnabled(enabled) {
137
+ if (this._hdrEnabled === enabled) {
138
+ return;
139
+ }
140
+ this._hdrEnabled = enabled;
141
+ this._buildPipeline();
142
+ }
143
+ /**
144
+ * @ignore
145
+ * Specifies if the volumetric lights scattering effect is enabled
146
+ */
147
+ get VLSEnabled() {
148
+ return this._vlsEnabled;
149
+ }
150
+ // eslint-disable-next-line @typescript-eslint/naming-convention
151
+ set VLSEnabled(enabled) {
152
+ if (this._vlsEnabled === enabled) {
153
+ return;
154
+ }
155
+ if (enabled) {
156
+ const geometry = this._scene.enableGeometryBufferRenderer();
157
+ if (!geometry) {
158
+ Logger.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline");
159
+ return;
160
+ }
161
+ }
162
+ this._vlsEnabled = enabled;
163
+ this._buildPipeline();
164
+ }
165
+ /**
166
+ * @ignore
167
+ * Specifies if the motion blur effect is enabled
168
+ */
169
+ get MotionBlurEnabled() {
170
+ return this._motionBlurEnabled;
171
+ }
172
+ set MotionBlurEnabled(enabled) {
173
+ if (this._motionBlurEnabled === enabled) {
174
+ return;
175
+ }
176
+ this._motionBlurEnabled = enabled;
177
+ this._buildPipeline();
178
+ }
179
+ /**
180
+ * Specifies if anti-aliasing is enabled
181
+ */
182
+ get fxaaEnabled() {
183
+ return this._fxaaEnabled;
184
+ }
185
+ set fxaaEnabled(enabled) {
186
+ if (this._fxaaEnabled === enabled) {
187
+ return;
188
+ }
189
+ this._fxaaEnabled = enabled;
190
+ this._buildPipeline();
191
+ }
192
+ /**
193
+ * Specifies if screen space reflections are enabled.
194
+ */
195
+ get screenSpaceReflectionsEnabled() {
196
+ return this._screenSpaceReflectionsEnabled;
197
+ }
198
+ set screenSpaceReflectionsEnabled(enabled) {
199
+ if (this._screenSpaceReflectionsEnabled === enabled) {
200
+ return;
201
+ }
202
+ this._screenSpaceReflectionsEnabled = enabled;
203
+ this._buildPipeline();
204
+ }
205
+ /**
206
+ * Specifies the number of steps used to calculate the volumetric lights
207
+ * Typically in interval [50, 200]
208
+ */
209
+ get volumetricLightStepsCount() {
210
+ return this._volumetricLightStepsCount;
211
+ }
212
+ set volumetricLightStepsCount(count) {
213
+ if (this.volumetricLightPostProcess) {
214
+ this.volumetricLightPostProcess.updateEffect("#define VLS\n#define NB_STEPS " + count.toFixed(1));
215
+ }
216
+ this._volumetricLightStepsCount = count;
217
+ }
218
+ /**
219
+ * Specifies the number of samples used for the motion blur effect
220
+ * Typically in interval [16, 64]
221
+ */
222
+ get motionBlurSamples() {
223
+ return this._motionBlurSamples;
224
+ }
225
+ set motionBlurSamples(samples) {
226
+ if (this.motionBlurPostProcess) {
227
+ if (this._isObjectBasedMotionBlur) {
228
+ this.motionBlurPostProcess.motionBlurSamples = samples;
229
+ }
230
+ else {
231
+ this.motionBlurPostProcess.updateEffect("#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + samples.toFixed(1));
232
+ }
233
+ }
234
+ this._motionBlurSamples = samples;
235
+ }
236
+ /**
237
+ * Specifies MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)
238
+ */
239
+ get samples() {
240
+ return this._samples;
241
+ }
242
+ set samples(sampleCount) {
243
+ if (this._samples === sampleCount) {
244
+ return;
245
+ }
246
+ this._samples = sampleCount;
247
+ this._buildPipeline();
248
+ }
24
249
  /**
25
250
  * Default pipeline should be used going forward but the standard pipeline will be kept for backwards compatibility.
26
251
  * @constructor
@@ -249,231 +474,6 @@ export class StandardRenderingPipeline extends PostProcessRenderPipeline {
249
474
  scene.postProcessRenderPipelineManager.addPipeline(this);
250
475
  this._buildPipeline();
251
476
  }
252
- /**
253
- * Gets the overall exposure used by the pipeline
254
- */
255
- get exposure() {
256
- return this._fixedExposure;
257
- }
258
- /**
259
- * Sets the overall exposure used by the pipeline
260
- */
261
- set exposure(value) {
262
- this._fixedExposure = value;
263
- this._currentExposure = value;
264
- }
265
- /**
266
- * Gets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process
267
- */
268
- get hdrAutoExposure() {
269
- return this._hdrAutoExposure;
270
- }
271
- /**
272
- * Sets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process
273
- */
274
- set hdrAutoExposure(value) {
275
- this._hdrAutoExposure = value;
276
- if (this.hdrPostProcess) {
277
- const defines = ["#define HDR"];
278
- if (value) {
279
- defines.push("#define AUTO_EXPOSURE");
280
- }
281
- this.hdrPostProcess.updateEffect(defines.join("\n"));
282
- }
283
- }
284
- /**
285
- * Gets how much the image is blurred by the movement while using the motion blur post-process
286
- */
287
- get motionStrength() {
288
- return this._motionStrength;
289
- }
290
- /**
291
- * Sets how much the image is blurred by the movement while using the motion blur post-process
292
- */
293
- set motionStrength(strength) {
294
- this._motionStrength = strength;
295
- if (this._isObjectBasedMotionBlur && this.motionBlurPostProcess) {
296
- this.motionBlurPostProcess.motionStrength = strength;
297
- }
298
- }
299
- /**
300
- * Gets whether or not the motion blur post-process is object based or screen based.
301
- */
302
- get objectBasedMotionBlur() {
303
- return this._isObjectBasedMotionBlur;
304
- }
305
- /**
306
- * Sets whether or not the motion blur post-process should be object based or screen based
307
- */
308
- set objectBasedMotionBlur(value) {
309
- const shouldRebuild = this._isObjectBasedMotionBlur !== value;
310
- this._isObjectBasedMotionBlur = value;
311
- if (shouldRebuild) {
312
- this._buildPipeline();
313
- }
314
- }
315
- /**
316
- * @ignore
317
- * Specifies if the bloom pipeline is enabled
318
- */
319
- get BloomEnabled() {
320
- return this._bloomEnabled;
321
- }
322
- set BloomEnabled(enabled) {
323
- if (this._bloomEnabled === enabled) {
324
- return;
325
- }
326
- this._bloomEnabled = enabled;
327
- this._buildPipeline();
328
- }
329
- /**
330
- * @ignore
331
- * Specifies if the depth of field pipeline is enabled
332
- */
333
- get DepthOfFieldEnabled() {
334
- return this._depthOfFieldEnabled;
335
- }
336
- set DepthOfFieldEnabled(enabled) {
337
- if (this._depthOfFieldEnabled === enabled) {
338
- return;
339
- }
340
- this._depthOfFieldEnabled = enabled;
341
- this._buildPipeline();
342
- }
343
- /**
344
- * @ignore
345
- * Specifies if the lens flare pipeline is enabled
346
- */
347
- get LensFlareEnabled() {
348
- return this._lensFlareEnabled;
349
- }
350
- set LensFlareEnabled(enabled) {
351
- if (this._lensFlareEnabled === enabled) {
352
- return;
353
- }
354
- this._lensFlareEnabled = enabled;
355
- this._buildPipeline();
356
- }
357
- /**
358
- * @ignore
359
- * Specifies if the HDR pipeline is enabled
360
- */
361
- get HDREnabled() {
362
- return this._hdrEnabled;
363
- }
364
- set HDREnabled(enabled) {
365
- if (this._hdrEnabled === enabled) {
366
- return;
367
- }
368
- this._hdrEnabled = enabled;
369
- this._buildPipeline();
370
- }
371
- /**
372
- * @ignore
373
- * Specifies if the volumetric lights scattering effect is enabled
374
- */
375
- get VLSEnabled() {
376
- return this._vlsEnabled;
377
- }
378
- // eslint-disable-next-line @typescript-eslint/naming-convention
379
- set VLSEnabled(enabled) {
380
- if (this._vlsEnabled === enabled) {
381
- return;
382
- }
383
- if (enabled) {
384
- const geometry = this._scene.enableGeometryBufferRenderer();
385
- if (!geometry) {
386
- Logger.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline");
387
- return;
388
- }
389
- }
390
- this._vlsEnabled = enabled;
391
- this._buildPipeline();
392
- }
393
- /**
394
- * @ignore
395
- * Specifies if the motion blur effect is enabled
396
- */
397
- get MotionBlurEnabled() {
398
- return this._motionBlurEnabled;
399
- }
400
- set MotionBlurEnabled(enabled) {
401
- if (this._motionBlurEnabled === enabled) {
402
- return;
403
- }
404
- this._motionBlurEnabled = enabled;
405
- this._buildPipeline();
406
- }
407
- /**
408
- * Specifies if anti-aliasing is enabled
409
- */
410
- get fxaaEnabled() {
411
- return this._fxaaEnabled;
412
- }
413
- set fxaaEnabled(enabled) {
414
- if (this._fxaaEnabled === enabled) {
415
- return;
416
- }
417
- this._fxaaEnabled = enabled;
418
- this._buildPipeline();
419
- }
420
- /**
421
- * Specifies if screen space reflections are enabled.
422
- */
423
- get screenSpaceReflectionsEnabled() {
424
- return this._screenSpaceReflectionsEnabled;
425
- }
426
- set screenSpaceReflectionsEnabled(enabled) {
427
- if (this._screenSpaceReflectionsEnabled === enabled) {
428
- return;
429
- }
430
- this._screenSpaceReflectionsEnabled = enabled;
431
- this._buildPipeline();
432
- }
433
- /**
434
- * Specifies the number of steps used to calculate the volumetric lights
435
- * Typically in interval [50, 200]
436
- */
437
- get volumetricLightStepsCount() {
438
- return this._volumetricLightStepsCount;
439
- }
440
- set volumetricLightStepsCount(count) {
441
- if (this.volumetricLightPostProcess) {
442
- this.volumetricLightPostProcess.updateEffect("#define VLS\n#define NB_STEPS " + count.toFixed(1));
443
- }
444
- this._volumetricLightStepsCount = count;
445
- }
446
- /**
447
- * Specifies the number of samples used for the motion blur effect
448
- * Typically in interval [16, 64]
449
- */
450
- get motionBlurSamples() {
451
- return this._motionBlurSamples;
452
- }
453
- set motionBlurSamples(samples) {
454
- if (this.motionBlurPostProcess) {
455
- if (this._isObjectBasedMotionBlur) {
456
- this.motionBlurPostProcess.motionBlurSamples = samples;
457
- }
458
- else {
459
- this.motionBlurPostProcess.updateEffect("#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + samples.toFixed(1));
460
- }
461
- }
462
- this._motionBlurSamples = samples;
463
- }
464
- /**
465
- * Specifies MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)
466
- */
467
- get samples() {
468
- return this._samples;
469
- }
470
- set samples(sampleCount) {
471
- if (this._samples === sampleCount) {
472
- return;
473
- }
474
- this._samples = sampleCount;
475
- this._buildPipeline();
476
- }
477
477
  _buildPipeline() {
478
478
  const ratio = this._ratio;
479
479
  const scene = this._scene;
@@ -1130,6 +1130,7 @@ __decorate([
1130
1130
  ], StandardRenderingPipeline.prototype, "HDREnabled", null);
1131
1131
  __decorate([
1132
1132
  serialize()
1133
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1133
1134
  ], StandardRenderingPipeline.prototype, "VLSEnabled", null);
1134
1135
  __decorate([
1135
1136
  serialize()