@onerjs/core 8.56.4 → 9.0.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 (482) hide show
  1. package/Animations/animatable.core.js +36 -0
  2. package/Animations/animatable.core.js.map +1 -1
  3. package/Animations/animationGroup.pure.d.ts +61 -1
  4. package/Animations/animationGroup.pure.js +191 -2
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/index.d.ts +1 -0
  7. package/Animations/index.js +1 -0
  8. package/Animations/index.js.map +1 -1
  9. package/Animations/pure.d.ts +1 -0
  10. package/Animations/pure.js +1 -0
  11. package/Animations/pure.js.map +1 -1
  12. package/Animations/rootMotion.d.ts +560 -0
  13. package/Animations/rootMotion.js +1709 -0
  14. package/Animations/rootMotion.js.map +1 -0
  15. package/Animations/runtimeAnimation.d.ts +57 -0
  16. package/Animations/runtimeAnimation.js +127 -3
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Cameras/arcRotateCamera.pure.d.ts +2 -0
  19. package/Cameras/arcRotateCamera.pure.js +2 -0
  20. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  21. package/Cameras/targetCamera.pure.d.ts +2 -0
  22. package/Cameras/targetCamera.pure.js +7 -1
  23. package/Cameras/targetCamera.pure.js.map +1 -1
  24. package/Collisions/gpuPicker.js +5 -5
  25. package/Collisions/gpuPicker.js.map +1 -1
  26. package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
  27. package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
  28. package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
  29. package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
  30. package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
  31. package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
  32. package/Engines/Extensions/engine.multiRender.pure.js +63 -0
  33. package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
  34. package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
  35. package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
  36. package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
  37. package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
  38. package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
  39. package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
  40. package/Engines/Extensions/index.d.ts +1 -0
  41. package/Engines/Extensions/index.js +1 -0
  42. package/Engines/Extensions/index.js.map +1 -1
  43. package/Engines/Extensions/pure.d.ts +1 -1
  44. package/Engines/Extensions/pure.js +1 -1
  45. package/Engines/Extensions/pure.js.map +1 -1
  46. package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
  47. package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
  48. package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
  49. package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
  50. package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
  51. package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
  52. package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
  53. package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
  54. package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
  55. package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
  56. package/Engines/WebGPU/Extensions/index.d.ts +1 -0
  57. package/Engines/WebGPU/Extensions/index.js +1 -0
  58. package/Engines/WebGPU/Extensions/index.js.map +1 -1
  59. package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
  60. package/Engines/WebGPU/Extensions/pure.js +1 -1
  61. package/Engines/WebGPU/Extensions/pure.js.map +1 -1
  62. package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
  63. package/Engines/WebGPU/webgpuBundleList.js +4 -0
  64. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  65. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
  66. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  67. package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
  68. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  69. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  70. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  71. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
  72. package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
  73. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  74. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
  75. package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
  76. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  77. package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
  78. package/Engines/WebGPU/webgpuTextureManager.js +286 -13
  79. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  80. package/Engines/abstractEngine.pure.d.ts +2 -0
  81. package/Engines/abstractEngine.pure.js +7 -3
  82. package/Engines/abstractEngine.pure.js.map +1 -1
  83. package/Engines/constants.d.ts +4 -0
  84. package/Engines/constants.js +4 -0
  85. package/Engines/constants.js.map +1 -1
  86. package/Engines/thinEngine.pure.d.ts +14 -0
  87. package/Engines/thinEngine.pure.js +48 -12
  88. package/Engines/thinEngine.pure.js.map +1 -1
  89. package/Engines/thinNativeEngine.pure.d.ts +1 -0
  90. package/Engines/thinNativeEngine.pure.js +7 -1
  91. package/Engines/thinNativeEngine.pure.js.map +1 -1
  92. package/Engines/thinWebGPUEngine.d.ts +4 -0
  93. package/Engines/thinWebGPUEngine.js +10 -1
  94. package/Engines/thinWebGPUEngine.js.map +1 -1
  95. package/Engines/webgpuEngine.pure.d.ts +5 -2
  96. package/Engines/webgpuEngine.pure.js +48 -13
  97. package/Engines/webgpuEngine.pure.js.map +1 -1
  98. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
  99. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
  100. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
  101. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
  102. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
  103. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
  104. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
  105. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
  106. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
  107. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
  108. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
  109. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
  110. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
  111. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
  112. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
  113. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
  114. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
  115. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
  116. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
  117. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
  118. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +2 -0
  119. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +4 -0
  120. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
  121. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
  122. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
  123. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
  124. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +53 -10
  125. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
  126. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
  127. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
  128. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
  129. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
  130. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
  131. package/FlowGraph/flowGraph.d.ts +4 -0
  132. package/FlowGraph/flowGraph.js +38 -7
  133. package/FlowGraph/flowGraph.js.map +1 -1
  134. package/FlowGraph/flowGraphBlock.js +3 -0
  135. package/FlowGraph/flowGraphBlock.js.map +1 -1
  136. package/FlowGraph/flowGraphConnection.d.ts +7 -0
  137. package/FlowGraph/flowGraphConnection.js +7 -0
  138. package/FlowGraph/flowGraphConnection.js.map +1 -1
  139. package/FlowGraph/flowGraphContext.d.ts +2 -1
  140. package/FlowGraph/flowGraphContext.js +4 -3
  141. package/FlowGraph/flowGraphContext.js.map +1 -1
  142. package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
  143. package/FlowGraph/flowGraphCoordinator.js +47 -16
  144. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  145. package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
  146. package/FlowGraph/flowGraphEventBlock.js +7 -0
  147. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  148. package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
  149. package/FlowGraph/flowGraphHostResolver.js.map +1 -1
  150. package/FlowGraph/flowGraphParser.js +60 -2
  151. package/FlowGraph/flowGraphParser.js.map +1 -1
  152. package/FlowGraph/serialization.d.ts +2 -0
  153. package/FlowGraph/serialization.js +10 -22
  154. package/FlowGraph/serialization.js.map +1 -1
  155. package/FlowGraph/typeDefinitions.d.ts +8 -0
  156. package/FlowGraph/typeDefinitions.js.map +1 -1
  157. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
  158. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
  159. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
  160. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
  161. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
  162. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
  163. package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
  164. package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
  165. package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
  166. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
  167. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  168. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
  169. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
  170. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/allBlocks.pure.js +2 -0
  172. package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  174. package/FrameGraph/Node/Blocks/index.js +1 -0
  175. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  176. package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
  177. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  178. package/FrameGraph/Node/Blocks/pure.d.ts +1 -0
  179. package/FrameGraph/Node/Blocks/pure.js +1 -0
  180. package/FrameGraph/Node/Blocks/pure.js.map +1 -1
  181. package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
  182. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
  183. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
  184. package/FrameGraph/Node/nodeRenderGraph.js +1 -1
  185. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  186. package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
  187. package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
  188. package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
  189. package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
  190. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
  191. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  192. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
  193. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
  194. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
  195. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
  196. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +69 -33
  197. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  198. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
  199. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  200. package/FrameGraph/frameGraphObjectList.d.ts +6 -1
  201. package/FrameGraph/frameGraphObjectList.js.map +1 -1
  202. package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
  203. package/FrameGraph/frameGraphRenderContext.js +5 -5
  204. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  205. package/FrameGraph/index.d.ts +1 -0
  206. package/FrameGraph/index.js +1 -0
  207. package/FrameGraph/index.js.map +1 -1
  208. package/FrameGraph/pure.d.ts +1 -0
  209. package/FrameGraph/pure.js +1 -0
  210. package/FrameGraph/pure.js.map +1 -1
  211. package/Inputs/scene.inputManager.d.ts +4 -0
  212. package/Inputs/scene.inputManager.js +50 -8
  213. package/Inputs/scene.inputManager.js.map +1 -1
  214. package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +5 -5
  215. package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
  216. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +5 -5
  217. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  218. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
  219. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +151 -47
  220. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  221. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
  222. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  223. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
  224. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  225. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
  226. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  227. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
  228. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  229. package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
  230. package/Materials/Node/nodeMaterial.pure.js +4 -0
  231. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  232. package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
  233. package/Materials/Node/nodeMaterialBuildState.js +25 -3
  234. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  235. package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
  236. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
  237. package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +13 -14
  238. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +6 -6
  239. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  240. package/Materials/Textures/baseTexture.pure.js +3 -0
  241. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  242. package/Materials/Textures/cubeTexture.pure.js +1 -1
  243. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  244. package/Materials/Textures/internalTexture.d.ts +8 -1
  245. package/Materials/Textures/internalTexture.js +9 -2
  246. package/Materials/Textures/internalTexture.js.map +1 -1
  247. package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
  248. package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
  249. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  250. package/Materials/Textures/rawTexture3D.js +1 -1
  251. package/Materials/Textures/rawTexture3D.js.map +1 -1
  252. package/Materials/Textures/textureHelper.functions.d.ts +14 -0
  253. package/Materials/Textures/textureHelper.functions.js +24 -0
  254. package/Materials/Textures/textureHelper.functions.js.map +1 -1
  255. package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
  256. package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
  257. package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
  258. package/Materials/index.d.ts +1 -0
  259. package/Materials/index.js +1 -0
  260. package/Materials/index.js.map +1 -1
  261. package/Materials/materialHelper.geometryrendering.d.ts +46 -1
  262. package/Materials/materialHelper.geometryrendering.js +105 -8
  263. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  264. package/Materials/prepass.defines.d.ts +2 -0
  265. package/Materials/prepass.defines.js +2 -0
  266. package/Materials/prepass.defines.js.map +1 -1
  267. package/Materials/pure.d.ts +1 -0
  268. package/Materials/pure.js +1 -0
  269. package/Materials/pure.js.map +1 -1
  270. package/Materials/standardMaterial.pure.d.ts +2 -0
  271. package/Materials/standardMaterial.pure.js +6 -3
  272. package/Materials/standardMaterial.pure.js.map +1 -1
  273. package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
  274. package/Meshes/Builders/polygonBuilder.pure.js +4 -1
  275. package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
  276. package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
  277. package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
  278. package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
  279. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +3 -14
  280. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +20 -24
  281. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  282. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +2 -0
  283. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +11 -4
  284. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  285. package/Meshes/abstractMesh.pure.d.ts +18 -0
  286. package/Meshes/abstractMesh.pure.js +22 -0
  287. package/Meshes/abstractMesh.pure.js.map +1 -1
  288. package/Meshes/index.d.ts +1 -0
  289. package/Meshes/index.js +1 -0
  290. package/Meshes/index.js.map +1 -1
  291. package/Meshes/instancedMesh.pure.d.ts +5 -0
  292. package/Meshes/instancedMesh.pure.js +12 -0
  293. package/Meshes/instancedMesh.pure.js.map +1 -1
  294. package/Meshes/mesh.pure.js +23 -8
  295. package/Meshes/mesh.pure.js.map +1 -1
  296. package/Meshes/meshBlendingTag.d.ts +47 -0
  297. package/Meshes/meshBlendingTag.js +64 -0
  298. package/Meshes/meshBlendingTag.js.map +1 -0
  299. package/Meshes/polygonMesh.js +2 -2
  300. package/Meshes/polygonMesh.js.map +1 -1
  301. package/Meshes/pure.d.ts +1 -0
  302. package/Meshes/pure.js +1 -0
  303. package/Meshes/pure.js.map +1 -1
  304. package/Misc/fileTools.pure.js +21 -0
  305. package/Misc/fileTools.pure.js.map +1 -1
  306. package/Misc/snapshotRenderingHelper.js +2 -2
  307. package/Misc/snapshotRenderingHelper.js.map +1 -1
  308. package/Misc/tools.pure.js +1 -1
  309. package/Misc/tools.pure.js.map +1 -1
  310. package/Particles/gpuParticleSystem.pure.d.ts +2 -0
  311. package/Particles/gpuParticleSystem.pure.js +89 -28
  312. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  313. package/Particles/thinParticleSystem.pure.d.ts +2 -0
  314. package/Particles/thinParticleSystem.pure.js +84 -19
  315. package/Particles/thinParticleSystem.pure.js.map +1 -1
  316. package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
  317. package/Particles/webgl2ParticleSystem.pure.js +12 -4
  318. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  319. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
  320. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
  321. package/PostProcesses/index.d.ts +2 -0
  322. package/PostProcesses/index.js +2 -0
  323. package/PostProcesses/index.js.map +1 -1
  324. package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
  325. package/PostProcesses/meshBlendingBlueNoise.js +77 -0
  326. package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
  327. package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
  328. package/PostProcesses/meshBlendingPostProcess.js +315 -0
  329. package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
  330. package/PostProcesses/pure.d.ts +2 -0
  331. package/PostProcesses/pure.js +2 -0
  332. package/PostProcesses/pure.js.map +1 -1
  333. package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
  334. package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
  335. package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
  336. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
  337. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  338. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +8 -8
  339. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  340. package/Rendering/boundingBoxRenderer.pure.js +2 -1
  341. package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
  342. package/Rendering/depthRenderer.pure.js +3 -4
  343. package/Rendering/depthRenderer.pure.js.map +1 -1
  344. package/Rendering/edgesRenderer.pure.d.ts +4 -2
  345. package/Rendering/edgesRenderer.pure.js +11 -2
  346. package/Rendering/edgesRenderer.pure.js.map +1 -1
  347. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +10 -0
  348. package/Rendering/fluidRenderer/fluidRenderingObject.js +20 -0
  349. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  350. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +9 -3
  351. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +14 -9
  352. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  353. package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
  354. package/Rendering/geometryBufferRenderer.pure.js +126 -17
  355. package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
  356. package/Rendering/objectRenderer.d.ts +7 -1
  357. package/Rendering/objectRenderer.js +45 -7
  358. package/Rendering/objectRenderer.js.map +1 -1
  359. package/Rendering/outlineRenderer.pure.js +6 -2
  360. package/Rendering/outlineRenderer.pure.js.map +1 -1
  361. package/Rendering/renderingManager.d.ts +1 -1
  362. package/Rendering/renderingManager.js +5 -4
  363. package/Rendering/renderingManager.js.map +1 -1
  364. package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
  365. package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
  366. package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
  367. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
  368. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  369. package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
  370. package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
  371. package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
  372. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
  373. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  374. package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
  375. package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
  376. package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
  377. package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  378. package/Shaders/ShadersInclude/pbrDebug.js +6 -2
  379. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  380. package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
  381. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  382. package/Shaders/default.fragment.js +31 -40
  383. package/Shaders/default.fragment.js.map +1 -1
  384. package/Shaders/depthOfField.fragment.js +13 -9
  385. package/Shaders/depthOfField.fragment.js.map +1 -1
  386. package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
  387. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
  388. package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
  389. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
  390. package/Shaders/gaussianSplatting.fragment.js +63 -3
  391. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  392. package/Shaders/gaussianSplatting.vertex.js +80 -0
  393. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  394. package/Shaders/geometry.fragment.js +17 -11
  395. package/Shaders/geometry.fragment.js.map +1 -1
  396. package/Shaders/gpuRenderParticles.fragment.js +43 -1
  397. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  398. package/Shaders/gpuRenderParticles.vertex.js +96 -16
  399. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  400. package/Shaders/meshBlending.fragment.d.ts +5 -0
  401. package/Shaders/meshBlending.fragment.js +519 -0
  402. package/Shaders/meshBlending.fragment.js.map +1 -0
  403. package/Shaders/particles.fragment.js +43 -1
  404. package/Shaders/particles.fragment.js.map +1 -1
  405. package/Shaders/particles.vertex.js +84 -3
  406. package/Shaders/particles.vertex.js.map +1 -1
  407. package/Shaders/sprites.fragment.js +52 -2
  408. package/Shaders/sprites.fragment.js.map +1 -1
  409. package/Shaders/sprites.vertex.js +62 -1
  410. package/Shaders/sprites.vertex.js.map +1 -1
  411. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
  412. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
  413. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
  414. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
  415. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
  416. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
  417. package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
  418. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  419. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
  420. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
  421. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
  422. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
  423. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
  424. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
  425. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
  426. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
  427. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  428. package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
  429. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  430. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
  431. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
  432. package/ShadersWGSL/default.fragment.js +17 -48
  433. package/ShadersWGSL/default.fragment.js.map +1 -1
  434. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
  435. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
  436. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
  437. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
  438. package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
  439. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  440. package/ShadersWGSL/gaussianSplatting.vertex.js +80 -0
  441. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  442. package/ShadersWGSL/geometry.fragment.js +37 -2
  443. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  444. package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
  445. package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
  446. package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
  447. package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
  448. package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
  449. package/ShadersWGSL/meshBlending.fragment.js +576 -0
  450. package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
  451. package/ShadersWGSL/openpbr.fragment.js +2 -1
  452. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  453. package/ShadersWGSL/particles.fragment.js +45 -1
  454. package/ShadersWGSL/particles.fragment.js.map +1 -1
  455. package/ShadersWGSL/particles.vertex.js +86 -4
  456. package/ShadersWGSL/particles.vertex.js.map +1 -1
  457. package/ShadersWGSL/pbr.fragment.js +2 -1
  458. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  459. package/ShadersWGSL/sprites.fragment.js +56 -2
  460. package/ShadersWGSL/sprites.fragment.js.map +1 -1
  461. package/ShadersWGSL/sprites.vertex.js +62 -1
  462. package/ShadersWGSL/sprites.vertex.js.map +1 -1
  463. package/Sprites/spriteManager.d.ts +13 -0
  464. package/Sprites/spriteManager.js +15 -0
  465. package/Sprites/spriteManager.js.map +1 -1
  466. package/Sprites/spriteRenderer.d.ts +24 -1
  467. package/Sprites/spriteRenderer.js +368 -50
  468. package/Sprites/spriteRenderer.js.map +1 -1
  469. package/Sprites/thinSprite.d.ts +4 -0
  470. package/Sprites/thinSprite.js +4 -0
  471. package/Sprites/thinSprite.js.map +1 -1
  472. package/States/alphaCullingState.d.ts +3 -1
  473. package/States/alphaCullingState.js +18 -3
  474. package/States/alphaCullingState.js.map +1 -1
  475. package/XR/webXRDefaultExperience.d.ts +5 -1
  476. package/XR/webXRDefaultExperience.js.map +1 -1
  477. package/XR/webXREnterExitUI.d.ts +2 -1
  478. package/XR/webXREnterExitUI.js.map +1 -1
  479. package/package.json +1 -1
  480. package/scene.pure.d.ts +23 -0
  481. package/scene.pure.js +35 -0
  482. package/scene.pure.js.map +1 -1
