@babylonjs/core 5.45.2 → 5.47.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 (563) hide show
  1. package/Actions/actionManager.js +6 -1
  2. package/Actions/actionManager.js.map +1 -1
  3. package/Actions/condition.js +23 -23
  4. package/Actions/condition.js.map +1 -1
  5. package/Animations/animatable.js +48 -48
  6. package/Animations/animatable.js.map +1 -1
  7. package/Animations/animation.js +53 -53
  8. package/Animations/animation.js.map +1 -1
  9. package/Animations/animationGroup.js +53 -53
  10. package/Animations/animationGroup.js.map +1 -1
  11. package/Animations/runtimeAnimation.js +36 -36
  12. package/Animations/runtimeAnimation.js.map +1 -1
  13. package/Audio/audioEngine.js +14 -14
  14. package/Audio/audioEngine.js.map +1 -1
  15. package/Audio/audioSceneComponent.js +14 -14
  16. package/Audio/audioSceneComponent.js.map +1 -1
  17. package/Audio/sound.js +47 -47
  18. package/Audio/sound.js.map +1 -1
  19. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +1 -1
  20. package/Behaviors/Meshes/fadeInOutBehavior.js +11 -11
  21. package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
  22. package/Behaviors/Meshes/pointerDragBehavior.js +34 -34
  23. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  24. package/Bones/bone.js +15 -15
  25. package/Bones/bone.js.map +1 -1
  26. package/Bones/boneIKController.js +9 -9
  27. package/Bones/boneIKController.js.map +1 -1
  28. package/Bones/boneLookController.js +50 -50
  29. package/Bones/boneLookController.js.map +1 -1
  30. package/Bones/skeleton.js +35 -35
  31. package/Bones/skeleton.js.map +1 -1
  32. package/Buffers/buffer.js +14 -14
  33. package/Buffers/buffer.js.map +1 -1
  34. package/Buffers/dataBuffer.js +6 -6
  35. package/Buffers/dataBuffer.js.map +1 -1
  36. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +42 -42
  37. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  38. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +18 -18
  39. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  40. package/Cameras/VR/vrExperienceHelper.js +178 -178
  41. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  42. package/Cameras/arcRotateCamera.js +176 -176
  43. package/Cameras/arcRotateCamera.js.map +1 -1
  44. package/Cameras/camera.js +90 -90
  45. package/Cameras/camera.js.map +1 -1
  46. package/Cameras/flyCamera.js +82 -82
  47. package/Cameras/flyCamera.js.map +1 -1
  48. package/Cameras/freeCamera.js +54 -54
  49. package/Cameras/freeCamera.js.map +1 -1
  50. package/Compute/computeShader.js +12 -12
  51. package/Compute/computeShader.js.map +1 -1
  52. package/Culling/ray.d.ts +1 -1
  53. package/Debug/axesViewer.js +12 -12
  54. package/Debug/axesViewer.js.map +1 -1
  55. package/Debug/debugLayer.js +21 -21
  56. package/Debug/debugLayer.js.map +1 -1
  57. package/Debug/directionalLightFrustumViewer.js +20 -20
  58. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  59. package/Debug/physicsViewer.js +3 -3
  60. package/Debug/physicsViewer.js.map +1 -1
  61. package/Debug/rayHelper.js +10 -10
  62. package/Debug/rayHelper.js.map +1 -1
  63. package/Debug/skeletonViewer.js +81 -81
  64. package/Debug/skeletonViewer.js.map +1 -1
  65. package/DeviceInput/InputDevices/deviceSource.d.ts +1 -1
  66. package/DeviceInput/InputDevices/deviceSourceManager.js +31 -31
  67. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  68. package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
  69. package/DeviceInput/eventFactory.d.ts +1 -1
  70. package/DeviceInput/eventFactory.js +4 -4
  71. package/DeviceInput/eventFactory.js.map +1 -1
  72. package/DeviceInput/internalDeviceSourceManager.d.ts +2 -2
  73. package/DeviceInput/webDeviceInputSystem.js +2 -2
  74. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  75. package/Engines/Extensions/engine.computeShader.d.ts +3 -3
  76. package/Engines/Extensions/engine.multiRender.js +1 -1
  77. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  78. package/Engines/Extensions/engine.query.d.ts +1 -1
  79. package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
  80. package/Engines/Extensions/engine.renderTarget.js +1 -1
  81. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  82. package/Engines/Native/nativeDataStream.d.ts +1 -1
  83. package/Engines/Native/nativeHardwareTexture.js +3 -3
  84. package/Engines/Native/nativeHardwareTexture.js.map +1 -1
  85. package/Engines/Native/nativeInterfaces.d.ts +5 -5
  86. package/Engines/Native/nativePipelineContext.js +7 -7
  87. package/Engines/Native/nativePipelineContext.js.map +1 -1
  88. package/Engines/Native/nativeRenderTargetWrapper.js +6 -6
  89. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  90. package/Engines/Processors/shaderCodeInliner.js +4 -4
  91. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  92. package/Engines/Processors/shaderProcessingOptions.d.ts +1 -1
  93. package/Engines/WebGL/webGLHardwareTexture.js +3 -3
  94. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  95. package/Engines/WebGPU/webgpuBufferManager.js +3 -3
  96. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  97. package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -6
  98. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  99. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +5 -5
  100. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  101. package/Engines/WebGPU/webgpuClearQuad.js +11 -11
  102. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  103. package/Engines/WebGPU/webgpuComputeContext.js +7 -7
  104. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  105. package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -4
  106. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  107. package/Engines/WebGPU/webgpuDrawContext.js +7 -7
  108. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  109. package/Engines/WebGPU/webgpuHardwareTexture.js +9 -9
  110. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  111. package/Engines/WebGPU/webgpuMaterialContext.js +5 -5
  112. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  113. package/Engines/WebGPU/webgpuOcclusionQuery.js +10 -10
  114. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  115. package/Engines/WebGPU/webgpuPipelineContext.js +6 -6
  116. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  117. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  118. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  119. package/Engines/WebGPU/webgpuShaderProcessingContext.js +3 -3
  120. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  121. package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
  122. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  123. package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
  124. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  125. package/Engines/engine.js +134 -134
  126. package/Engines/engine.js.map +1 -1
  127. package/Engines/nativeEngine.js +6 -6
  128. package/Engines/nativeEngine.js.map +1 -1
  129. package/Engines/nullEngine.js +25 -25
  130. package/Engines/nullEngine.js.map +1 -1
  131. package/Engines/renderTargetWrapper.js +25 -25
  132. package/Engines/renderTargetWrapper.js.map +1 -1
  133. package/Engines/thinEngine.js +243 -243
  134. package/Engines/thinEngine.js.map +1 -1
  135. package/Engines/webgpuEngine.js +132 -132
  136. package/Engines/webgpuEngine.js.map +1 -1
  137. package/Events/keyboardEvents.js +10 -10
  138. package/Events/keyboardEvents.js.map +1 -1
  139. package/Events/pointerEvents.js +10 -10
  140. package/Events/pointerEvents.js.map +1 -1
  141. package/Gamepads/Controllers/poseEnabledController.js +9 -9
  142. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  143. package/Gamepads/Controllers/webVRController.js +13 -13
  144. package/Gamepads/Controllers/webVRController.js.map +1 -1
  145. package/Gamepads/gamepad.js +20 -20
  146. package/Gamepads/gamepad.js.map +1 -1
  147. package/Gizmos/axisDragGizmo.js +45 -45
  148. package/Gizmos/axisDragGizmo.js.map +1 -1
  149. package/Gizmos/axisScaleGizmo.js +12 -12
  150. package/Gizmos/axisScaleGizmo.js.map +1 -1
  151. package/Gizmos/boundingBoxGizmo.js +74 -74
  152. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  153. package/Gizmos/gizmo.js +34 -34
  154. package/Gizmos/gizmo.js.map +1 -1
  155. package/Gizmos/gizmoManager.js +40 -40
  156. package/Gizmos/gizmoManager.js.map +1 -1
  157. package/Gizmos/planeDragGizmo.js +23 -23
  158. package/Gizmos/planeDragGizmo.js.map +1 -1
  159. package/Gizmos/planeRotationGizmo.js +12 -12
  160. package/Gizmos/planeRotationGizmo.js.map +1 -1
  161. package/Gizmos/positionGizmo.js +40 -40
  162. package/Gizmos/positionGizmo.js.map +1 -1
  163. package/Gizmos/rotationGizmo.js +47 -47
  164. package/Gizmos/rotationGizmo.js.map +1 -1
  165. package/Gizmos/scaleGizmo.js +41 -41
  166. package/Gizmos/scaleGizmo.js.map +1 -1
  167. package/Helpers/environmentHelper.js +18 -18
  168. package/Helpers/environmentHelper.js.map +1 -1
  169. package/Helpers/textureDome.js +96 -96
  170. package/Helpers/textureDome.js.map +1 -1
  171. package/IAccessibilityTag.d.ts +2 -2
  172. package/Inputs/scene.inputManager.d.ts +4 -3
  173. package/Inputs/scene.inputManager.js +12 -11
  174. package/Inputs/scene.inputManager.js.map +1 -1
  175. package/Instrumentation/engineInstrumentation.js +21 -21
  176. package/Instrumentation/engineInstrumentation.js.map +1 -1
  177. package/Instrumentation/sceneInstrumentation.js +90 -90
  178. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  179. package/Layers/effectLayer.js +48 -48
  180. package/Layers/effectLayer.js.map +1 -1
  181. package/Layers/glowLayer.js +32 -32
  182. package/Layers/glowLayer.js.map +1 -1
  183. package/Layers/highlightLayer.js +26 -26
  184. package/Layers/highlightLayer.js.map +1 -1
  185. package/Layers/layer.js +40 -40
  186. package/Layers/layer.js.map +1 -1
  187. package/LensFlares/lensFlare.js +15 -15
  188. package/LensFlares/lensFlare.js.map +1 -1
  189. package/LensFlares/lensFlareSystem.js +4 -4
  190. package/LensFlares/lensFlareSystem.js.map +1 -1
  191. package/Lights/Shadows/cascadedShadowGenerator.js +18 -18
  192. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  193. package/Lights/Shadows/shadowGenerator.js +115 -115
  194. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  195. package/Lights/directionalLight.js +31 -31
  196. package/Lights/directionalLight.js.map +1 -1
  197. package/Lights/light.js +72 -72
  198. package/Lights/light.js.map +1 -1
  199. package/Lights/pointLight.js +18 -18
  200. package/Lights/pointLight.js.map +1 -1
  201. package/Lights/spotLight.js +30 -30
  202. package/Lights/spotLight.js.map +1 -1
  203. package/Loading/sceneLoader.d.ts +1 -1
  204. package/Materials/Background/backgroundMaterial.js +124 -124
  205. package/Materials/Background/backgroundMaterial.js.map +1 -1
  206. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +8 -8
  207. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/Dual/lightBlock.js +14 -14
  209. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +9 -9
  211. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/Dual/textureBlock.js +26 -26
  213. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/Input/inputBlock.js +34 -34
  215. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +14 -14
  217. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  218. package/Materials/Node/Blocks/PBR/reflectionBlock.js +16 -16
  219. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  220. package/Materials/Node/Blocks/customBlock.js +7 -7
  221. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/gradientBlock.js +13 -13
  223. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  224. package/Materials/Node/Blocks/triPlanarBlock.js +30 -30
  225. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  226. package/Materials/Node/nodeMaterial.d.ts +1 -1
  227. package/Materials/Node/nodeMaterial.js +60 -60
  228. package/Materials/Node/nodeMaterial.js.map +1 -1
  229. package/Materials/Node/nodeMaterialBlock.js +35 -35
  230. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  231. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +50 -50
  232. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  233. package/Materials/PBR/pbrAnisotropicConfiguration.js +5 -5
  234. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  235. package/Materials/PBR/pbrBRDFConfiguration.js +4 -4
  236. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  237. package/Materials/PBR/pbrBaseMaterial.js +53 -55
  238. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  239. package/Materials/PBR/pbrBaseSimpleMaterial.js +17 -17
  240. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  241. package/Materials/PBR/pbrClearCoatConfiguration.js +5 -5
  242. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  243. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  244. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  245. package/Materials/PBR/pbrMaterial.js +209 -209
  246. package/Materials/PBR/pbrMaterial.js.map +1 -1
  247. package/Materials/PBR/pbrSheenConfiguration.js +5 -5
  248. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  249. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +6 -6
  250. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  251. package/Materials/PBR/pbrSubSurfaceConfiguration.js +51 -51
  252. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  253. package/Materials/Textures/baseTexture.js +99 -99
  254. package/Materials/Textures/baseTexture.js.map +1 -1
  255. package/Materials/Textures/cubeTexture.js +61 -61
  256. package/Materials/Textures/cubeTexture.js.map +1 -1
  257. package/Materials/Textures/externalTexture.js +16 -16
  258. package/Materials/Textures/externalTexture.js.map +1 -1
  259. package/Materials/Textures/hdrCubeTexture.js +44 -44
  260. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  261. package/Materials/Textures/internalTexture.js +31 -31
  262. package/Materials/Textures/internalTexture.js.map +1 -1
  263. package/Materials/Textures/mirrorTexture.js +73 -73
  264. package/Materials/Textures/mirrorTexture.js.map +1 -1
  265. package/Materials/Textures/multiRenderTarget.js +47 -47
  266. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  267. package/Materials/Textures/rawTexture2DArray.js +6 -6
  268. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  269. package/Materials/Textures/renderTargetTexture.js +142 -142
  270. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  271. package/Materials/Textures/texture.d.ts +1 -1
  272. package/Materials/Textures/texture.js +26 -26
  273. package/Materials/Textures/texture.js.map +1 -1
  274. package/Materials/Textures/textureCreationOptions.d.ts +1 -1
  275. package/Materials/Textures/textureSampler.js +20 -20
  276. package/Materials/Textures/textureSampler.js.map +1 -1
  277. package/Materials/Textures/thinRenderTargetTexture.js +6 -6
  278. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  279. package/Materials/Textures/thinTexture.js +39 -39
  280. package/Materials/Textures/thinTexture.js.map +1 -1
  281. package/Materials/Textures/videoTexture.js +41 -41
  282. package/Materials/Textures/videoTexture.js.map +1 -1
  283. package/Materials/drawWrapper.js +6 -6
  284. package/Materials/drawWrapper.js.map +1 -1
  285. package/Materials/effect.js +18 -18
  286. package/Materials/effect.js.map +1 -1
  287. package/Materials/effectRenderer.js +9 -9
  288. package/Materials/effectRenderer.js.map +1 -1
  289. package/Materials/fresnelParameters.d.ts +2 -2
  290. package/Materials/fresnelParameters.js +13 -13
  291. package/Materials/fresnelParameters.js.map +1 -1
  292. package/Materials/material.detailMapConfiguration.js +5 -5
  293. package/Materials/material.detailMapConfiguration.js.map +1 -1
  294. package/Materials/material.js +223 -223
  295. package/Materials/material.js.map +1 -1
  296. package/Materials/materialPluginBase.js +5 -5
  297. package/Materials/materialPluginBase.js.map +1 -1
  298. package/Materials/materialPluginEvent.d.ts +14 -14
  299. package/Materials/materialPluginManager.d.ts +1 -1
  300. package/Materials/multiMaterial.js +16 -16
  301. package/Materials/multiMaterial.js.map +1 -1
  302. package/Materials/shadowDepthWrapper.js +14 -14
  303. package/Materials/shadowDepthWrapper.js.map +1 -1
  304. package/Materials/standardMaterial.js +100 -100
  305. package/Materials/standardMaterial.js.map +1 -1
  306. package/Materials/uniformBufferEffectCommonAccessor.js +3 -3
  307. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  308. package/Maths/math.functions.js +2 -0
  309. package/Maths/math.functions.js.map +1 -1
  310. package/Maths/math.path.js +11 -11
  311. package/Maths/math.path.js.map +1 -1
  312. package/Maths/math.vector.d.ts +27 -7
  313. package/Maths/math.vector.js +75 -48
  314. package/Maths/math.vector.js.map +1 -1
  315. package/Meshes/Builders/goldbergBuilder.d.ts +2 -2
  316. package/Meshes/Compression/dracoCompression.js +23 -23
  317. package/Meshes/Compression/dracoCompression.js.map +1 -1
  318. package/Meshes/Compression/meshoptCompression.js +9 -9
  319. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  320. package/Meshes/abstractMesh.js +179 -179
  321. package/Meshes/abstractMesh.js.map +1 -1
  322. package/Meshes/geometry.js +32 -32
  323. package/Meshes/geometry.js.map +1 -1
  324. package/Meshes/goldbergMesh.d.ts +1 -1
  325. package/Meshes/linesMesh.js +3 -3
  326. package/Meshes/linesMesh.js.map +1 -1
  327. package/Meshes/mesh.js +166 -166
  328. package/Meshes/mesh.js.map +1 -1
  329. package/Meshes/mesh.vertexData.js.map +1 -1
  330. package/Meshes/polygonMesh.js +5 -5
  331. package/Meshes/polygonMesh.js.map +1 -1
  332. package/Meshes/subMesh.js +59 -59
  333. package/Meshes/subMesh.js.map +1 -1
  334. package/Meshes/transformNode.js +52 -52
  335. package/Meshes/transformNode.js.map +1 -1
  336. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -1
  337. package/Misc/PerformanceViewer/performanceViewerCollector.js +12 -12
  338. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  339. package/Misc/arrayTools.d.ts +1 -1
  340. package/Misc/copyTextureToTexture.js +3 -3
  341. package/Misc/copyTextureToTexture.js.map +1 -1
  342. package/Misc/coroutine.d.ts +5 -5
  343. package/Misc/deferred.js +9 -9
  344. package/Misc/deferred.js.map +1 -1
  345. package/Misc/depthReducer.js +7 -7
  346. package/Misc/depthReducer.js.map +1 -1
  347. package/Misc/environmentTextureTools.d.ts +1 -1
  348. package/Misc/error.d.ts +1 -1
  349. package/Misc/fileTools.d.ts +5 -5
  350. package/Misc/filesInput.js +6 -6
  351. package/Misc/filesInput.js.map +1 -1
  352. package/Misc/khronosTextureContainer2.js +9 -9
  353. package/Misc/khronosTextureContainer2.js.map +1 -1
  354. package/Misc/observable.js +12 -12
  355. package/Misc/observable.js.map +1 -1
  356. package/Misc/perfCounter.js +16 -16
  357. package/Misc/perfCounter.js.map +1 -1
  358. package/Misc/sceneOptimizer.js +76 -76
  359. package/Misc/sceneOptimizer.js.map +1 -1
  360. package/Misc/stringDictionary.d.ts +1 -1
  361. package/Misc/trajectoryClassifier.js +67 -67
  362. package/Misc/trajectoryClassifier.js.map +1 -1
  363. package/Misc/videoRecorder.js +15 -15
  364. package/Misc/videoRecorder.js.map +1 -1
  365. package/Misc/virtualJoystick.js +12 -12
  366. package/Misc/virtualJoystick.js.map +1 -1
  367. package/Morph/morphTarget.js +28 -28
  368. package/Morph/morphTarget.js.map +1 -1
  369. package/Morph/morphTargetManager.js +18 -18
  370. package/Morph/morphTargetManager.js.map +1 -1
  371. package/Offline/database.js +12 -12
  372. package/Offline/database.js.map +1 -1
  373. package/Particles/EmitterTypes/coneParticleEmitter.js +25 -25
  374. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  375. package/Particles/EmitterTypes/meshParticleEmitter.js +20 -20
  376. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  377. package/Particles/baseParticleSystem.js +232 -232
  378. package/Particles/baseParticleSystem.js.map +1 -1
  379. package/Particles/cloudPoint.js +9 -9
  380. package/Particles/cloudPoint.js.map +1 -1
  381. package/Particles/gpuParticleSystem.js +123 -123
  382. package/Particles/gpuParticleSystem.js.map +1 -1
  383. package/Particles/particleSystem.js +102 -102
  384. package/Particles/particleSystem.js.map +1 -1
  385. package/Particles/particleSystemComponent.js +5 -0
  386. package/Particles/particleSystemComponent.js.map +1 -1
  387. package/Particles/pointsCloudSystem.js +18 -18
  388. package/Particles/pointsCloudSystem.js.map +1 -1
  389. package/Particles/solidParticle.js +23 -23
  390. package/Particles/solidParticle.js.map +1 -1
  391. package/Physics/index.d.ts +1 -0
  392. package/Physics/index.js +1 -0
  393. package/Physics/index.js.map +1 -1
  394. package/Physics/v1/physicsEngine.js +14 -14
  395. package/Physics/v1/physicsEngine.js.map +1 -1
  396. package/Physics/v1/physicsImpostor.js +149 -149
  397. package/Physics/v1/physicsImpostor.js.map +1 -1
  398. package/Physics/v2/IPhysicsEnginePlugin.d.ts +6 -8
  399. package/Physics/v2/IPhysicsEnginePlugin.js +1 -0
  400. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  401. package/Physics/v2/physicsBody.d.ts +10 -1
  402. package/Physics/v2/physicsBody.js +13 -1
  403. package/Physics/v2/physicsBody.js.map +1 -1
  404. package/Physics/v2/physicsConstraint.d.ts +139 -66
  405. package/Physics/v2/physicsConstraint.js +145 -78
  406. package/Physics/v2/physicsConstraint.js.map +1 -1
  407. package/Physics/v2/physicsEngine.js +14 -14
  408. package/Physics/v2/physicsEngine.js.map +1 -1
  409. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +137 -129
  410. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  411. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +68 -68
  412. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  413. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +6 -6
  414. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  415. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +226 -225
  416. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  417. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +10 -10
  418. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  419. package/PostProcesses/anaglyphPostProcess.js +7 -7
  420. package/PostProcesses/anaglyphPostProcess.js.map +1 -1
  421. package/PostProcesses/blackAndWhitePostProcess.js +7 -7
  422. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  423. package/PostProcesses/bloomEffect.js +28 -28
  424. package/PostProcesses/bloomEffect.js.map +1 -1
  425. package/PostProcesses/bloomMergePostProcess.js +7 -7
  426. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  427. package/PostProcesses/blurPostProcess.js +32 -32
  428. package/PostProcesses/blurPostProcess.js.map +1 -1
  429. package/PostProcesses/chromaticAberrationPostProcess.js +7 -7
  430. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  431. package/PostProcesses/circleOfConfusionPostProcess.js +7 -7
  432. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  433. package/PostProcesses/colorCorrectionPostProcess.js +7 -7
  434. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  435. package/PostProcesses/convolutionPostProcess.js +7 -7
  436. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  437. package/PostProcesses/depthOfFieldBlurPostProcess.js +7 -7
  438. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  439. package/PostProcesses/depthOfFieldEffect.js +36 -36
  440. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  441. package/PostProcesses/depthOfFieldMergePostProcess.js +7 -7
  442. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  443. package/PostProcesses/extractHighlightsPostProcess.js +7 -7
  444. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  445. package/PostProcesses/filterPostProcess.js +7 -7
  446. package/PostProcesses/filterPostProcess.js.map +1 -1
  447. package/PostProcesses/grainPostProcess.js +7 -7
  448. package/PostProcesses/grainPostProcess.js.map +1 -1
  449. package/PostProcesses/imageProcessingPostProcess.js +42 -42
  450. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  451. package/PostProcesses/motionBlurPostProcess.js +41 -41
  452. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  453. package/PostProcesses/passPostProcess.js +15 -15
  454. package/PostProcesses/passPostProcess.js.map +1 -1
  455. package/PostProcesses/postProcess.d.ts +2 -2
  456. package/PostProcesses/postProcess.js +123 -123
  457. package/PostProcesses/postProcess.js.map +1 -1
  458. package/PostProcesses/refractionPostProcess.js +21 -21
  459. package/PostProcesses/refractionPostProcess.js.map +1 -1
  460. package/PostProcesses/screenSpaceCurvaturePostProcess.js +7 -7
  461. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  462. package/PostProcesses/screenSpaceReflectionPostProcess.js +19 -19
  463. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  464. package/PostProcesses/sharpenPostProcess.js +7 -7
  465. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  466. package/PostProcesses/stereoscopicInterlacePostProcess.js +14 -14
  467. package/PostProcesses/stereoscopicInterlacePostProcess.js.map +1 -1
  468. package/PostProcesses/tonemapPostProcess.js +7 -7
  469. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  470. package/PostProcesses/volumetricLightScatteringPostProcess.js +11 -11
  471. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  472. package/PostProcesses/vrDistortionCorrectionPostProcess.js +7 -7
  473. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  474. package/Rendering/depthPeelingRenderer.js +36 -36
  475. package/Rendering/depthPeelingRenderer.js.map +1 -1
  476. package/Rendering/depthRenderer.js +8 -8
  477. package/Rendering/depthRenderer.js.map +1 -1
  478. package/Rendering/edgesRenderer.js +34 -34
  479. package/Rendering/edgesRenderer.js.map +1 -1
  480. package/Rendering/fluidRenderer/fluidRenderer.js +8 -8
  481. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  482. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +3 -3
  483. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  484. package/Rendering/fluidRenderer/fluidRenderingObject.js +22 -19
  485. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  486. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +12 -12
  487. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  488. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +18 -18
  489. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  490. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +71 -68
  491. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  492. package/Rendering/fluidRenderer/fluidRenderingTextures.js +29 -29
  493. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  494. package/Rendering/geometryBufferRenderer.js +173 -168
  495. package/Rendering/geometryBufferRenderer.js.map +1 -1
  496. package/Rendering/prePassRenderer.js +51 -51
  497. package/Rendering/prePassRenderer.js.map +1 -1
  498. package/Rendering/renderingGroup.js +25 -25
  499. package/Rendering/renderingGroup.js.map +1 -1
  500. package/Rendering/renderingManager.js +21 -21
  501. package/Rendering/renderingManager.js.map +1 -1
  502. package/Rendering/subSurfaceConfiguration.js +18 -18
  503. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  504. package/Rendering/utilityLayerRenderer.js +76 -76
  505. package/Rendering/utilityLayerRenderer.js.map +1 -1
  506. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  507. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  508. package/Shaders/fluidRenderingParticleDepth.fragment.js +5 -1
  509. package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
  510. package/Shaders/fluidRenderingRender.fragment.js +7 -2
  511. package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
  512. package/Shaders/geometry.fragment.d.ts +2 -0
  513. package/Shaders/geometry.fragment.js +5 -1
  514. package/Shaders/geometry.fragment.js.map +1 -1
  515. package/Shaders/geometry.vertex.d.ts +2 -0
  516. package/Shaders/geometry.vertex.js +8 -4
  517. package/Shaders/geometry.vertex.js.map +1 -1
  518. package/Sprites/sprite.js +16 -16
  519. package/Sprites/sprite.js.map +1 -1
  520. package/Sprites/spriteManager.js +81 -81
  521. package/Sprites/spriteManager.js.map +1 -1
  522. package/Sprites/spriteMap.js +32 -32
  523. package/Sprites/spriteMap.js.map +1 -1
  524. package/Sprites/spriteRenderer.js +6 -6
  525. package/Sprites/spriteRenderer.js.map +1 -1
  526. package/Sprites/thinSprite.js +22 -22
  527. package/Sprites/thinSprite.js.map +1 -1
  528. package/States/stencilStateComposer.js +10 -10
  529. package/States/stencilStateComposer.js.map +1 -1
  530. package/XR/features/WebXRAnchorSystem.js +7 -7
  531. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  532. package/XR/features/WebXRControllerMovement.d.ts +3 -3
  533. package/XR/features/WebXRControllerMovement.js +97 -97
  534. package/XR/features/WebXRControllerMovement.js.map +1 -1
  535. package/XR/features/WebXRControllerPhysics.js +24 -24
  536. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  537. package/XR/features/WebXRControllerTeleportation.js +26 -26
  538. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  539. package/XR/features/WebXRDOMOverlay.d.ts +1 -1
  540. package/XR/features/WebXRFeaturePointSystem.js +6 -6
  541. package/XR/features/WebXRFeaturePointSystem.js.map +1 -1
  542. package/XR/features/WebXRHandTracking.d.ts +1 -1
  543. package/XR/features/WebXRHandTracking.js +95 -95
  544. package/XR/features/WebXRHandTracking.js.map +1 -1
  545. package/XR/features/WebXRWalkingLocomotion.js +21 -21
  546. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  547. package/XR/motionController/webXRAbstractMotionController.d.ts +3 -3
  548. package/XR/motionController/webXRMotionControllerManager.d.ts +1 -1
  549. package/XR/native/nativeXRFrame.js +3 -3
  550. package/XR/native/nativeXRFrame.js.map +1 -1
  551. package/XR/webXRFeaturesManager.d.ts +1 -1
  552. package/XR/webXRLayerWrapper.d.ts +2 -2
  553. package/XR/webXRLayerWrapper.js +17 -17
  554. package/XR/webXRLayerWrapper.js.map +1 -1
  555. package/abstractScene.d.ts +2 -2
  556. package/node.d.ts +1 -1
  557. package/node.js +71 -71
  558. package/node.js.map +1 -1
  559. package/package.json +1 -1
  560. package/scene.js +777 -777
  561. package/scene.js.map +1 -1
  562. package/sceneComponent.d.ts +12 -12
  563. package/types.d.ts +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"refractionPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/refractionPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color3 } from \"../Maths/math.color\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { Engine } from \"../Engines/engine\";\r\n\r\nimport \"../Shaders/refraction.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { SerializationHelper, serialize } from \"../Misc/decorators\";\r\nimport type { Nullable } from \"../types\";\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * Post process which applies a refraction texture\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\r\n */\r\nexport class RefractionPostProcess extends PostProcess {\r\n private _refTexture: Texture;\r\n private _ownRefractionTexture = true;\r\n\r\n /** the base color of the refraction (used to taint the rendering) */\r\n @serialize()\r\n public color: Color3;\r\n\r\n /** simulated refraction depth */\r\n @serialize()\r\n public depth: number;\r\n\r\n /** the coefficient of the base color (0 to remove base color tainting) */\r\n @serialize()\r\n public colorLevel: number;\r\n\r\n /** Gets the url used to load the refraction texture */\r\n @serialize()\r\n public refractionTextureUrl: string;\r\n\r\n /**\r\n * Gets or sets the refraction texture\r\n * Please note that you are responsible for disposing the texture if you set it manually\r\n */\r\n public get refractionTexture(): Texture {\r\n return this._refTexture;\r\n }\r\n\r\n public set refractionTexture(value: Texture) {\r\n if (this._refTexture && this._ownRefractionTexture) {\r\n this._refTexture.dispose();\r\n }\r\n\r\n this._refTexture = value;\r\n this._ownRefractionTexture = false;\r\n }\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"RefractionPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"RefractionPostProcess\";\r\n }\r\n\r\n /**\r\n * Initializes the RefractionPostProcess\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\r\n * @param name The name of the effect.\r\n * @param refractionTextureUrl Url of the refraction texture to use\r\n * @param color the base color of the refraction (used to taint the rendering)\r\n * @param depth simulated refraction depth\r\n * @param colorLevel the coefficient of the base color (0 to remove base color tainting)\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n refractionTextureUrl: string,\r\n color: Color3,\r\n depth: number,\r\n colorLevel: number,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"refraction\", [\"baseColor\", \"depth\", \"colorLevel\"], [\"refractionSampler\"], options, camera, samplingMode, engine, reusable);\r\n\r\n this.color = color;\r\n this.depth = depth;\r\n this.colorLevel = colorLevel;\r\n this.refractionTextureUrl = refractionTextureUrl;\r\n\r\n this.onActivateObservable.add((cam: Camera) => {\r\n this._refTexture = this._refTexture || new Texture(refractionTextureUrl, cam.getScene());\r\n });\r\n\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setColor3(\"baseColor\", this.color);\r\n effect.setFloat(\"depth\", this.depth);\r\n effect.setFloat(\"colorLevel\", this.colorLevel);\r\n\r\n effect.setTexture(\"refractionSampler\", this._refTexture);\r\n });\r\n }\r\n\r\n // Methods\r\n /**\r\n * Disposes of the post process\r\n * @param camera Camera to dispose post process on\r\n */\r\n public dispose(camera: Camera): void {\r\n if (this._refTexture && this._ownRefractionTexture) {\r\n this._refTexture.dispose();\r\n (<any>this._refTexture) = null;\r\n }\r\n\r\n super.dispose(camera);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new RefractionPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.refractionTextureUrl,\r\n parsedPostProcess.color,\r\n parsedPostProcess.depth,\r\n parsedPostProcess.colorLevel,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.RefractionPostProcess\", RefractionPostProcess);\r\n"]}