@@ -13,6 +13,7 @@ export * from "./filterPostProcessBlock.pure.js";
13
13
  export * from "./fxaaPostProcessBlock.pure.js";
14
14
  export * from "./grainPostProcessBlock.pure.js";
15
15
  export * from "./imageProcessingPostProcessBlock.pure.js";
16
+ export * from "./meshBlendingPostProcessBlock.pure.js";
16
17
  export * from "./motionBlurPostProcessBlock.pure.js";
17
18
  export * from "./passPostProcessBlock.pure.js";
18
19
  export * from "./screenSpaceCurvaturePostProcessBlock.pure.js";
@@ -1 +1 @@
1
- {"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./anaglyphPostProcessBlock.pure\";\nexport * from \"./blackAndWhitePostProcessBlock.pure\";\nexport * from \"./bloomPostProcessBlock.pure\";\nexport * from \"./blurPostProcessBlock.pure\";\nexport * from \"./chromaticAberrationPostProcessBlock.pure\";\nexport * from \"./circleOfConfusionPostProcessBlock.pure\";\nexport * from \"./colorCorrectionPostProcessBlock.pure\";\nexport * from \"./convolutionPostProcessBlock.pure\";\nexport * from \"./depthOfFieldPostProcessBlock.pure\";\nexport * from \"./extractHighlightsPostProcessBlock.pure\";\nexport * from \"./filterPostProcessBlock.pure\";\nexport * from \"./fxaaPostProcessBlock.pure\";\nexport * from \"./grainPostProcessBlock.pure\";\nexport * from \"./imageProcessingPostProcessBlock.pure\";\nexport * from \"./motionBlurPostProcessBlock.pure\";\nexport * from \"./passPostProcessBlock.pure\";\nexport * from \"./screenSpaceCurvaturePostProcessBlock.pure\";\nexport * from \"./sharpenPostProcessBlock.pure\";\nexport * from \"./ssao2PostProcessBlock.pure\";\nexport * from \"./ssrPostProcessBlock.pure\";\nexport * from \"./taaPostProcessBlock.pure\";\nexport * from \"./tonemapPostProcessBlock.pure\";\nexport * from \"./volumetricLightingBlock.pure\";\n"]}
1
+ {"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./anaglyphPostProcessBlock.pure\";\nexport * from \"./blackAndWhitePostProcessBlock.pure\";\nexport * from \"./bloomPostProcessBlock.pure\";\nexport * from \"./blurPostProcessBlock.pure\";\nexport * from \"./chromaticAberrationPostProcessBlock.pure\";\nexport * from \"./circleOfConfusionPostProcessBlock.pure\";\nexport * from \"./colorCorrectionPostProcessBlock.pure\";\nexport * from \"./convolutionPostProcessBlock.pure\";\nexport * from \"./depthOfFieldPostProcessBlock.pure\";\nexport * from \"./extractHighlightsPostProcessBlock.pure\";\nexport * from \"./filterPostProcessBlock.pure\";\nexport * from \"./fxaaPostProcessBlock.pure\";\nexport * from \"./grainPostProcessBlock.pure\";\nexport * from \"./imageProcessingPostProcessBlock.pure\";\nexport * from \"./meshBlendingPostProcessBlock.pure\";\nexport * from \"./motionBlurPostProcessBlock.pure\";\nexport * from \"./passPostProcessBlock.pure\";\nexport * from \"./screenSpaceCurvaturePostProcessBlock.pure\";\nexport * from \"./sharpenPostProcessBlock.pure\";\nexport * from \"./ssao2PostProcessBlock.pure\";\nexport * from \"./ssrPostProcessBlock.pure\";\nexport * from \"./taaPostProcessBlock.pure\";\nexport * from \"./tonemapPostProcessBlock.pure\";\nexport * from \"./volumetricLightingBlock.pure\";\n"]}
@@ -412,11 +412,11 @@ let NodeRenderGraphBaseObjectRendererBlock = (() => {
412
412
  this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;
413
413
  this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;
414
414
  this.oitPassCount = serializationObject.oitPassCount ?? 5;
415
- this.renderParticles = serializationObject.renderParticles ?? true;
416
- this.renderSprites = serializationObject.renderSprites ?? true;
415
+ this.renderParticles = serializationObject.renderParticles ?? this.renderParticles;
416
+ this.renderSprites = serializationObject.renderSprites ?? this.renderSprites;
417
417
  this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;
418
- this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? true;
419
- this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? true;
418
+ this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? this.enableBoundingBoxRendering;
419
+ this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? this.enableOutlineRendering;
420
420
  this.disableShadows = serializationObject.disableShadows;
421
421
  this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;
422
422
  this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;
@@ -1 +1 @@
1
- {"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type Scene,\r\n type NodeRenderGraphBuildState,\r\n type FrameGraph,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type Camera,\r\n type NodeRenderGraphResourceContainerBlock,\r\n type FrameGraphShadowGeneratorTask,\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\nimport { FrameGraphObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/objectRendererTask\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n public override _additionalConstructionParameters: [boolean, boolean];\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Output,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n\r\n this.target.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\r\n this.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n this.shadowGenerators.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\r\n\r\n this.output._typeConnectionSource = this.target;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._createFrameGraphObject();\r\n }\r\n\r\n protected _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected _saveState(state: { [key: string]: any }) {\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderMeshes = this.renderMeshes;\r\n state.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n state.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n state.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n state.renderTransparentMeshes = this.renderTransparentMeshes;\r\n state.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n }\r\n\r\n protected _restoreState(state: { [key: string]: any }) {\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderMeshes = state.renderMeshes;\r\n this.renderDepthOnlyMeshes = state.renderDepthOnlyMeshes;\r\n this.renderOpaqueMeshes = state.renderOpaqueMeshes;\r\n this.renderAlphaTestMeshes = state.renderAlphaTestMeshes;\r\n this.renderTransparentMeshes = state.renderTransparentMeshes;\r\n this.useOITForTransparentMeshes = state.useOITForTransparentMeshes;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n }\r\n\r\n protected _createFrameGraphObjectWithState(doNotChangeAspectRatio: boolean, enableClusteredLights: boolean): void {\r\n const state: { [key: string]: any } = {};\r\n\r\n this._saveState(state);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this._createFrameGraphObject();\r\n\r\n this._restoreState(state);\r\n }\r\n\r\n /** Indicates that this object renderer is the main object renderer of the frame graph. */\r\n @editableInPropertyPage(\"Is main object renderer\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get isMainObjectRenderer() {\r\n return this._frameGraphTask.isMainObjectRenderer;\r\n }\r\n\r\n public set isMainObjectRenderer(value: boolean) {\r\n this._frameGraphTask.isMainObjectRenderer = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** Indicates if meshes should be rendered */\r\n @editableInPropertyPage(\"Render meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderMeshes() {\r\n return this._frameGraphTask.renderMeshes;\r\n }\r\n\r\n public set renderMeshes(value: boolean) {\r\n this._frameGraphTask.renderMeshes = value;\r\n }\r\n\r\n /** Indicates if depth-only meshes should be rendered */\r\n @editableInPropertyPage(\"    Render depth-only meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderDepthOnlyMeshes() {\r\n return this._frameGraphTask.renderDepthOnlyMeshes;\r\n }\r\n\r\n public set renderDepthOnlyMeshes(value: boolean) {\r\n this._frameGraphTask.renderDepthOnlyMeshes = value;\r\n }\r\n\r\n /** Indicates if opaque meshes should be rendered */\r\n @editableInPropertyPage(\"    Render opaque meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderOpaqueMeshes() {\r\n return this._frameGraphTask.renderOpaqueMeshes;\r\n }\r\n\r\n public set renderOpaqueMeshes(value: boolean) {\r\n this._frameGraphTask.renderOpaqueMeshes = value;\r\n }\r\n\r\n /** Indicates if alpha tested meshes should be rendered */\r\n @editableInPropertyPage(\"    Render alpha test meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderAlphaTestMeshes() {\r\n return this._frameGraphTask.renderAlphaTestMeshes;\r\n }\r\n\r\n public set renderAlphaTestMeshes(value: boolean) {\r\n this._frameGraphTask.renderAlphaTestMeshes = value;\r\n }\r\n\r\n /** Indicates if transparent meshes should be rendered */\r\n @editableInPropertyPage(\"    Render transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderTransparentMeshes() {\r\n return this._frameGraphTask.renderTransparentMeshes;\r\n }\r\n\r\n public set renderTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.renderTransparentMeshes = value;\r\n }\r\n\r\n /** Indicates if use of Order Independent Transparency (OIT) for transparent meshes should be enabled */\r\n @editableInPropertyPage(\"        Use OIT for transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get useOITForTransparentMeshes() {\r\n return this._frameGraphTask.useOITForTransparentMeshes;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public set useOITForTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.useOITForTransparentMeshes = value;\r\n }\r\n\r\n /** Defines the number of passes to use for Order Independent Transparency */\r\n @editableInPropertyPage(\"            Pass count\", PropertyTypeForEdition.Int, \"RENDERING\", { min: 1, max: 20 })\r\n public get oitPassCount(): number {\r\n return this._frameGraphTask.oitPassCount;\r\n }\r\n\r\n public set oitPassCount(value: number) {\r\n this._frameGraphTask.oitPassCount = value;\r\n }\r\n\r\n /** Indicates if particles should be rendered */\r\n @editableInPropertyPage(\"Render particles\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderParticles() {\r\n return this._frameGraphTask.renderParticles;\r\n }\r\n\r\n public set renderParticles(value: boolean) {\r\n this._frameGraphTask.renderParticles = value;\r\n }\r\n\r\n /** Indicates if sprites should be rendered */\r\n @editableInPropertyPage(\"Render sprites\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderSprites() {\r\n return this._frameGraphTask.renderSprites;\r\n }\r\n\r\n public set renderSprites(value: boolean) {\r\n this._frameGraphTask.renderSprites = value;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n /** Indicates if bounding boxes should be rendered */\r\n @editableInPropertyPage(\"Render bounding boxes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableBoundingBoxRendering() {\r\n return this._frameGraphTask.enableBoundingBoxRendering;\r\n }\r\n\r\n public set enableBoundingBoxRendering(value: boolean) {\r\n this._frameGraphTask.enableBoundingBoxRendering = value;\r\n }\r\n\r\n /** Indicates if outlines/overlays should be rendered */\r\n @editableInPropertyPage(\"Render outlines/overlays\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableOutlineRendering() {\r\n return this._frameGraphTask.enableOutlineRendering;\r\n }\r\n\r\n public set enableOutlineRendering(value: boolean) {\r\n this._frameGraphTask.enableOutlineRendering = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get disableShadows() {\r\n return this._frameGraphTask.disableShadows;\r\n }\r\n\r\n public set disableShadows(value: boolean) {\r\n this._frameGraphTask.disableShadows = value;\r\n }\r\n\r\n /** If image processing should be disabled */\r\n @editableInPropertyPage(\"Disable image processing\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get renderInLinearSpace() {\r\n return this._frameGraphTask.disableImageProcessing;\r\n }\r\n\r\n public set renderInLinearSpace(value: boolean) {\r\n this._frameGraphTask.disableImageProcessing = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n this._createFrameGraphObjectWithState(value, this.enableClusteredLights);\r\n }\r\n\r\n /** True (default) to enable clustered lights */\r\n @editableInPropertyPage(\"Enable clustered lights\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get enableClusteredLights() {\r\n return this._frameGraphTask.objectRenderer.options.enableClusteredLights;\r\n }\r\n\r\n public set enableClusteredLights(value: boolean) {\r\n this._createFrameGraphObjectWithState(this.doNotChangeAspectRatio, value);\r\n }\r\n\r\n /** If true, MSAA color textures will be resolved at the end of the render pass (default: true) */\r\n @editableInPropertyPage(\"Resolve MSAA colors\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAAColors() {\r\n return this._frameGraphTask.resolveMSAAColors;\r\n }\r\n\r\n public set resolveMSAAColors(value: boolean) {\r\n this._frameGraphTask.resolveMSAAColors = value;\r\n }\r\n\r\n /** If true, MSAA depth texture will be resolved at the end of the render pass (default: false) */\r\n @editableInPropertyPage(\"Resolve MSAA depth\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAADepth() {\r\n return this._frameGraphTask.resolveMSAADepth;\r\n }\r\n\r\n public set resolveMSAADepth(value: boolean) {\r\n this._frameGraphTask.resolveMSAADepth = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the target texture input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objectRenderer component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n this.objectRenderer.value = this._frameGraphTask; // the value of the objectRenderer connection point is the task itself\r\n\r\n this._frameGraphTask.targetTexture = this._getConnectedTextures(this.target.connectedPoint)!; // Geometry renderer allows undefined for targetTexture\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n for (const input of container.inputs) {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n }\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isMainObjectRenderer = ${this.isMainObjectRenderer};`);\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.renderMeshes = ${this.renderMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderDepthOnlyMeshes = ${this.renderDepthOnlyMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderOpaqueMeshes = ${this.renderOpaqueMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderAlphaTestMeshes = ${this.renderAlphaTestMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderTransparentMeshes = ${this.renderTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.useOITForTransparentMeshes = ${this.useOITForTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.oitPassCount = ${this.oitPassCount};`);\r\n codes.push(`${this._codeVariableName}.renderParticles = ${this.renderParticles};`);\r\n codes.push(`${this._codeVariableName}.renderSprites = ${this.renderSprites};`);\r\n codes.push(`${this._codeVariableName}.forceLayerMaskCheck = ${this.forceLayerMaskCheck};`);\r\n codes.push(`${this._codeVariableName}.enableBoundingBoxRendering = ${this.enableBoundingBoxRendering};`);\r\n codes.push(`${this._codeVariableName}.enableOutlineRendering = ${this.enableOutlineRendering};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n codes.push(`${this._codeVariableName}.renderInLinearSpace = ${this.renderInLinearSpace};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAAColors = ${this.resolveMSAAColors};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAADepth = ${this.resolveMSAADepth};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.isMainObjectRenderer = this.isMainObjectRenderer;\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.renderMeshes = this.renderMeshes;\r\n serializationObject.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n serializationObject.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n serializationObject.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n serializationObject.renderTransparentMeshes = this.renderTransparentMeshes;\r\n serializationObject.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n serializationObject.oitPassCount = this.oitPassCount;\r\n serializationObject.renderParticles = this.renderParticles;\r\n serializationObject.renderSprites = this.renderSprites;\r\n serializationObject.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n serializationObject.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n serializationObject.enableOutlineRendering = this.enableOutlineRendering;\r\n serializationObject.disableShadows = this.disableShadows;\r\n serializationObject.renderInLinearSpace = this.renderInLinearSpace;\r\n serializationObject.resolveMSAAColors = this.resolveMSAAColors;\r\n serializationObject.resolveMSAADepth = this.resolveMSAADepth;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.isMainObjectRenderer = !!serializationObject.isMainObjectRenderer;\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.renderMeshes = serializationObject.renderMeshes ?? true;\r\n this.renderDepthOnlyMeshes = serializationObject.renderDepthOnlyMeshes ?? true;\r\n this.renderOpaqueMeshes = serializationObject.renderOpaqueMeshes ?? true;\r\n this.renderAlphaTestMeshes = serializationObject.renderAlphaTestMeshes ?? true;\r\n this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;\r\n this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;\r\n this.oitPassCount = serializationObject.oitPassCount ?? 5;\r\n this.renderParticles = serializationObject.renderParticles ?? true;\r\n this.renderSprites = serializationObject.renderSprites ?? true;\r\n this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;\r\n this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? true;\r\n this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? true;\r\n this.disableShadows = serializationObject.disableShadows;\r\n this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;\r\n this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;\r\n this.resolveMSAADepth = serializationObject.resolveMSAADepth ?? false;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type Scene,\r\n type NodeRenderGraphBuildState,\r\n type FrameGraph,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type Camera,\r\n type NodeRenderGraphResourceContainerBlock,\r\n type FrameGraphShadowGeneratorTask,\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\nimport { FrameGraphObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/objectRendererTask\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n public override _additionalConstructionParameters: [boolean, boolean];\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Output,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n\r\n this.target.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\r\n this.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n this.shadowGenerators.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\r\n\r\n this.output._typeConnectionSource = this.target;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._createFrameGraphObject();\r\n }\r\n\r\n protected _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected _saveState(state: { [key: string]: any }) {\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderMeshes = this.renderMeshes;\r\n state.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n state.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n state.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n state.renderTransparentMeshes = this.renderTransparentMeshes;\r\n state.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n }\r\n\r\n protected _restoreState(state: { [key: string]: any }) {\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderMeshes = state.renderMeshes;\r\n this.renderDepthOnlyMeshes = state.renderDepthOnlyMeshes;\r\n this.renderOpaqueMeshes = state.renderOpaqueMeshes;\r\n this.renderAlphaTestMeshes = state.renderAlphaTestMeshes;\r\n this.renderTransparentMeshes = state.renderTransparentMeshes;\r\n this.useOITForTransparentMeshes = state.useOITForTransparentMeshes;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n }\r\n\r\n protected _createFrameGraphObjectWithState(doNotChangeAspectRatio: boolean, enableClusteredLights: boolean): void {\r\n const state: { [key: string]: any } = {};\r\n\r\n this._saveState(state);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this._createFrameGraphObject();\r\n\r\n this._restoreState(state);\r\n }\r\n\r\n /** Indicates that this object renderer is the main object renderer of the frame graph. */\r\n @editableInPropertyPage(\"Is main object renderer\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get isMainObjectRenderer() {\r\n return this._frameGraphTask.isMainObjectRenderer;\r\n }\r\n\r\n public set isMainObjectRenderer(value: boolean) {\r\n this._frameGraphTask.isMainObjectRenderer = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** Indicates if meshes should be rendered */\r\n @editableInPropertyPage(\"Render meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderMeshes() {\r\n return this._frameGraphTask.renderMeshes;\r\n }\r\n\r\n public set renderMeshes(value: boolean) {\r\n this._frameGraphTask.renderMeshes = value;\r\n }\r\n\r\n /** Indicates if depth-only meshes should be rendered */\r\n @editableInPropertyPage(\"    Render depth-only meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderDepthOnlyMeshes() {\r\n return this._frameGraphTask.renderDepthOnlyMeshes;\r\n }\r\n\r\n public set renderDepthOnlyMeshes(value: boolean) {\r\n this._frameGraphTask.renderDepthOnlyMeshes = value;\r\n }\r\n\r\n /** Indicates if opaque meshes should be rendered */\r\n @editableInPropertyPage(\"    Render opaque meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderOpaqueMeshes() {\r\n return this._frameGraphTask.renderOpaqueMeshes;\r\n }\r\n\r\n public set renderOpaqueMeshes(value: boolean) {\r\n this._frameGraphTask.renderOpaqueMeshes = value;\r\n }\r\n\r\n /** Indicates if alpha tested meshes should be rendered */\r\n @editableInPropertyPage(\"    Render alpha test meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderAlphaTestMeshes() {\r\n return this._frameGraphTask.renderAlphaTestMeshes;\r\n }\r\n\r\n public set renderAlphaTestMeshes(value: boolean) {\r\n this._frameGraphTask.renderAlphaTestMeshes = value;\r\n }\r\n\r\n /** Indicates if transparent meshes should be rendered */\r\n @editableInPropertyPage(\"    Render transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderTransparentMeshes() {\r\n return this._frameGraphTask.renderTransparentMeshes;\r\n }\r\n\r\n public set renderTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.renderTransparentMeshes = value;\r\n }\r\n\r\n /** Indicates if use of Order Independent Transparency (OIT) for transparent meshes should be enabled */\r\n @editableInPropertyPage(\"        Use OIT for transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get useOITForTransparentMeshes() {\r\n return this._frameGraphTask.useOITForTransparentMeshes;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public set useOITForTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.useOITForTransparentMeshes = value;\r\n }\r\n\r\n /** Defines the number of passes to use for Order Independent Transparency */\r\n @editableInPropertyPage(\"            Pass count\", PropertyTypeForEdition.Int, \"RENDERING\", { min: 1, max: 20 })\r\n public get oitPassCount(): number {\r\n return this._frameGraphTask.oitPassCount;\r\n }\r\n\r\n public set oitPassCount(value: number) {\r\n this._frameGraphTask.oitPassCount = value;\r\n }\r\n\r\n /** Indicates if particles should be rendered */\r\n @editableInPropertyPage(\"Render particles\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderParticles() {\r\n return this._frameGraphTask.renderParticles;\r\n }\r\n\r\n public set renderParticles(value: boolean) {\r\n this._frameGraphTask.renderParticles = value;\r\n }\r\n\r\n /** Indicates if sprites should be rendered */\r\n @editableInPropertyPage(\"Render sprites\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderSprites() {\r\n return this._frameGraphTask.renderSprites;\r\n }\r\n\r\n public set renderSprites(value: boolean) {\r\n this._frameGraphTask.renderSprites = value;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n /** Indicates if bounding boxes should be rendered */\r\n @editableInPropertyPage(\"Render bounding boxes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableBoundingBoxRendering() {\r\n return this._frameGraphTask.enableBoundingBoxRendering;\r\n }\r\n\r\n public set enableBoundingBoxRendering(value: boolean) {\r\n this._frameGraphTask.enableBoundingBoxRendering = value;\r\n }\r\n\r\n /** Indicates if outlines/overlays should be rendered */\r\n @editableInPropertyPage(\"Render outlines/overlays\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableOutlineRendering() {\r\n return this._frameGraphTask.enableOutlineRendering;\r\n }\r\n\r\n public set enableOutlineRendering(value: boolean) {\r\n this._frameGraphTask.enableOutlineRendering = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get disableShadows() {\r\n return this._frameGraphTask.disableShadows;\r\n }\r\n\r\n public set disableShadows(value: boolean) {\r\n this._frameGraphTask.disableShadows = value;\r\n }\r\n\r\n /** If image processing should be disabled */\r\n @editableInPropertyPage(\"Disable image processing\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get renderInLinearSpace() {\r\n return this._frameGraphTask.disableImageProcessing;\r\n }\r\n\r\n public set renderInLinearSpace(value: boolean) {\r\n this._frameGraphTask.disableImageProcessing = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n this._createFrameGraphObjectWithState(value, this.enableClusteredLights);\r\n }\r\n\r\n /** True (default) to enable clustered lights */\r\n @editableInPropertyPage(\"Enable clustered lights\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get enableClusteredLights() {\r\n return this._frameGraphTask.objectRenderer.options.enableClusteredLights;\r\n }\r\n\r\n public set enableClusteredLights(value: boolean) {\r\n this._createFrameGraphObjectWithState(this.doNotChangeAspectRatio, value);\r\n }\r\n\r\n /** If true, MSAA color textures will be resolved at the end of the render pass (default: true) */\r\n @editableInPropertyPage(\"Resolve MSAA colors\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAAColors() {\r\n return this._frameGraphTask.resolveMSAAColors;\r\n }\r\n\r\n public set resolveMSAAColors(value: boolean) {\r\n this._frameGraphTask.resolveMSAAColors = value;\r\n }\r\n\r\n /** If true, MSAA depth texture will be resolved at the end of the render pass (default: false) */\r\n @editableInPropertyPage(\"Resolve MSAA depth\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAADepth() {\r\n return this._frameGraphTask.resolveMSAADepth;\r\n }\r\n\r\n public set resolveMSAADepth(value: boolean) {\r\n this._frameGraphTask.resolveMSAADepth = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the target texture input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objectRenderer component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n this.objectRenderer.value = this._frameGraphTask; // the value of the objectRenderer connection point is the task itself\r\n\r\n this._frameGraphTask.targetTexture = this._getConnectedTextures(this.target.connectedPoint)!; // Geometry renderer allows undefined for targetTexture\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n for (const input of container.inputs) {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n }\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isMainObjectRenderer = ${this.isMainObjectRenderer};`);\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.renderMeshes = ${this.renderMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderDepthOnlyMeshes = ${this.renderDepthOnlyMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderOpaqueMeshes = ${this.renderOpaqueMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderAlphaTestMeshes = ${this.renderAlphaTestMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderTransparentMeshes = ${this.renderTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.useOITForTransparentMeshes = ${this.useOITForTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.oitPassCount = ${this.oitPassCount};`);\r\n codes.push(`${this._codeVariableName}.renderParticles = ${this.renderParticles};`);\r\n codes.push(`${this._codeVariableName}.renderSprites = ${this.renderSprites};`);\r\n codes.push(`${this._codeVariableName}.forceLayerMaskCheck = ${this.forceLayerMaskCheck};`);\r\n codes.push(`${this._codeVariableName}.enableBoundingBoxRendering = ${this.enableBoundingBoxRendering};`);\r\n codes.push(`${this._codeVariableName}.enableOutlineRendering = ${this.enableOutlineRendering};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n codes.push(`${this._codeVariableName}.renderInLinearSpace = ${this.renderInLinearSpace};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAAColors = ${this.resolveMSAAColors};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAADepth = ${this.resolveMSAADepth};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.isMainObjectRenderer = this.isMainObjectRenderer;\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.renderMeshes = this.renderMeshes;\r\n serializationObject.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n serializationObject.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n serializationObject.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n serializationObject.renderTransparentMeshes = this.renderTransparentMeshes;\r\n serializationObject.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n serializationObject.oitPassCount = this.oitPassCount;\r\n serializationObject.renderParticles = this.renderParticles;\r\n serializationObject.renderSprites = this.renderSprites;\r\n serializationObject.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n serializationObject.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n serializationObject.enableOutlineRendering = this.enableOutlineRendering;\r\n serializationObject.disableShadows = this.disableShadows;\r\n serializationObject.renderInLinearSpace = this.renderInLinearSpace;\r\n serializationObject.resolveMSAAColors = this.resolveMSAAColors;\r\n serializationObject.resolveMSAADepth = this.resolveMSAADepth;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.isMainObjectRenderer = !!serializationObject.isMainObjectRenderer;\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.renderMeshes = serializationObject.renderMeshes ?? true;\r\n this.renderDepthOnlyMeshes = serializationObject.renderDepthOnlyMeshes ?? true;\r\n this.renderOpaqueMeshes = serializationObject.renderOpaqueMeshes ?? true;\r\n this.renderAlphaTestMeshes = serializationObject.renderAlphaTestMeshes ?? true;\r\n this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;\r\n this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;\r\n this.oitPassCount = serializationObject.oitPassCount ?? 5;\r\n this.renderParticles = serializationObject.renderParticles ?? this.renderParticles;\r\n this.renderSprites = serializationObject.renderSprites ?? this.renderSprites;\r\n this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;\r\n this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? this.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? this.enableOutlineRendering;\r\n this.disableShadows = serializationObject.disableShadows;\r\n this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;\r\n this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;\r\n this.resolveMSAADepth = serializationObject.resolveMSAADepth ?? false;\r\n }\r\n}\r\n"]}
@@ -122,7 +122,7 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
122
122
  */
123
123
  get geomViewNormal(): NodeRenderGraphConnectionPoint;
124
124
  /**
125
- * Gets the world geometry normal component
125
+ * Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]
126
126
  */
127
127
  get geomWorldNormal(): NodeRenderGraphConnectionPoint;
128
128
  /**
@@ -153,6 +153,10 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
153
153
  * Gets the geometry object ID component
154
154
  */
155
155
  get geomObjectId(): NodeRenderGraphConnectionPoint;
156
+ /**
157
+ * Gets the packed mesh-blending tag component.
158
+ */
159
+ get geomMeshBlendTag(): NodeRenderGraphConnectionPoint;
156
160
  protected _buildBlock(state: NodeRenderGraphBuildState): void;
157
161
  protected _dumpPropertiesCode(): string;
158
162
  /**
@@ -185,6 +185,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
185
185
  this.registerOutput("geomVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);
186
186
  this.registerOutput("geomLinearVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);
187
187
  this.registerOutput("geomObjectId", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);
188
+ this.registerOutput("geomMeshBlendTag", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);
188
189
  this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });
189
190
  }
190
191
  _createFrameGraphObject() {
@@ -323,7 +324,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
323
324
  return this._outputs[7];
324
325
  }
325
326
  /**
326
- * Gets the world geometry normal component
327
+ * Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]
327
328
  */
328
329
  get geomWorldNormal() {
329
330
  return this._outputs[8];
@@ -370,6 +371,12 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
370
371
  get geomObjectId() {
371
372
  return this._outputs[15];
372
373
  }
374
+ /**
375
+ * Gets the packed mesh-blending tag component.
376
+ */
377
+ get geomMeshBlendTag() {
378
+ return this._outputs[16];
379
+ }
373
380
  _buildBlock(state) {
374
381
  super._buildBlock(state);
375
382
  const textureActivation = [
@@ -386,6 +393,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
386
393
  this.geomVelocity.isConnected,
387
394
  this.geomLinearVelocity.isConnected,
388
395
  this.geomObjectId.isConnected,
396
+ this.geomMeshBlendTag.isConnected,
389
397
  ];
390
398
  this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;
391
399
  this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;
@@ -400,6 +408,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
400
408
  this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;
401
409
  this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;
402
410
  this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;
411
+ this.geomMeshBlendTag.value = this._frameGraphTask.geometryMeshBlendTagTexture;
403
412
  this._frameGraphTask.textureDescriptions = [];
404
413
  const textureFormats = [
405
414
  this.irradianceFormat,
@@ -415,6 +424,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
415
424
  this.velocityFormat,
416
425
  this.linearVelocityFormat,
417
426
  5,
427
+ 8,
418
428
  ];
419
429
  const textureTypes = [
420
430
  this.irradianceType,
@@ -430,6 +440,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
430
440
  this.velocityType,
431
441
  this.linearVelocityType,
432
442
  0,
443
+ 0,
433
444
  ];
434
445
  const bufferTypes = [
435
446
  14,
@@ -445,6 +456,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
445
456
  2,
446
457
  11,
447
458
  15,
459
+ 16,
448
460
  ];
449
461
  for (let i = 0; i < textureActivation.length; i++) {
450
462
  if (textureActivation[i]) {
@@ -1 +1 @@
1
- {"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphGeometryRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n this.registerOutput(\"geomObjectId\", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n /**\r\n * Gets the geometry object ID component\r\n */\r\n public get geomObjectId(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[15];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n this.geomObjectId.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n Constants.PREPASS_OBJECT_ID_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
1
+ {"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphGeometryRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n this.registerOutput(\"geomObjectId\", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);\r\n this.registerOutput(\"geomMeshBlendTag\", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n /**\r\n * Gets the geometry object ID component\r\n */\r\n public get geomObjectId(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[15];\r\n }\r\n\r\n /**\r\n * Gets the packed mesh-blending tag component.\r\n */\r\n public get geomMeshBlendTag(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[16];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n this.geomObjectId.isConnected,\r\n this.geomMeshBlendTag.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;\r\n this.geomMeshBlendTag.value = this._frameGraphTask.geometryMeshBlendTagTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n Constants.TEXTUREFORMAT_RED_INTEGER,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n Constants.PREPASS_OBJECT_ID_TEXTURE_TYPE,\r\n Constants.PREPASS_MESH_BLEND_TAG_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
@@ -17,6 +17,7 @@ import { RegisterFilterPostProcessBlock } from "./PostProcesses/filterPostProces
17
17
  import { RegisterFxaaPostProcessBlock } from "./PostProcesses/fxaaPostProcessBlock.pure.js";
18
18
  import { RegisterGrainPostProcessBlock } from "./PostProcesses/grainPostProcessBlock.pure.js";
19
19
  import { RegisterImageProcessingPostProcessBlock } from "./PostProcesses/imageProcessingPostProcessBlock.pure.js";
20
+ import { RegisterMeshBlendingPostProcessBlock } from "./PostProcesses/meshBlendingPostProcessBlock.pure.js";
20
21
  import { RegisterMotionBlurPostProcessBlock } from "./PostProcesses/motionBlurPostProcessBlock.pure.js";
21
22
  import { RegisterPassPostProcessBlock } from "./PostProcesses/passPostProcessBlock.pure.js";
22
23
  import { RegisterScreenSpaceCurvaturePostProcessBlock } from "./PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js";
@@ -74,6 +75,7 @@ export function RegisterNodeRenderGraphPostProcessesBlocks() {
74
75
  RegisterFxaaPostProcessBlock();
75
76
  RegisterGrainPostProcessBlock();
76
77
  RegisterImageProcessingPostProcessBlock();
78
+ RegisterMeshBlendingPostProcessBlock();
77
79
  RegisterMotionBlurPostProcessBlock();
78
80
  RegisterPassPostProcessBlock();
79
81
  RegisterScreenSpaceCurvaturePostProcessBlock();