1
+ {"version":3,"file":"refractionPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/refractionPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color3 } from \"../Maths/math.color\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { Engine } from \"../Engines/engine\";\r\n\r\nimport \"../Shaders/refraction.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { SerializationHelper, serialize } from \"../Misc/decorators\";\r\nimport type { Nullable } from \"../types\";\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * Post process which applies a refraction texture\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\r\n */\r\nexport class RefractionPostProcess extends PostProcess {\r\n private _refTexture: Texture;\r\n private _ownRefractionTexture = true;\r\n\r\n /** the base color of the refraction (used to taint the rendering) */\r\n @serialize()\r\n public color: Color3;\r\n\r\n /** simulated refraction depth */\r\n @serialize()\r\n public depth: number;\r\n\r\n /** the coefficient of the base color (0 to remove base color tainting) */\r\n @serialize()\r\n public colorLevel: number;\r\n\r\n /** Gets the url used to load the refraction texture */\r\n @serialize()\r\n public refractionTextureUrl: string;\r\n\r\n /**\r\n * Gets or sets the refraction texture\r\n * Please note that you are responsible for disposing the texture if you set it manually\r\n */\r\n public get refractionTexture(): Texture {\r\n return this._refTexture;\r\n }\r\n\r\n public set refractionTexture(value: Texture) {\r\n if (this._refTexture && this._ownRefractionTexture) {\r\n this._refTexture.dispose();\r\n }\r\n\r\n this._refTexture = value;\r\n this._ownRefractionTexture = false;\r\n }\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"RefractionPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"RefractionPostProcess\";\r\n }\r\n\r\n /**\r\n * Initializes the RefractionPostProcess\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\r\n * @param name The name of the effect.\r\n * @param refractionTextureUrl Url of the refraction texture to use\r\n * @param color the base color of the refraction (used to taint the rendering)\r\n * @param depth simulated refraction depth\r\n * @param colorLevel the coefficient of the base color (0 to remove base color tainting)\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n refractionTextureUrl: string,\r\n color: Color3,\r\n depth: number,\r\n colorLevel: number,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"refraction\", [\"baseColor\", \"depth\", \"colorLevel\"], [\"refractionSampler\"], options, camera, samplingMode, engine, reusable);\r\n\r\n this.color = color;\r\n this.depth = depth;\r\n this.colorLevel = colorLevel;\r\n this.refractionTextureUrl = refractionTextureUrl;\r\n\r\n this.onActivateObservable.add((cam: Camera) => {\r\n this._refTexture = this._refTexture || new Texture(refractionTextureUrl, cam.getScene());\r\n });\r\n\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setColor3(\"baseColor\", this.color);\r\n effect.setFloat(\"depth\", this.depth);\r\n effect.setFloat(\"colorLevel\", this.colorLevel);\r\n\r\n effect.setTexture(\"refractionSampler\", this._refTexture);\r\n });\r\n }\r\n\r\n // Methods\r\n /**\r\n * Disposes of the post process\r\n * @param camera Camera to dispose post process on\r\n */\r\n public dispose(camera: Camera): void {\r\n if (this._refTexture && this._ownRefractionTexture) {\r\n this._refTexture.dispose();\r\n (<any>this._refTexture) = null;\r\n }\r\n\r\n super.dispose(camera);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new RefractionPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.refractionTextureUrl,\r\n parsedPostProcess.color,\r\n parsedPostProcess.depth,\r\n parsedPostProcess.colorLevel,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.RefractionPostProcess\", RefractionPostProcess);\r\n"]}
@@ -11,6 +11,13 @@ import { serialize, SerializationHelper } from "../Misc/decorators.js";
11
11
  * The Screen Space curvature effect can help highlighting ridge and valley of a model.
12
12
  */
13
13
  export class ScreenSpaceCurvaturePostProcess extends PostProcess {
14
+ /**
15
+ * Gets a string identifying the name of the class
16
+ * @returns "ScreenSpaceCurvaturePostProcess" string
17
+ */
18
+ getClassName() {
19
+ return "ScreenSpaceCurvaturePostProcess";
20
+ }
14
21
  /**
15
22
  * Creates a new instance ScreenSpaceCurvaturePostProcess
16
23
  * @param name The name of the effect.
@@ -48,13 +55,6 @@ export class ScreenSpaceCurvaturePostProcess extends PostProcess {
48
55
  };
49
56
  }
50
57
  }
51
- /**
52
- * Gets a string identifying the name of the class
53
- * @returns "ScreenSpaceCurvaturePostProcess" string
54
- */
55
- getClassName() {
56
- return "ScreenSpaceCurvaturePostProcess";
57
- }
58
58
  /**
59
59
  * Support test.
60
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"screenSpaceCurvaturePostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/screenSpaceCurvaturePostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer\";\r\n\r\nimport \"../Rendering/geometryBufferRendererSceneComponent\";\r\nimport \"../Shaders/screenSpaceCurvature.fragment\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The Screen Space curvature effect can help highlighting ridge and valley of a model.\r\n */\r\nexport class ScreenSpaceCurvaturePostProcess extends PostProcess {\r\n /**\r\n * Defines how much ridge the curvature effect displays.\r\n */\r\n @serialize()\r\n public ridge: number = 1;\r\n\r\n /**\r\n * Defines how much valley the curvature effect displays.\r\n */\r\n @serialize()\r\n public valley: number = 1;\r\n\r\n private _geometryBufferRenderer: Nullable<GeometryBufferRenderer>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ScreenSpaceCurvaturePostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"ScreenSpaceCurvaturePostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance ScreenSpaceCurvaturePostProcess\r\n * @param name The name of the effect.\r\n * @param scene The scene containing the objects to blur according to their velocity.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n scene: Scene,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false\r\n ) {\r\n super(\r\n name,\r\n \"screenSpaceCurvature\",\r\n [\"curvature_ridge\", \"curvature_valley\"],\r\n [\"textureSampler\", \"normalSampler\"],\r\n options,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n undefined,\r\n textureType,\r\n undefined,\r\n null,\r\n blockCompilation\r\n );\r\n\r\n this._geometryBufferRenderer = scene.enableGeometryBufferRenderer();\r\n\r\n if (!this._geometryBufferRenderer) {\r\n // Geometry buffer renderer is not supported. So, work as a passthrough.\r\n Logger.Error(\"Multiple Render Target support needed for screen space curvature post process. Please use IsSupported test first.\");\r\n } else {\r\n // Geometry buffer renderer is supported.\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat(\"curvature_ridge\", 0.5 / Math.max(this.ridge * this.ridge, 1e-4));\r\n effect.setFloat(\"curvature_valley\", 0.7 / Math.max(this.valley * this.valley, 1e-4));\r\n\r\n const normalTexture = this._geometryBufferRenderer!.getGBuffer().textures[1];\r\n effect.setTexture(\"normalSampler\", normalTexture);\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Support test.\r\n */\r\n public static get IsSupported(): boolean {\r\n const engine = EngineStore.LastCreatedEngine;\r\n if (!engine) {\r\n return false;\r\n }\r\n\r\n return engine.getCaps().drawBuffersExtension;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ScreenSpaceCurvaturePostProcess(\r\n parsedPostProcess.name,\r\n scene,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ScreenSpaceCurvaturePostProcess\", ScreenSpaceCurvaturePostProcess);\r\n"]}
1
+ {"version":3,"file":"screenSpaceCurvaturePostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/screenSpaceCurvaturePostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer\";\r\n\r\nimport \"../Rendering/geometryBufferRendererSceneComponent\";\r\nimport \"../Shaders/screenSpaceCurvature.fragment\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The Screen Space curvature effect can help highlighting ridge and valley of a model.\r\n */\r\nexport class ScreenSpaceCurvaturePostProcess extends PostProcess {\r\n /**\r\n * Defines how much ridge the curvature effect displays.\r\n */\r\n @serialize()\r\n public ridge: number = 1;\r\n\r\n /**\r\n * Defines how much valley the curvature effect displays.\r\n */\r\n @serialize()\r\n public valley: number = 1;\r\n\r\n private _geometryBufferRenderer: Nullable<GeometryBufferRenderer>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ScreenSpaceCurvaturePostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"ScreenSpaceCurvaturePostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance ScreenSpaceCurvaturePostProcess\r\n * @param name The name of the effect.\r\n * @param scene The scene containing the objects to blur according to their velocity.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n scene: Scene,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false\r\n ) {\r\n super(\r\n name,\r\n \"screenSpaceCurvature\",\r\n [\"curvature_ridge\", \"curvature_valley\"],\r\n [\"textureSampler\", \"normalSampler\"],\r\n options,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n undefined,\r\n textureType,\r\n undefined,\r\n null,\r\n blockCompilation\r\n );\r\n\r\n this._geometryBufferRenderer = scene.enableGeometryBufferRenderer();\r\n\r\n if (!this._geometryBufferRenderer) {\r\n // Geometry buffer renderer is not supported. So, work as a passthrough.\r\n Logger.Error(\"Multiple Render Target support needed for screen space curvature post process. Please use IsSupported test first.\");\r\n } else {\r\n // Geometry buffer renderer is supported.\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat(\"curvature_ridge\", 0.5 / Math.max(this.ridge * this.ridge, 1e-4));\r\n effect.setFloat(\"curvature_valley\", 0.7 / Math.max(this.valley * this.valley, 1e-4));\r\n\r\n const normalTexture = this._geometryBufferRenderer!.getGBuffer().textures[1];\r\n effect.setTexture(\"normalSampler\", normalTexture);\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Support test.\r\n */\r\n public static get IsSupported(): boolean {\r\n const engine = EngineStore.LastCreatedEngine;\r\n if (!engine) {\r\n return false;\r\n }\r\n\r\n return engine.getCaps().drawBuffersExtension;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ScreenSpaceCurvaturePostProcess(\r\n parsedPostProcess.name,\r\n scene,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ScreenSpaceCurvaturePostProcess\", ScreenSpaceCurvaturePostProcess);\r\n"]}
@@ -11,6 +11,25 @@ import { RegisterClass } from "../Misc/typeStore.js";
11
11
  * Basically, the screen space reflection post-process will compute reflections according the material's reflectivity.
12
12
  */
13
13
  export class ScreenSpaceReflectionPostProcess extends PostProcess {
14
+ get _geometryBufferRenderer() {
15
+ if (!this._forceGeometryBuffer) {
16
+ return null;
17
+ }
18
+ return this._scene.geometryBufferRenderer;
19
+ }
20
+ get _prePassRenderer() {
21
+ if (this._forceGeometryBuffer) {
22
+ return null;
23
+ }
24
+ return this._scene.prePassRenderer;
25
+ }
26
+ /**
27
+ * Gets a string identifying the name of the class
28
+ * @returns "ScreenSpaceReflectionPostProcess" string
29
+ */
30
+ getClassName() {
31
+ return "ScreenSpaceReflectionPostProcess";
32
+ }
14
33
  /**
15
34
  * Creates a new instance of ScreenSpaceReflectionPostProcess.
16
35
  * @param name The name of the effect.
@@ -108,25 +127,6 @@ export class ScreenSpaceReflectionPostProcess extends PostProcess {
108
127
  };
109
128
  this._isSceneRightHanded = scene.useRightHandedSystem;
110
129
  }
111
- get _geometryBufferRenderer() {
112
- if (!this._forceGeometryBuffer) {
113
- return null;
114
- }
115
- return this._scene.geometryBufferRenderer;
116
- }
117
- get _prePassRenderer() {
118
- if (this._forceGeometryBuffer) {
119
- return null;
120
- }
121
- return this._scene.prePassRenderer;
122
- }
123
- /**
124
- * Gets a string identifying the name of the class
125
- * @returns "ScreenSpaceReflectionPostProcess" string
126
- */
127
- getClassName() {
128
- return "ScreenSpaceReflectionPostProcess";
129
- }
130
130
  /**
131
131
  * Gets whether or not smoothing reflections is enabled.
132
132
  * Enabling smoothing will require more GPU power and can generate a drop in FPS.
@@ -1 +1 @@
1
- {"version":3,"file":"screenSpaceReflectionPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/screenSpaceReflectionPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAEvG,OAAO,2CAA2C,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD;;;GAGG;AACH,MAAM,OAAO,gCAAiC,SAAQ,WAAW;IAyD7D;;;;;;;;;;;;OAYG;IACH,YACI,IAAY,EACZ,KAAY,EACZ,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAe,EACf,QAAkB,EAClB,cAAsB,SAAS,CAAC,wBAAwB,EACxD,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK;QAE3B,KAAK,CACD,IAAI,EACJ,uBAAuB,EACvB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,mCAAmC,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,EACnH,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,EAC7E,OAAO,EACP,MAAM,EACN,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,gFAAgF,EAChF,WAAW,EACX,SAAS,EACT,IAAI,EACJ,gBAAgB,CACnB,CAAC;QAhGN;;WAEG;QAEI,cAAS,GAAW,GAAG,CAAC;QAC/B;;WAEG;QAEI,aAAQ,GAAW,CAAC,CAAC;QAC5B;;WAEG;QAEI,sCAAiC,GAAW,CAAC,CAAC;QACrD;;WAEG;QAEI,SAAI,GAAW,GAAG,CAAC;QAC1B;;WAEG;QAEI,oBAAe,GAAW,GAAG,CAAC;QAE7B,yBAAoB,GAAY,KAAK,CAAC;QAiBtC,6BAAwB,GAAY,KAAK,CAAC;QAC1C,uBAAkB,GAAW,EAAE,CAAC;QAChC,iBAAY,GAAW,CAAC,CAAC;QAqD7B,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAEhD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,iDAAiD;YACjD,MAAM,sBAAsB,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;YACpE,IAAI,sBAAsB,EAAE;gBACxB,IAAI,sBAAsB,CAAC,WAAW,EAAE;oBACpC,sBAAsB,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC7C,sBAAsB,CAAC,kBAAkB,GAAG,IAAI,CAAC;iBACpD;aACJ;SACJ;aAAM;YACH,MAAM,eAAe,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACtD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,2BAA2B,GAAG,IAAI,mCAAmC,EAAE,CAAC;SAChF;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,0BAA0B;QAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAE9C,IAAI,CAAC,eAAe,IAAI,CAAC,sBAAsB,EAAE;gBAC7C,OAAO;aACV;YAED,IAAI,sBAAsB,EAAE;gBACxB,WAAW;gBACX,MAAM,aAAa,GAAG,sBAAsB,CAAC,eAAe,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;gBAC3G,MAAM,cAAc,GAAG,sBAAsB,CAAC,eAAe,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;gBAEhH,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;gBAClG,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;aAC1G;iBAAM,IAAI,eAAe,EAAE;gBACxB,WAAW;gBACX,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;gBACxF,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;gBAC7F,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;gBAEpF,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChG,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;aACxG;YAED,WAAW;YACX,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;YAClC,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE1D,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC7F,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAC1D,CAAC;IAzID,IAAY,uBAAuB;QAC/B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC9C,CAAC;IAED,IAAY,gBAAgB;QACxB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACvC,CAAC;IAOD;;;OAGG;IACI,YAAY;QACf,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAgHD;;;OAGG;IAEH,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,IAAW,uBAAuB,CAAC,OAAgB;QAC/C,IAAI,OAAO,KAAK,IAAI,CAAC,wBAAwB,EAAE;YAC3C,OAAO;SACV;QAED,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC;QACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IAEH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,IAAW,iBAAiB,CAAC,OAAe;QACxC,IAAI,OAAO,KAAK,IAAI,CAAC,kBAAkB,EAAE;YACrC,OAAO;SACV;QAED,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED;;;;OAIG;IAEH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEO,oBAAoB;QACxB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvD,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC9C;QAED,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QAC5F,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,gCAAgC,CACvC,iBAAiB,CAAC,IAAI,EACtB,KAAK,EACL,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AA9QG;IADC,SAAS,EAAE;mEACmB;AAK/B;IADC,SAAS,EAAE;kEACgB;AAK5B;IADC,SAAS,EAAE;2FACyC;AAKrD;IADC,SAAS,EAAE;8DACc;AAK1B;IADC,SAAS,EAAE;yEACyB;AAmJrC;IADC,SAAS,EAAE;+EAGX;AAoBD;IADC,SAAS,EAAE;yEAGX;AAqBD;IADC,SAAS,EAAE;mEAGX;AA0DL,aAAa,CAAC,0CAA0C,EAAE,gCAAgC,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\nimport type { PrePassRenderer } from \"../Rendering/prePassRenderer\";\r\nimport { ScreenSpaceReflectionsConfiguration } from \"../Rendering/screenSpaceReflectionsConfiguration\";\r\n\r\nimport \"../Shaders/screenSpaceReflection.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The ScreenSpaceReflectionPostProcess performs realtime reflections using only and only the available informations on the screen (positions and normals).\r\n * Basically, the screen space reflection post-process will compute reflections according the material's reflectivity.\r\n */\r\nexport class ScreenSpaceReflectionPostProcess extends PostProcess {\r\n /**\r\n * Gets or sets a reflection threshold mainly used to adjust the reflection's height.\r\n */\r\n @serialize()\r\n public threshold: number = 1.2;\r\n /**\r\n * Gets or sets the current reflection strength. 1.0 is an ideal value but can be increased/decreased for particular results.\r\n */\r\n @serialize()\r\n public strength: number = 1;\r\n /**\r\n * Gets or sets the falloff exponent used while computing fresnel. More the exponent is high, more the reflections will be discrete.\r\n */\r\n @serialize()\r\n public reflectionSpecularFalloffExponent: number = 3;\r\n /**\r\n * Gets or sets the step size used to iterate until the effect finds the color of the reflection's pixel. Typically in interval [0.1, 1.0]\r\n */\r\n @serialize()\r\n public step: number = 1.0;\r\n /**\r\n * Gets or sets the factor applied when computing roughness. Default value is 0.2.\r\n */\r\n @serialize()\r\n public roughnessFactor: number = 0.2;\r\n\r\n private _forceGeometryBuffer: boolean = false;\r\n private get _geometryBufferRenderer(): Nullable<GeometryBufferRenderer> {\r\n if (!this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n\r\n return this._scene.geometryBufferRenderer;\r\n }\r\n\r\n private get _prePassRenderer(): Nullable<PrePassRenderer> {\r\n if (this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n\r\n return this._scene.prePassRenderer;\r\n }\r\n\r\n private _enableSmoothReflections: boolean = false;\r\n private _reflectionSamples: number = 64;\r\n private _smoothSteps: number = 5;\r\n private _isSceneRightHanded: boolean;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ScreenSpaceReflectionPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"ScreenSpaceReflectionPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance of ScreenSpaceReflectionPostProcess.\r\n * @param name The name of the effect.\r\n * @param scene The scene containing the objects to calculate reflections.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: true)\r\n * @param forceGeometryBuffer If this post process should use geometry buffer instead of prepass (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n scene: Scene,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false,\r\n forceGeometryBuffer = false\r\n ) {\r\n super(\r\n name,\r\n \"screenSpaceReflection\",\r\n [\"projection\", \"view\", \"threshold\", \"reflectionSpecularFalloffExponent\", \"strength\", \"stepSize\", \"roughnessFactor\"],\r\n [\"textureSampler\", \"normalSampler\", \"positionSampler\", \"reflectivitySampler\"],\r\n options,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n \"#define SSR_SUPPORTED\\n#define REFLECTION_SAMPLES 64\\n#define SMOOTH_STEPS 5\\n\",\r\n textureType,\r\n undefined,\r\n null,\r\n blockCompilation\r\n );\r\n\r\n this._forceGeometryBuffer = forceGeometryBuffer;\r\n\r\n if (this._forceGeometryBuffer) {\r\n // Get geometry buffer renderer and update effect\r\n const geometryBufferRenderer = scene.enableGeometryBufferRenderer();\r\n if (geometryBufferRenderer) {\r\n if (geometryBufferRenderer.isSupported) {\r\n geometryBufferRenderer.enablePosition = true;\r\n geometryBufferRenderer.enableReflectivity = true;\r\n }\r\n }\r\n } else {\r\n const prePassRenderer = scene.enablePrePassRenderer();\r\n prePassRenderer?.markAsDirty();\r\n this._prePassEffectConfiguration = new ScreenSpaceReflectionsConfiguration();\r\n }\r\n\r\n this._updateEffectDefines();\r\n\r\n // On apply, send uniforms\r\n this.onApply = (effect: Effect) => {\r\n const geometryBufferRenderer = this._geometryBufferRenderer;\r\n const prePassRenderer = this._prePassRenderer;\r\n\r\n if (!prePassRenderer && !geometryBufferRenderer) {\r\n return;\r\n }\r\n\r\n if (geometryBufferRenderer) {\r\n // Samplers\r\n const positionIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.POSITION_TEXTURE_TYPE);\r\n const roughnessIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE);\r\n\r\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[1]);\r\n effect.setTexture(\"positionSampler\", geometryBufferRenderer.getGBuffer().textures[positionIndex]);\r\n effect.setTexture(\"reflectivitySampler\", geometryBufferRenderer.getGBuffer().textures[roughnessIndex]);\r\n } else if (prePassRenderer) {\r\n // Samplers\r\n const positionIndex = prePassRenderer.getIndex(Constants.PREPASS_POSITION_TEXTURE_TYPE);\r\n const roughnessIndex = prePassRenderer.getIndex(Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE);\r\n const normalIndex = prePassRenderer.getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE);\r\n\r\n effect.setTexture(\"normalSampler\", prePassRenderer.getRenderTarget().textures[normalIndex]);\r\n effect.setTexture(\"positionSampler\", prePassRenderer.getRenderTarget().textures[positionIndex]);\r\n effect.setTexture(\"reflectivitySampler\", prePassRenderer.getRenderTarget().textures[roughnessIndex]);\r\n }\r\n\r\n // Uniforms\r\n const camera = scene.activeCamera;\r\n if (!camera) {\r\n return;\r\n }\r\n\r\n const viewMatrix = camera.getViewMatrix(true);\r\n const projectionMatrix = camera.getProjectionMatrix(true);\r\n\r\n effect.setMatrix(\"projection\", projectionMatrix);\r\n effect.setMatrix(\"view\", viewMatrix);\r\n effect.setFloat(\"threshold\", this.threshold);\r\n effect.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent);\r\n effect.setFloat(\"strength\", this.strength);\r\n effect.setFloat(\"stepSize\", this.step);\r\n effect.setFloat(\"roughnessFactor\", this.roughnessFactor);\r\n };\r\n\r\n this._isSceneRightHanded = scene.useRightHandedSystem;\r\n }\r\n\r\n /**\r\n * Gets whether or not smoothing reflections is enabled.\r\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\r\n */\r\n @serialize()\r\n public get enableSmoothReflections(): boolean {\r\n return this._enableSmoothReflections;\r\n }\r\n\r\n /**\r\n * Sets whether or not smoothing reflections is enabled.\r\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\r\n */\r\n public set enableSmoothReflections(enabled: boolean) {\r\n if (enabled === this._enableSmoothReflections) {\r\n return;\r\n }\r\n\r\n this._enableSmoothReflections = enabled;\r\n this._updateEffectDefines();\r\n }\r\n\r\n /**\r\n * Gets the number of samples taken while computing reflections. More samples count is high,\r\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\r\n */\r\n @serialize()\r\n public get reflectionSamples(): number {\r\n return this._reflectionSamples;\r\n }\r\n\r\n /**\r\n * Sets the number of samples taken while computing reflections. More samples count is high,\r\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\r\n */\r\n public set reflectionSamples(samples: number) {\r\n if (samples === this._reflectionSamples) {\r\n return;\r\n }\r\n\r\n this._reflectionSamples = samples;\r\n this._updateEffectDefines();\r\n }\r\n\r\n /**\r\n * Gets the number of samples taken while smoothing reflections. More samples count is high,\r\n * more the post-process will require GPU power and can generate a drop in FPS.\r\n * Default value (5.0) work pretty well in all cases but can be adjusted.\r\n */\r\n @serialize()\r\n public get smoothSteps(): number {\r\n return this._smoothSteps;\r\n }\r\n\r\n /*\r\n * Sets the number of samples taken while smoothing reflections. More samples count is high,\r\n * more the post-process will require GPU power and can generate a drop in FPS.\r\n * Default value (5.0) work pretty well in all cases but can be adjusted.\r\n */\r\n public set smoothSteps(steps: number) {\r\n if (steps === this._smoothSteps) {\r\n return;\r\n }\r\n\r\n this._smoothSteps = steps;\r\n this._updateEffectDefines();\r\n }\r\n\r\n private _updateEffectDefines(): void {\r\n const defines: string[] = [];\r\n if (this._geometryBufferRenderer || this._prePassRenderer) {\r\n defines.push(\"#define SSR_SUPPORTED\");\r\n }\r\n if (this._enableSmoothReflections) {\r\n defines.push(\"#define ENABLE_SMOOTH_REFLECTIONS\");\r\n }\r\n if (this._isSceneRightHanded) {\r\n defines.push(\"#define RIGHT_HANDED_SCENE\");\r\n }\r\n\r\n defines.push(\"#define REFLECTION_SAMPLES \" + (this._reflectionSamples >> 0));\r\n defines.push(\"#define SMOOTH_STEPS \" + (this._smoothSteps >> 0));\r\n\r\n this.updateEffect(defines.join(\"\\n\"));\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ScreenSpaceReflectionPostProcess(\r\n parsedPostProcess.name,\r\n scene,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ScreenSpaceReflectionPostProcess\", ScreenSpaceReflectionPostProcess);\r\n"]}
1
+ {"version":3,"file":"screenSpaceReflectionPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/screenSpaceReflectionPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\nimport type { PrePassRenderer } from \"../Rendering/prePassRenderer\";\r\nimport { ScreenSpaceReflectionsConfiguration } from \"../Rendering/screenSpaceReflectionsConfiguration\";\r\n\r\nimport \"../Shaders/screenSpaceReflection.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The ScreenSpaceReflectionPostProcess performs realtime reflections using only and only the available informations on the screen (positions and normals).\r\n * Basically, the screen space reflection post-process will compute reflections according the material's reflectivity.\r\n */\r\nexport class ScreenSpaceReflectionPostProcess extends PostProcess {\r\n /**\r\n * Gets or sets a reflection threshold mainly used to adjust the reflection's height.\r\n */\r\n @serialize()\r\n public threshold: number = 1.2;\r\n /**\r\n * Gets or sets the current reflection strength. 1.0 is an ideal value but can be increased/decreased for particular results.\r\n */\r\n @serialize()\r\n public strength: number = 1;\r\n /**\r\n * Gets or sets the falloff exponent used while computing fresnel. More the exponent is high, more the reflections will be discrete.\r\n */\r\n @serialize()\r\n public reflectionSpecularFalloffExponent: number = 3;\r\n /**\r\n * Gets or sets the step size used to iterate until the effect finds the color of the reflection's pixel. Typically in interval [0.1, 1.0]\r\n */\r\n @serialize()\r\n public step: number = 1.0;\r\n /**\r\n * Gets or sets the factor applied when computing roughness. Default value is 0.2.\r\n */\r\n @serialize()\r\n public roughnessFactor: number = 0.2;\r\n\r\n private _forceGeometryBuffer: boolean = false;\r\n private get _geometryBufferRenderer(): Nullable<GeometryBufferRenderer> {\r\n if (!this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n\r\n return this._scene.geometryBufferRenderer;\r\n }\r\n\r\n private get _prePassRenderer(): Nullable<PrePassRenderer> {\r\n if (this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n\r\n return this._scene.prePassRenderer;\r\n }\r\n\r\n private _enableSmoothReflections: boolean = false;\r\n private _reflectionSamples: number = 64;\r\n private _smoothSteps: number = 5;\r\n private _isSceneRightHanded: boolean;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ScreenSpaceReflectionPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"ScreenSpaceReflectionPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance of ScreenSpaceReflectionPostProcess.\r\n * @param name The name of the effect.\r\n * @param scene The scene containing the objects to calculate reflections.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: true)\r\n * @param forceGeometryBuffer If this post process should use geometry buffer instead of prepass (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n scene: Scene,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false,\r\n forceGeometryBuffer = false\r\n ) {\r\n super(\r\n name,\r\n \"screenSpaceReflection\",\r\n [\"projection\", \"view\", \"threshold\", \"reflectionSpecularFalloffExponent\", \"strength\", \"stepSize\", \"roughnessFactor\"],\r\n [\"textureSampler\", \"normalSampler\", \"positionSampler\", \"reflectivitySampler\"],\r\n options,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n \"#define SSR_SUPPORTED\\n#define REFLECTION_SAMPLES 64\\n#define SMOOTH_STEPS 5\\n\",\r\n textureType,\r\n undefined,\r\n null,\r\n blockCompilation\r\n );\r\n\r\n this._forceGeometryBuffer = forceGeometryBuffer;\r\n\r\n if (this._forceGeometryBuffer) {\r\n // Get geometry buffer renderer and update effect\r\n const geometryBufferRenderer = scene.enableGeometryBufferRenderer();\r\n if (geometryBufferRenderer) {\r\n if (geometryBufferRenderer.isSupported) {\r\n geometryBufferRenderer.enablePosition = true;\r\n geometryBufferRenderer.enableReflectivity = true;\r\n }\r\n }\r\n } else {\r\n const prePassRenderer = scene.enablePrePassRenderer();\r\n prePassRenderer?.markAsDirty();\r\n this._prePassEffectConfiguration = new ScreenSpaceReflectionsConfiguration();\r\n }\r\n\r\n this._updateEffectDefines();\r\n\r\n // On apply, send uniforms\r\n this.onApply = (effect: Effect) => {\r\n const geometryBufferRenderer = this._geometryBufferRenderer;\r\n const prePassRenderer = this._prePassRenderer;\r\n\r\n if (!prePassRenderer && !geometryBufferRenderer) {\r\n return;\r\n }\r\n\r\n if (geometryBufferRenderer) {\r\n // Samplers\r\n const positionIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.POSITION_TEXTURE_TYPE);\r\n const roughnessIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE);\r\n\r\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[1]);\r\n effect.setTexture(\"positionSampler\", geometryBufferRenderer.getGBuffer().textures[positionIndex]);\r\n effect.setTexture(\"reflectivitySampler\", geometryBufferRenderer.getGBuffer().textures[roughnessIndex]);\r\n } else if (prePassRenderer) {\r\n // Samplers\r\n const positionIndex = prePassRenderer.getIndex(Constants.PREPASS_POSITION_TEXTURE_TYPE);\r\n const roughnessIndex = prePassRenderer.getIndex(Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE);\r\n const normalIndex = prePassRenderer.getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE);\r\n\r\n effect.setTexture(\"normalSampler\", prePassRenderer.getRenderTarget().textures[normalIndex]);\r\n effect.setTexture(\"positionSampler\", prePassRenderer.getRenderTarget().textures[positionIndex]);\r\n effect.setTexture(\"reflectivitySampler\", prePassRenderer.getRenderTarget().textures[roughnessIndex]);\r\n }\r\n\r\n // Uniforms\r\n const camera = scene.activeCamera;\r\n if (!camera) {\r\n return;\r\n }\r\n\r\n const viewMatrix = camera.getViewMatrix(true);\r\n const projectionMatrix = camera.getProjectionMatrix(true);\r\n\r\n effect.setMatrix(\"projection\", projectionMatrix);\r\n effect.setMatrix(\"view\", viewMatrix);\r\n effect.setFloat(\"threshold\", this.threshold);\r\n effect.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent);\r\n effect.setFloat(\"strength\", this.strength);\r\n effect.setFloat(\"stepSize\", this.step);\r\n effect.setFloat(\"roughnessFactor\", this.roughnessFactor);\r\n };\r\n\r\n this._isSceneRightHanded = scene.useRightHandedSystem;\r\n }\r\n\r\n /**\r\n * Gets whether or not smoothing reflections is enabled.\r\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\r\n */\r\n @serialize()\r\n public get enableSmoothReflections(): boolean {\r\n return this._enableSmoothReflections;\r\n }\r\n\r\n /**\r\n * Sets whether or not smoothing reflections is enabled.\r\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\r\n */\r\n public set enableSmoothReflections(enabled: boolean) {\r\n if (enabled === this._enableSmoothReflections) {\r\n return;\r\n }\r\n\r\n this._enableSmoothReflections = enabled;\r\n this._updateEffectDefines();\r\n }\r\n\r\n /**\r\n * Gets the number of samples taken while computing reflections. More samples count is high,\r\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\r\n */\r\n @serialize()\r\n public get reflectionSamples(): number {\r\n return this._reflectionSamples;\r\n }\r\n\r\n /**\r\n * Sets the number of samples taken while computing reflections. More samples count is high,\r\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\r\n */\r\n public set reflectionSamples(samples: number) {\r\n if (samples === this._reflectionSamples) {\r\n return;\r\n }\r\n\r\n this._reflectionSamples = samples;\r\n this._updateEffectDefines();\r\n }\r\n\r\n /**\r\n * Gets the number of samples taken while smoothing reflections. More samples count is high,\r\n * more the post-process will require GPU power and can generate a drop in FPS.\r\n * Default value (5.0) work pretty well in all cases but can be adjusted.\r\n */\r\n @serialize()\r\n public get smoothSteps(): number {\r\n return this._smoothSteps;\r\n }\r\n\r\n /*\r\n * Sets the number of samples taken while smoothing reflections. More samples count is high,\r\n * more the post-process will require GPU power and can generate a drop in FPS.\r\n * Default value (5.0) work pretty well in all cases but can be adjusted.\r\n */\r\n public set smoothSteps(steps: number) {\r\n if (steps === this._smoothSteps) {\r\n return;\r\n }\r\n\r\n this._smoothSteps = steps;\r\n this._updateEffectDefines();\r\n }\r\n\r\n private _updateEffectDefines(): void {\r\n const defines: string[] = [];\r\n if (this._geometryBufferRenderer || this._prePassRenderer) {\r\n defines.push(\"#define SSR_SUPPORTED\");\r\n }\r\n if (this._enableSmoothReflections) {\r\n defines.push(\"#define ENABLE_SMOOTH_REFLECTIONS\");\r\n }\r\n if (this._isSceneRightHanded) {\r\n defines.push(\"#define RIGHT_HANDED_SCENE\");\r\n }\r\n\r\n defines.push(\"#define REFLECTION_SAMPLES \" + (this._reflectionSamples >> 0));\r\n defines.push(\"#define SMOOTH_STEPS \" + (this._smoothSteps >> 0));\r\n\r\n this.updateEffect(defines.join(\"\\n\"));\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ScreenSpaceReflectionPostProcess(\r\n parsedPostProcess.name,\r\n scene,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ScreenSpaceReflectionPostProcess\", ScreenSpaceReflectionPostProcess);\r\n"]}
@@ -9,6 +9,13 @@ import { serialize, SerializationHelper } from "../Misc/decorators.js";
9
9
  * See http://en.wikipedia.org/wiki/Kernel_(image_processing)
10
10
  */
11
11
  export class SharpenPostProcess extends PostProcess {
12
+ /**
13
+ * Gets a string identifying the name of the class
14
+ * @returns "SharpenPostProcess" string
15
+ */
16
+ getClassName() {
17
+ return "SharpenPostProcess";
18
+ }
12
19
  /**
13
20
  * Creates a new instance ConvolutionPostProcess
14
21
  * @param name The name of the effect.
@@ -35,13 +42,6 @@ export class SharpenPostProcess extends PostProcess {
35
42
  effect.setFloat2("sharpnessAmounts", this.edgeAmount, this.colorAmount);
36
43
  };
37
44
  }
38
- /**
39
- * Gets a string identifying the name of the class
40
- * @returns "SharpenPostProcess" string
41
- */
42
- getClassName() {
43
- return "SharpenPostProcess";
44
- }
45
45
  /**
46
46
  * @internal
47
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sharpenPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/sharpenPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKpE;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAoB/C;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACZ,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAe,EACf,QAAkB,EAClB,cAAsB,SAAS,CAAC,wBAAwB,EACxD,gBAAgB,GAAG,KAAK;QAExB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAxC5K;;WAEG;QAEI,gBAAW,GAAW,GAAG,CAAC;QACjC;;WAEG;QAEI,eAAU,GAAW,GAAG,CAAC;QAiC5B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,CAAC;IACN,CAAC;IAnCD;;;OAGG;IACI,YAAY;QACf,OAAO,oBAAoB,CAAC;IAChC,CAAC;IA+BD;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QAC5F,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,kBAAkB,CACzB,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AAjEG;IADC,SAAS,EAAE;uDACqB;AAKjC;IADC,SAAS,EAAE;sDACoB;AA8DpC,aAAa,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\nimport \"../Shaders/sharpen.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The SharpenPostProcess applies a sharpen kernel to every pixel\r\n * See http://en.wikipedia.org/wiki/Kernel_(image_processing)\r\n */\r\nexport class SharpenPostProcess extends PostProcess {\r\n /**\r\n * How much of the original color should be applied. Setting this to 0 will display edge detection. (default: 1)\r\n */\r\n @serialize()\r\n public colorAmount: number = 1.0;\r\n /**\r\n * How much sharpness should be applied (default: 0.3)\r\n */\r\n @serialize()\r\n public edgeAmount: number = 0.3;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"SharpenPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"SharpenPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance ConvolutionPostProcess\r\n * @param name The name of the effect.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false\r\n ) {\r\n super(name, \"sharpen\", [\"sharpnessAmounts\", \"screenSize\"], null, options, camera, samplingMode, engine, reusable, null, textureType, undefined, null, blockCompilation);\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat2(\"screenSize\", this.width, this.height);\r\n effect.setFloat2(\"sharpnessAmounts\", this.edgeAmount, this.colorAmount);\r\n };\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new SharpenPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.SharpenPostProcess\", SharpenPostProcess);\r\n"]}
1
+ {"version":3,"file":"sharpenPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/sharpenPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKpE;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAY/C;;;OAGG;IACI,YAAY;QACf,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACZ,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAe,EACf,QAAkB,EAClB,cAAsB,SAAS,CAAC,wBAAwB,EACxD,gBAAgB,GAAG,KAAK;QAExB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAxC5K;;WAEG;QAEI,gBAAW,GAAW,GAAG,CAAC;QACjC;;WAEG;QAEI,eAAU,GAAW,GAAG,CAAC;QAiC5B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QAC5F,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,kBAAkB,CACzB,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AAjEG;IADC,SAAS,EAAE;uDACqB;AAKjC;IADC,SAAS,EAAE;sDACoB;AA8DpC,aAAa,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\nimport \"../Shaders/sharpen.fragment\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize, SerializationHelper } from \"../Misc/decorators\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\n\r\n/**\r\n * The SharpenPostProcess applies a sharpen kernel to every pixel\r\n * See http://en.wikipedia.org/wiki/Kernel_(image_processing)\r\n */\r\nexport class SharpenPostProcess extends PostProcess {\r\n /**\r\n * How much of the original color should be applied. Setting this to 0 will display edge detection. (default: 1)\r\n */\r\n @serialize()\r\n public colorAmount: number = 1.0;\r\n /**\r\n * How much sharpness should be applied (default: 0.3)\r\n */\r\n @serialize()\r\n public edgeAmount: number = 0.3;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"SharpenPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"SharpenPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new instance ConvolutionPostProcess\r\n * @param name The name of the effect.\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n * @param textureType Type of textures used when performing the post process. (default: 0)\r\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: Engine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false\r\n ) {\r\n super(name, \"sharpen\", [\"sharpnessAmounts\", \"screenSize\"], null, options, camera, samplingMode, engine, reusable, null, textureType, undefined, null, blockCompilation);\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat2(\"screenSize\", this.width, this.height);\r\n effect.setFloat2(\"sharpnessAmounts\", this.edgeAmount, this.colorAmount);\r\n };\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string) {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new SharpenPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.textureType,\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.SharpenPostProcess\", SharpenPostProcess);\r\n"]}
@@ -5,6 +5,13 @@ import "../Shaders/stereoscopicInterlace.fragment.js";
5
5
  * StereoscopicInterlacePostProcessI used to render stereo views from a rigged camera with support for alternate line interlacing
6
6
  */
7
7
  export class StereoscopicInterlacePostProcessI extends PostProcess {
8
+ /**
9
+ * Gets a string identifying the name of the class
10
+ * @returns "StereoscopicInterlacePostProcessI" string
11
+ */
12
+ getClassName() {
13
+ return "StereoscopicInterlacePostProcessI";
14
+ }
8
15
  /**
9
16
  * Initializes a StereoscopicInterlacePostProcessI
10
17
  * @param name The name of the effect.
@@ -27,18 +34,18 @@ export class StereoscopicInterlacePostProcessI extends PostProcess {
27
34
  effect.setFloat2("stepSize", this._stepSize.x, this._stepSize.y);
28
35
  });
29
36
  }
30
- /**
31
- * Gets a string identifying the name of the class
32
- * @returns "StereoscopicInterlacePostProcessI" string
33
- */
34
- getClassName() {
35
- return "StereoscopicInterlacePostProcessI";
36
- }
37
37
  }
38
38
  /**
39
39
  * StereoscopicInterlacePostProcess used to render stereo views from a rigged camera
40
40
  */
41
41
  export class StereoscopicInterlacePostProcess extends PostProcess {
42
+ /**
43
+ * Gets a string identifying the name of the class
44
+ * @returns "StereoscopicInterlacePostProcess" string
45
+ */
46
+ getClassName() {
47
+ return "StereoscopicInterlacePostProcess";
48
+ }
42
49
  /**
43
50
  * Initializes a StereoscopicInterlacePostProcess
44
51
  * @param name The name of the effect.
@@ -60,12 +67,5 @@ export class StereoscopicInterlacePostProcess extends PostProcess {
60
67
  effect.setFloat2("stepSize", this._stepSize.x, this._stepSize.y);
61
68
  });
62
69
  }
63
- /**
64
- * Gets a string identifying the name of the class
65
- * @returns "StereoscopicInterlacePostProcess" string
66
- */
67
- getClassName() {
68
- return "StereoscopicInterlacePostProcess";
69
- }
70
70
  }
71
71
  //# sourceMappingURL=stereoscopicInterlacePostProcess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicInterlacePostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/stereoscopicInterlacePostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Vector2 } from \"../Maths/math.vector\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { Engine } from \"../Engines/engine\";\r\n\r\nimport \"../Shaders/stereoscopicInterlace.fragment\";\r\n\r\n/**\r\n * StereoscopicInterlacePostProcessI used to render stereo views from a rigged camera with support for alternate line interlacing\r\n */\r\nexport class StereoscopicInterlacePostProcessI extends PostProcess {\r\n private _stepSize: Vector2;\r\n private _passedProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"StereoscopicInterlacePostProcessI\" string\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicInterlacePostProcessI\";\r\n }\r\n\r\n /**\r\n * Initializes a StereoscopicInterlacePostProcessI\r\n * @param name The name of the effect.\r\n * @param rigCameras The rig cameras to be applied to the post process\r\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\r\n * @param isStereoscopicInterlaced If the rendered results are alternate line interlaced\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(name: string, rigCameras: Camera[], isStereoscopicHoriz: boolean, isStereoscopicInterlaced: boolean, samplingMode?: number, engine?: Engine, reusable?: boolean) {\r\n super(\r\n name,\r\n \"stereoscopicInterlace\",\r\n [\"stepSize\"],\r\n [\"camASampler\"],\r\n 1,\r\n rigCameras[1],\r\n samplingMode,\r\n engine,\r\n reusable,\r\n isStereoscopicInterlaced ? \"#define IS_STEREOSCOPIC_INTERLACED 1\" : isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined\r\n );\r\n\r\n this._passedProcess = rigCameras[0]._rigPostProcess;\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n\r\n this.onSizeChangedObservable.add(() => {\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n });\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\r\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\r\n });\r\n }\r\n}\r\n/**\r\n * StereoscopicInterlacePostProcess used to render stereo views from a rigged camera\r\n */\r\nexport class StereoscopicInterlacePostProcess extends PostProcess {\r\n private _stepSize: Vector2;\r\n private _passedProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"StereoscopicInterlacePostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicInterlacePostProcess\";\r\n }\r\n\r\n /**\r\n * Initializes a StereoscopicInterlacePostProcess\r\n * @param name The name of the effect.\r\n * @param rigCameras The rig cameras to be applied to the post process\r\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(name: string, rigCameras: Camera[], isStereoscopicHoriz: boolean, samplingMode?: number, engine?: Engine, reusable?: boolean) {\r\n super(\r\n name,\r\n \"stereoscopicInterlace\",\r\n [\"stepSize\"],\r\n [\"camASampler\"],\r\n 1,\r\n rigCameras[1],\r\n samplingMode,\r\n engine,\r\n reusable,\r\n isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined\r\n );\r\n\r\n this._passedProcess = rigCameras[0]._rigPostProcess;\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n\r\n this.onSizeChangedObservable.add(() => {\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n });\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\r\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicInterlacePostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/stereoscopicInterlacePostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Vector2 } from \"../Maths/math.vector\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { Engine } from \"../Engines/engine\";\r\n\r\nimport \"../Shaders/stereoscopicInterlace.fragment\";\r\n\r\n/**\r\n * StereoscopicInterlacePostProcessI used to render stereo views from a rigged camera with support for alternate line interlacing\r\n */\r\nexport class StereoscopicInterlacePostProcessI extends PostProcess {\r\n private _stepSize: Vector2;\r\n private _passedProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"StereoscopicInterlacePostProcessI\" string\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicInterlacePostProcessI\";\r\n }\r\n\r\n /**\r\n * Initializes a StereoscopicInterlacePostProcessI\r\n * @param name The name of the effect.\r\n * @param rigCameras The rig cameras to be applied to the post process\r\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\r\n * @param isStereoscopicInterlaced If the rendered results are alternate line interlaced\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(name: string, rigCameras: Camera[], isStereoscopicHoriz: boolean, isStereoscopicInterlaced: boolean, samplingMode?: number, engine?: Engine, reusable?: boolean) {\r\n super(\r\n name,\r\n \"stereoscopicInterlace\",\r\n [\"stepSize\"],\r\n [\"camASampler\"],\r\n 1,\r\n rigCameras[1],\r\n samplingMode,\r\n engine,\r\n reusable,\r\n isStereoscopicInterlaced ? \"#define IS_STEREOSCOPIC_INTERLACED 1\" : isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined\r\n );\r\n\r\n this._passedProcess = rigCameras[0]._rigPostProcess;\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n\r\n this.onSizeChangedObservable.add(() => {\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n });\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\r\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\r\n });\r\n }\r\n}\r\n/**\r\n * StereoscopicInterlacePostProcess used to render stereo views from a rigged camera\r\n */\r\nexport class StereoscopicInterlacePostProcess extends PostProcess {\r\n private _stepSize: Vector2;\r\n private _passedProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"StereoscopicInterlacePostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicInterlacePostProcess\";\r\n }\r\n\r\n /**\r\n * Initializes a StereoscopicInterlacePostProcess\r\n * @param name The name of the effect.\r\n * @param rigCameras The rig cameras to be applied to the post process\r\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(name: string, rigCameras: Camera[], isStereoscopicHoriz: boolean, samplingMode?: number, engine?: Engine, reusable?: boolean) {\r\n super(\r\n name,\r\n \"stereoscopicInterlace\",\r\n [\"stepSize\"],\r\n [\"camASampler\"],\r\n 1,\r\n rigCameras[1],\r\n samplingMode,\r\n engine,\r\n reusable,\r\n isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined\r\n );\r\n\r\n this._passedProcess = rigCameras[0]._rigPostProcess;\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n\r\n this.onSizeChangedObservable.add(() => {\r\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\r\n });\r\n this.onApplyObservable.add((effect: Effect) => {\r\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\r\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\r\n });\r\n }\r\n}\r\n"]}
@@ -17,6 +17,13 @@ export var TonemappingOperator;
17
17
  * Defines a post process to apply tone mapping
18
18
  */
19
19
  export class TonemapPostProcess extends PostProcess {
20
+ /**
21
+ * Gets a string identifying the name of the class
22
+ * @returns "TonemapPostProcess" string
23
+ */
24
+ getClassName() {
25
+ return "TonemapPostProcess";
26
+ }
20
27
  /**
21
28
  * Creates a new TonemapPostProcess
22
29
  * @param name defines the name of the postprocess
@@ -53,12 +60,5 @@ export class TonemapPostProcess extends PostProcess {
53
60
  effect.setFloat("_ExposureAdjustment", this.exposureAdjustment);
54
61
  };
55
62
  }
56
- /**
57
- * Gets a string identifying the name of the class
58
- * @returns "TonemapPostProcess" string
59
- */
60
- getClassName() {
61
- return "TonemapPostProcess";
62
- }
63
63
  }
64
64
  //# sourceMappingURL=tonemapPostProcess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tonemapPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/tonemapPostProcess.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,6BAA6B,CAAC;AAKrC,4CAA4C;AAC5C,MAAM,CAAN,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC3B,YAAY;IACZ,+DAAS,CAAA;IACT,eAAe;IACf,qEAAY,CAAA;IACZ,iBAAiB;IACjB,yEAAc,CAAA;IACd,mBAAmB;IACnB,6EAAgB,CAAA;AACpB,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,QAS9B;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAS/C;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACJ,SAA8B;IACtC,+CAA+C;IACxC,kBAA0B,EACjC,MAAwB,EACxB,eAAuB,SAAS,CAAC,6BAA6B,EAC9D,MAAe,EACf,aAAa,GAAG,SAAS,CAAC,wBAAwB,EAClD,QAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAThH,cAAS,GAAT,SAAS,CAAqB;QAE/B,uBAAkB,GAAlB,kBAAkB,CAAQ;QASjC,IAAI,OAAO,GAAG,UAAU,CAAC;QAEzB,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,KAAK,EAAE;YAC9C,OAAO,IAAI,mBAAmB,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,QAAQ,EAAE;YACxD,OAAO,IAAI,sBAAsB,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,UAAU,EAAE;YAC1D,OAAO,IAAI,kCAAkC,CAAC;SACjD;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,YAAY,EAAE;YAC5D,OAAO,IAAI,0BAA0B,CAAC;SACzC;QAED,2CAA2C;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC;IACN,CAAC;IAlDD;;;OAGG;IACI,YAAY;QACf,OAAO,oBAAoB,CAAC;IAChC,CAAC;CA6CJ","sourcesContent":["import type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\nimport \"../Shaders/tonemap.fragment\";\r\nimport type { Nullable } from \"../types\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\n\r\n/** Defines operator used for tonemapping */\r\nexport enum TonemappingOperator {\r\n /** Hable */\r\n Hable = 0,\r\n /** Reinhard */\r\n Reinhard = 1,\r\n /** HejiDawson */\r\n HejiDawson = 2,\r\n /** Photographic */\r\n Photographic = 3,\r\n}\r\n\r\n/**\r\n * Defines a post process to apply tone mapping\r\n */\r\nexport class TonemapPostProcess extends PostProcess {\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"TonemapPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"TonemapPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new TonemapPostProcess\r\n * @param name defines the name of the postprocess\r\n * @param _operator defines the operator to use\r\n * @param exposureAdjustment defines the required exposure adjustment\r\n * @param camera defines the camera to use (can be null)\r\n * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)\r\n * @param engine defines the hosting engine (can be ignore if camera is set)\r\n * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n private _operator: TonemappingOperator,\r\n /** Defines the required exposure adjustment */\r\n public exposureAdjustment: number,\r\n camera: Nullable<Camera>,\r\n samplingMode: number = Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\r\n engine?: Engine,\r\n textureFormat = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"tonemap\", [\"_ExposureAdjustment\"], null, 1.0, camera, samplingMode, engine, reusable, null, textureFormat);\r\n\r\n let defines = \"#define \";\r\n\r\n if (this._operator === TonemappingOperator.Hable) {\r\n defines += \"HABLE_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.Reinhard) {\r\n defines += \"REINHARD_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.HejiDawson) {\r\n defines += \"OPTIMIZED_HEJIDAWSON_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.Photographic) {\r\n defines += \"PHOTOGRAPHIC_TONEMAPPING\";\r\n }\r\n\r\n //sadly a second call to create the effect.\r\n this.updateEffect(defines);\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat(\"_ExposureAdjustment\", this.exposureAdjustment);\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"tonemapPostProcess.js","sourceRoot":"","sources":["../../../../lts/core/generated/PostProcesses/tonemapPostProcess.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,6BAA6B,CAAC;AAKrC,4CAA4C;AAC5C,MAAM,CAAN,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC3B,YAAY;IACZ,+DAAS,CAAA;IACT,eAAe;IACf,qEAAY,CAAA;IACZ,iBAAiB;IACjB,yEAAc,CAAA;IACd,mBAAmB;IACnB,6EAAgB,CAAA;AACpB,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,QAS9B;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAC/C;;;OAGG;IACI,YAAY;QACf,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACJ,SAA8B;IACtC,+CAA+C;IACxC,kBAA0B,EACjC,MAAwB,EACxB,eAAuB,SAAS,CAAC,6BAA6B,EAC9D,MAAe,EACf,aAAa,GAAG,SAAS,CAAC,wBAAwB,EAClD,QAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAThH,cAAS,GAAT,SAAS,CAAqB;QAE/B,uBAAkB,GAAlB,kBAAkB,CAAQ;QASjC,IAAI,OAAO,GAAG,UAAU,CAAC;QAEzB,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,KAAK,EAAE;YAC9C,OAAO,IAAI,mBAAmB,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,QAAQ,EAAE;YACxD,OAAO,IAAI,sBAAsB,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,UAAU,EAAE;YAC1D,OAAO,IAAI,kCAAkC,CAAC;SACjD;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,YAAY,EAAE;YAC5D,OAAO,IAAI,0BAA0B,CAAC;SACzC;QAED,2CAA2C;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\nimport \"../Shaders/tonemap.fragment\";\r\nimport type { Nullable } from \"../types\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\n\r\n/** Defines operator used for tonemapping */\r\nexport enum TonemappingOperator {\r\n /** Hable */\r\n Hable = 0,\r\n /** Reinhard */\r\n Reinhard = 1,\r\n /** HejiDawson */\r\n HejiDawson = 2,\r\n /** Photographic */\r\n Photographic = 3,\r\n}\r\n\r\n/**\r\n * Defines a post process to apply tone mapping\r\n */\r\nexport class TonemapPostProcess extends PostProcess {\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"TonemapPostProcess\" string\r\n */\r\n public getClassName(): string {\r\n return \"TonemapPostProcess\";\r\n }\r\n\r\n /**\r\n * Creates a new TonemapPostProcess\r\n * @param name defines the name of the postprocess\r\n * @param _operator defines the operator to use\r\n * @param exposureAdjustment defines the required exposure adjustment\r\n * @param camera defines the camera to use (can be null)\r\n * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)\r\n * @param engine defines the hosting engine (can be ignore if camera is set)\r\n * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n private _operator: TonemappingOperator,\r\n /** Defines the required exposure adjustment */\r\n public exposureAdjustment: number,\r\n camera: Nullable<Camera>,\r\n samplingMode: number = Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\r\n engine?: Engine,\r\n textureFormat = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"tonemap\", [\"_ExposureAdjustment\"], null, 1.0, camera, samplingMode, engine, reusable, null, textureFormat);\r\n\r\n let defines = \"#define \";\r\n\r\n if (this._operator === TonemappingOperator.Hable) {\r\n defines += \"HABLE_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.Reinhard) {\r\n defines += \"REINHARD_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.HejiDawson) {\r\n defines += \"OPTIMIZED_HEJIDAWSON_TONEMAPPING\";\r\n } else if (this._operator === TonemappingOperator.Photographic) {\r\n defines += \"PHOTOGRAPHIC_TONEMAPPING\";\r\n }\r\n\r\n //sadly a second call to create the effect.\r\n this.updateEffect(defines);\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setFloat(\"_ExposureAdjustment\", this.exposureAdjustment);\r\n };\r\n }\r\n}\r\n"]}
@@ -23,6 +23,17 @@ import { RegisterClass } from "../Misc/typeStore.js";
23
23
  * Inspired by https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-13-volumetric-light-scattering-post-process
24
24
  */
25
25
  export class VolumetricLightScatteringPostProcess extends PostProcess {
26
+ /**
27
+ * @internal
28
+ * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead
29
+ */
30
+ get useDiffuseColor() {
31
+ Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
32
+ return false;
33
+ }
34
+ set useDiffuseColor(useDiffuseColor) {
35
+ Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
36
+ }
26
37
  /**
27
38
  * @constructor
28
39
  * @param name The post-process name
@@ -99,17 +110,6 @@ export class VolumetricLightScatteringPostProcess extends PostProcess {
99
110
  effect.setVector2("meshPositionOnScreen", this._screenCoordinates);
100
111
  });
101
112
  }
102
- /**
103
- * @internal
104
- * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead
105
- */
106
- get useDiffuseColor() {
107
- Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
108
- return false;
109
- }
110
- set useDiffuseColor(useDiffuseColor) {
111
- Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
112
- }
113
113
  /**
114
114
  * Returns the string "VolumetricLightScatteringPostProcess"
115
115
  * @returns "VolumetricLightScatteringPostProcess"