@aura3d/rendering 2.0.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/dist/AtmosphereWetness.d.ts +61 -0
  2. package/dist/AtmosphereWetness.d.ts.map +1 -0
  3. package/dist/AtmosphereWetness.js +99 -0
  4. package/dist/AtmosphereWetness.js.map +1 -0
  5. package/dist/CascadedShadowMaps.d.ts.map +1 -1
  6. package/dist/CascadedShadowMaps.js +3 -1
  7. package/dist/CascadedShadowMaps.js.map +1 -1
  8. package/dist/ClusteredForwardLighting.d.ts +25 -1
  9. package/dist/ClusteredForwardLighting.d.ts.map +1 -1
  10. package/dist/ClusteredForwardLighting.js +80 -3
  11. package/dist/ClusteredForwardLighting.js.map +1 -1
  12. package/dist/DayNightSky.d.ts +63 -0
  13. package/dist/DayNightSky.d.ts.map +1 -0
  14. package/dist/DayNightSky.js +156 -0
  15. package/dist/DayNightSky.js.map +1 -0
  16. package/dist/EnvironmentPresetPack.d.ts +30 -0
  17. package/dist/EnvironmentPresetPack.d.ts.map +1 -0
  18. package/dist/EnvironmentPresetPack.js +49 -0
  19. package/dist/EnvironmentPresetPack.js.map +1 -0
  20. package/dist/ExtensionScalarAtlas.d.ts +18 -0
  21. package/dist/ExtensionScalarAtlas.d.ts.map +1 -0
  22. package/dist/ExtensionScalarAtlas.js +107 -0
  23. package/dist/ExtensionScalarAtlas.js.map +1 -0
  24. package/dist/ForwardPass.d.ts +65 -0
  25. package/dist/ForwardPass.d.ts.map +1 -1
  26. package/dist/ForwardPass.js +196 -2
  27. package/dist/ForwardPass.js.map +1 -1
  28. package/dist/InstancedPBRMaterial.d.ts +1 -0
  29. package/dist/InstancedPBRMaterial.d.ts.map +1 -1
  30. package/dist/InstancedPBRMaterial.js +3 -0
  31. package/dist/InstancedPBRMaterial.js.map +1 -1
  32. package/dist/InstancingDiagnostics.d.ts +69 -0
  33. package/dist/InstancingDiagnostics.d.ts.map +1 -0
  34. package/dist/InstancingDiagnostics.js +98 -0
  35. package/dist/InstancingDiagnostics.js.map +1 -0
  36. package/dist/LeanWebGL2Device.d.ts +265 -0
  37. package/dist/LeanWebGL2Device.d.ts.map +1 -0
  38. package/dist/LeanWebGL2Device.js +4001 -0
  39. package/dist/LeanWebGL2Device.js.map +1 -0
  40. package/dist/LightingRig.d.ts +19 -1
  41. package/dist/LightingRig.d.ts.map +1 -1
  42. package/dist/LightingRig.js +61 -1
  43. package/dist/LightingRig.js.map +1 -1
  44. package/dist/MaterialBinding.js +1 -1
  45. package/dist/MaterialBinding.js.map +1 -1
  46. package/dist/MeshConsolidation.d.ts +12 -0
  47. package/dist/MeshConsolidation.d.ts.map +1 -1
  48. package/dist/MeshConsolidation.js +28 -0
  49. package/dist/MeshConsolidation.js.map +1 -1
  50. package/dist/MorphTargetPlan.d.ts +29 -2
  51. package/dist/MorphTargetPlan.d.ts.map +1 -1
  52. package/dist/MorphTargetPlan.js +23 -4
  53. package/dist/MorphTargetPlan.js.map +1 -1
  54. package/dist/NormalMappedPBRMaterial.d.ts.map +1 -1
  55. package/dist/NormalMappedPBRMaterial.js +22 -2
  56. package/dist/NormalMappedPBRMaterial.js.map +1 -1
  57. package/dist/OceanSurface.d.ts +75 -0
  58. package/dist/OceanSurface.d.ts.map +1 -1
  59. package/dist/OceanSurface.js +211 -0
  60. package/dist/OceanSurface.js.map +1 -1
  61. package/dist/PBRMaterial.d.ts +1 -0
  62. package/dist/PBRMaterial.d.ts.map +1 -1
  63. package/dist/PBRMaterial.js +23 -2
  64. package/dist/PBRMaterial.js.map +1 -1
  65. package/dist/PbrReference.d.ts +48 -0
  66. package/dist/PbrReference.d.ts.map +1 -1
  67. package/dist/PbrReference.js +126 -0
  68. package/dist/PbrReference.js.map +1 -1
  69. package/dist/PlanarReflection.d.ts +221 -0
  70. package/dist/PlanarReflection.d.ts.map +1 -0
  71. package/dist/PlanarReflection.js +541 -0
  72. package/dist/PlanarReflection.js.map +1 -0
  73. package/dist/PostProcessPass.d.ts +32 -0
  74. package/dist/PostProcessPass.d.ts.map +1 -1
  75. package/dist/PostProcessPass.js +79 -36
  76. package/dist/PostProcessPass.js.map +1 -1
  77. package/dist/ProjectionMath.d.ts +3 -0
  78. package/dist/ProjectionMath.d.ts.map +1 -0
  79. package/dist/ProjectionMath.js +26 -0
  80. package/dist/ProjectionMath.js.map +1 -0
  81. package/dist/ReflectionSurfaces.d.ts +17 -0
  82. package/dist/ReflectionSurfaces.d.ts.map +1 -1
  83. package/dist/ReflectionSurfaces.js +103 -1
  84. package/dist/ReflectionSurfaces.js.map +1 -1
  85. package/dist/RenderDevice.d.ts +92 -0
  86. package/dist/RenderDevice.d.ts.map +1 -1
  87. package/dist/RenderDevice.js +85 -0
  88. package/dist/RenderDevice.js.map +1 -1
  89. package/dist/Renderer.d.ts +9 -0
  90. package/dist/Renderer.d.ts.map +1 -1
  91. package/dist/Renderer.js +97 -9
  92. package/dist/Renderer.js.map +1 -1
  93. package/dist/RendererPostprocessPlan.d.ts +64 -3
  94. package/dist/RendererPostprocessPlan.d.ts.map +1 -1
  95. package/dist/RendererPostprocessPlan.js +116 -12
  96. package/dist/RendererPostprocessPlan.js.map +1 -1
  97. package/dist/RendererVisualPipelineReport.d.ts.map +1 -1
  98. package/dist/RendererVisualPipelineReport.js +3 -1
  99. package/dist/RendererVisualPipelineReport.js.map +1 -1
  100. package/dist/Sampler.d.ts +29 -0
  101. package/dist/Sampler.d.ts.map +1 -1
  102. package/dist/Sampler.js +47 -0
  103. package/dist/Sampler.js.map +1 -1
  104. package/dist/ScreenSpaceReflectionPass.d.ts +43 -0
  105. package/dist/ScreenSpaceReflectionPass.d.ts.map +1 -0
  106. package/dist/ScreenSpaceReflectionPass.js +58 -0
  107. package/dist/ScreenSpaceReflectionPass.js.map +1 -0
  108. package/dist/SdfText.d.ts +250 -0
  109. package/dist/SdfText.d.ts.map +1 -0
  110. package/dist/SdfText.js +551 -0
  111. package/dist/SdfText.js.map +1 -0
  112. package/dist/ShaderChunks.d.ts.map +1 -1
  113. package/dist/ShaderChunks.js +30 -12
  114. package/dist/ShaderChunks.js.map +1 -1
  115. package/dist/ShaderLibrary.d.ts.map +1 -1
  116. package/dist/ShaderLibrary.js +601 -186
  117. package/dist/ShaderLibrary.js.map +1 -1
  118. package/dist/ShaderLibraryCore.d.ts +3 -0
  119. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  120. package/dist/ShaderLibraryCore.js +73 -12
  121. package/dist/ShaderLibraryCore.js.map +1 -1
  122. package/dist/ShadowMap.d.ts +24 -0
  123. package/dist/ShadowMap.d.ts.map +1 -1
  124. package/dist/ShadowMap.js +43 -0
  125. package/dist/ShadowMap.js.map +1 -1
  126. package/dist/SkinnedLitMaterial.d.ts.map +1 -1
  127. package/dist/SkinnedLitMaterial.js +2 -0
  128. package/dist/SkinnedLitMaterial.js.map +1 -1
  129. package/dist/SkinningBounds.d.ts +10 -0
  130. package/dist/SkinningBounds.d.ts.map +1 -1
  131. package/dist/SkinningBounds.js +27 -0
  132. package/dist/SkinningBounds.js.map +1 -1
  133. package/dist/SpriteFlipbook.d.ts +60 -0
  134. package/dist/SpriteFlipbook.d.ts.map +1 -0
  135. package/dist/SpriteFlipbook.js +128 -0
  136. package/dist/SpriteFlipbook.js.map +1 -0
  137. package/dist/TemporalHistory.d.ts +37 -0
  138. package/dist/TemporalHistory.d.ts.map +1 -0
  139. package/dist/TemporalHistory.js +135 -0
  140. package/dist/TemporalHistory.js.map +1 -0
  141. package/dist/TemporalMath.d.ts +3 -0
  142. package/dist/TemporalMath.d.ts.map +1 -0
  143. package/dist/TemporalMath.js +9 -0
  144. package/dist/TemporalMath.js.map +1 -0
  145. package/dist/TerrainTiles.d.ts +120 -0
  146. package/dist/TerrainTiles.d.ts.map +1 -0
  147. package/dist/TerrainTiles.js +221 -0
  148. package/dist/TerrainTiles.js.map +1 -0
  149. package/dist/TexturedPBRMaterial.d.ts +4 -0
  150. package/dist/TexturedPBRMaterial.d.ts.map +1 -1
  151. package/dist/TexturedPBRMaterial.js +88 -5
  152. package/dist/TexturedPBRMaterial.js.map +1 -1
  153. package/dist/TexturedUnlitMaterial.d.ts.map +1 -1
  154. package/dist/TexturedUnlitMaterial.js +20 -2
  155. package/dist/TexturedUnlitMaterial.js.map +1 -1
  156. package/dist/UnlitMaterial.d.ts.map +1 -1
  157. package/dist/UnlitMaterial.js +20 -2
  158. package/dist/UnlitMaterial.js.map +1 -1
  159. package/dist/VertexFormat.d.ts +6 -0
  160. package/dist/VertexFormat.d.ts.map +1 -1
  161. package/dist/VertexFormat.js +12 -0
  162. package/dist/VertexFormat.js.map +1 -1
  163. package/dist/VolumetricFog.d.ts +55 -0
  164. package/dist/VolumetricFog.d.ts.map +1 -0
  165. package/dist/VolumetricFog.js +91 -0
  166. package/dist/VolumetricFog.js.map +1 -0
  167. package/dist/WaterSurface.d.ts +77 -0
  168. package/dist/WaterSurface.d.ts.map +1 -0
  169. package/dist/WaterSurface.js +133 -0
  170. package/dist/WaterSurface.js.map +1 -0
  171. package/dist/WebGL2Device.d.ts +73 -0
  172. package/dist/WebGL2Device.d.ts.map +1 -1
  173. package/dist/WebGL2Device.js +836 -79
  174. package/dist/WebGL2Device.js.map +1 -1
  175. package/dist/WebGPUDevice.d.ts +62 -1
  176. package/dist/WebGPUDevice.d.ts.map +1 -1
  177. package/dist/WebGPUDevice.js +844 -51
  178. package/dist/WebGPUDevice.js.map +1 -1
  179. package/dist/WebGPUExtensionAtlas.d.ts +6 -0
  180. package/dist/WebGPUExtensionAtlas.d.ts.map +1 -0
  181. package/dist/WebGPUExtensionAtlas.js +225 -0
  182. package/dist/WebGPUExtensionAtlas.js.map +1 -0
  183. package/dist/WebGPUSkinningLimits.d.ts +40 -0
  184. package/dist/WebGPUSkinningLimits.d.ts.map +1 -1
  185. package/dist/WebGPUSkinningLimits.js +32 -0
  186. package/dist/WebGPUSkinningLimits.js.map +1 -1
  187. package/dist/effects/CollisionModule.d.ts +9 -0
  188. package/dist/effects/CollisionModule.d.ts.map +1 -1
  189. package/dist/effects/CollisionModule.js +10 -0
  190. package/dist/effects/CollisionModule.js.map +1 -1
  191. package/dist/effects/ColorModule.d.ts +7 -0
  192. package/dist/effects/ColorModule.d.ts.map +1 -1
  193. package/dist/effects/ColorModule.js +23 -0
  194. package/dist/effects/ColorModule.js.map +1 -1
  195. package/dist/effects/ForceModule.d.ts +35 -0
  196. package/dist/effects/ForceModule.d.ts.map +1 -1
  197. package/dist/effects/ForceModule.js +49 -0
  198. package/dist/effects/ForceModule.js.map +1 -1
  199. package/dist/effects/GPUParticleBackend.d.ts +188 -0
  200. package/dist/effects/GPUParticleBackend.d.ts.map +1 -1
  201. package/dist/effects/GPUParticleBackend.js +710 -1
  202. package/dist/effects/GPUParticleBackend.js.map +1 -1
  203. package/dist/effects/HeightfieldModule.d.ts +58 -0
  204. package/dist/effects/HeightfieldModule.d.ts.map +1 -0
  205. package/dist/effects/HeightfieldModule.js +129 -0
  206. package/dist/effects/HeightfieldModule.js.map +1 -0
  207. package/dist/effects/LightingModule.d.ts +34 -0
  208. package/dist/effects/LightingModule.d.ts.map +1 -0
  209. package/dist/effects/LightingModule.js +54 -0
  210. package/dist/effects/LightingModule.js.map +1 -0
  211. package/dist/effects/ParticleDiagnostics.d.ts +8 -0
  212. package/dist/effects/ParticleDiagnostics.d.ts.map +1 -1
  213. package/dist/effects/ParticleDiagnostics.js +3 -0
  214. package/dist/effects/ParticleDiagnostics.js.map +1 -1
  215. package/dist/effects/ParticleModule.d.ts +8 -0
  216. package/dist/effects/ParticleModule.d.ts.map +1 -1
  217. package/dist/effects/ParticleModule.js.map +1 -1
  218. package/dist/effects/ParticleRenderer.d.ts +20 -0
  219. package/dist/effects/ParticleRenderer.d.ts.map +1 -1
  220. package/dist/effects/ParticleRenderer.js +57 -7
  221. package/dist/effects/ParticleRenderer.js.map +1 -1
  222. package/dist/effects/ParticleSystem.d.ts +45 -1
  223. package/dist/effects/ParticleSystem.d.ts.map +1 -1
  224. package/dist/effects/ParticleSystem.js +373 -4
  225. package/dist/effects/ParticleSystem.js.map +1 -1
  226. package/dist/effects/ResidentGPUParticleRenderer.d.ts +158 -0
  227. package/dist/effects/ResidentGPUParticleRenderer.d.ts.map +1 -0
  228. package/dist/effects/ResidentGPUParticleRenderer.js +576 -0
  229. package/dist/effects/ResidentGPUParticleRenderer.js.map +1 -0
  230. package/dist/effects/SizeModule.d.ts +4 -0
  231. package/dist/effects/SizeModule.d.ts.map +1 -1
  232. package/dist/effects/SizeModule.js +16 -0
  233. package/dist/effects/SizeModule.js.map +1 -1
  234. package/dist/effects/SubEmitterModule.d.ts +61 -0
  235. package/dist/effects/SubEmitterModule.d.ts.map +1 -0
  236. package/dist/effects/SubEmitterModule.js +119 -0
  237. package/dist/effects/SubEmitterModule.js.map +1 -0
  238. package/dist/effects/TrailModule.d.ts +38 -0
  239. package/dist/effects/TrailModule.d.ts.map +1 -1
  240. package/dist/effects/TrailModule.js +95 -2
  241. package/dist/effects/TrailModule.js.map +1 -1
  242. package/dist/effects/TurbulenceModule.d.ts +43 -0
  243. package/dist/effects/TurbulenceModule.d.ts.map +1 -0
  244. package/dist/effects/TurbulenceModule.js +130 -0
  245. package/dist/effects/TurbulenceModule.js.map +1 -0
  246. package/dist/effects/index.d.ts +4 -0
  247. package/dist/effects/index.d.ts.map +1 -1
  248. package/dist/effects/index.js +4 -0
  249. package/dist/effects/index.js.map +1 -1
  250. package/dist/extension-scalar-atlas.d.ts +3 -0
  251. package/dist/extension-scalar-atlas.d.ts.map +1 -0
  252. package/dist/extension-scalar-atlas.js +2 -0
  253. package/dist/extension-scalar-atlas.js.map +1 -0
  254. package/dist/index.d.ts +58 -19
  255. package/dist/index.d.ts.map +1 -1
  256. package/dist/index.js +32 -10
  257. package/dist/index.js.map +1 -1
  258. package/dist/lean/LeanProductionRenderer.d.ts.map +1 -1
  259. package/dist/lean/LeanProductionRenderer.js +2 -2
  260. package/dist/lean/LeanProductionRenderer.js.map +1 -1
  261. package/dist/lean-core-runtime.d.ts +13 -0
  262. package/dist/lean-core-runtime.d.ts.map +1 -0
  263. package/dist/lean-core-runtime.js +10 -0
  264. package/dist/lean-core-runtime.js.map +1 -0
  265. package/dist/materials/MaterialExtensions.js +3 -3
  266. package/dist/materials/MaterialExtensions.js.map +1 -1
  267. package/dist/postprocess/NativeBloomPyramid.d.ts +44 -0
  268. package/dist/postprocess/NativeBloomPyramid.d.ts.map +1 -0
  269. package/dist/postprocess/NativeBloomPyramid.js +84 -0
  270. package/dist/postprocess/NativeBloomPyramid.js.map +1 -0
  271. package/dist/postprocess/NativeLdrEffectLuts.d.ts +10 -1
  272. package/dist/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
  273. package/dist/postprocess/NativeLdrEffectLuts.js +19 -2
  274. package/dist/postprocess/NativeLdrEffectLuts.js.map +1 -1
  275. package/dist/postprocess/index.d.ts +2 -0
  276. package/dist/postprocess/index.d.ts.map +1 -1
  277. package/dist/postprocess/index.js +1 -0
  278. package/dist/postprocess/index.js.map +1 -1
  279. package/dist/production-runtime/PBRHDRPipeline.d.ts +22 -0
  280. package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
  281. package/dist/production-runtime/PBRHDRPipeline.js +125 -0
  282. package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
  283. package/dist/production-runtime/ProductionRendererTypes.d.ts +1 -0
  284. package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
  285. package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
  286. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +3 -0
  287. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
  288. package/dist/production-runtime/ProductionRuntimeRenderer.js +8 -1
  289. package/dist/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
  290. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +4 -0
  291. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
  292. package/dist/production-runtime/ProductionWebGL2Renderer.js +15 -0
  293. package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
  294. package/dist/production-runtime/ProductionWebGPURenderer.d.ts +58 -0
  295. package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  296. package/dist/production-runtime/ProductionWebGPURenderer.js +127 -0
  297. package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  298. package/dist/production-runtime/framegraph/FrameGraph.d.ts +4 -2
  299. package/dist/production-runtime/framegraph/FrameGraph.d.ts.map +1 -1
  300. package/dist/production-runtime/framegraph/FrameGraph.js +62 -4
  301. package/dist/production-runtime/framegraph/FrameGraph.js.map +1 -1
  302. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts +32 -0
  303. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts.map +1 -0
  304. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js +111 -0
  305. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js.map +1 -0
  306. package/dist/production-runtime/framegraph/RenderPass.d.ts +23 -0
  307. package/dist/production-runtime/framegraph/RenderPass.d.ts.map +1 -1
  308. package/dist/production-runtime/framegraph/RenderPass.js +87 -1
  309. package/dist/production-runtime/framegraph/RenderPass.js.map +1 -1
  310. package/dist/production-runtime/index.d.ts +7 -4
  311. package/dist/production-runtime/index.d.ts.map +1 -1
  312. package/dist/production-runtime/index.js +4 -2
  313. package/dist/production-runtime/index.js.map +1 -1
  314. package/dist/production-runtime/passes/DepthPrepass.d.ts +18 -1
  315. package/dist/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
  316. package/dist/production-runtime/passes/DepthPrepass.js +41 -2
  317. package/dist/production-runtime/passes/DepthPrepass.js.map +1 -1
  318. package/dist/production-runtime/passes/FramegraphTopology.d.ts +13 -0
  319. package/dist/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
  320. package/dist/production-runtime/passes/FramegraphTopology.js +59 -0
  321. package/dist/production-runtime/passes/FramegraphTopology.js.map +1 -0
  322. package/dist/production-runtime/passes/OpaquePass.d.ts +19 -1
  323. package/dist/production-runtime/passes/OpaquePass.d.ts.map +1 -1
  324. package/dist/production-runtime/passes/OpaquePass.js +43 -2
  325. package/dist/production-runtime/passes/OpaquePass.js.map +1 -1
  326. package/dist/production-runtime/passes/ShadowPass.d.ts +19 -1
  327. package/dist/production-runtime/passes/ShadowPass.d.ts.map +1 -1
  328. package/dist/production-runtime/passes/ShadowPass.js +45 -2
  329. package/dist/production-runtime/passes/ShadowPass.js.map +1 -1
  330. package/dist/production-runtime/passes/SkyboxPass.d.ts +17 -1
  331. package/dist/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
  332. package/dist/production-runtime/passes/SkyboxPass.js +41 -2
  333. package/dist/production-runtime/passes/SkyboxPass.js.map +1 -1
  334. package/dist/production-runtime/passes/ToneMappingPass.d.ts +26 -1
  335. package/dist/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
  336. package/dist/production-runtime/passes/ToneMappingPass.js +62 -2
  337. package/dist/production-runtime/passes/ToneMappingPass.js.map +1 -1
  338. package/dist/production-runtime/passes/TransparentPass.d.ts +19 -1
  339. package/dist/production-runtime/passes/TransparentPass.d.ts.map +1 -1
  340. package/dist/production-runtime/passes/TransparentPass.js +47 -2
  341. package/dist/production-runtime/passes/TransparentPass.js.map +1 -1
  342. package/dist/reflection-surfaces.d.ts +5 -0
  343. package/dist/reflection-surfaces.d.ts.map +1 -0
  344. package/dist/reflection-surfaces.js +3 -0
  345. package/dist/reflection-surfaces.js.map +1 -0
  346. package/dist/shadows/CascadeHysteresis.d.ts +67 -0
  347. package/dist/shadows/CascadeHysteresis.d.ts.map +1 -0
  348. package/dist/shadows/CascadeHysteresis.js +104 -0
  349. package/dist/shadows/CascadeHysteresis.js.map +1 -0
  350. package/dist/shadows/ContactShadows.d.ts +52 -0
  351. package/dist/shadows/ContactShadows.d.ts.map +1 -1
  352. package/dist/shadows/ContactShadows.js +122 -0
  353. package/dist/shadows/ContactShadows.js.map +1 -1
  354. package/dist/shadows/SpotShadowMaps.d.ts +77 -0
  355. package/dist/shadows/SpotShadowMaps.d.ts.map +1 -0
  356. package/dist/shadows/SpotShadowMaps.js +106 -0
  357. package/dist/shadows/SpotShadowMaps.js.map +1 -0
  358. package/dist/webgpu/WebGPUPostProcess.d.ts +2 -0
  359. package/dist/webgpu/WebGPUPostProcess.d.ts.map +1 -1
  360. package/dist/webgpu/WebGPUPostProcess.js +1 -0
  361. package/dist/webgpu/WebGPUPostProcess.js.map +1 -1
  362. package/dist/webgpu/WebGPUPostShaders.d.ts +77 -0
  363. package/dist/webgpu/WebGPUPostShaders.d.ts.map +1 -0
  364. package/dist/webgpu/WebGPUPostShaders.js +261 -0
  365. package/dist/webgpu/WebGPUPostShaders.js.map +1 -0
  366. package/dist/webgpu/WebGPUTemporal.d.ts +17 -0
  367. package/dist/webgpu/WebGPUTemporal.d.ts.map +1 -0
  368. package/dist/webgpu/WebGPUTemporal.js +64 -0
  369. package/dist/webgpu/WebGPUTemporal.js.map +1 -0
  370. package/dist/webgpu.d.ts +6 -0
  371. package/dist/webgpu.d.ts.map +1 -1
  372. package/dist/webgpu.js +4 -0
  373. package/dist/webgpu.js.map +1 -1
  374. package/package.json +15 -3
@@ -0,0 +1,59 @@
1
+ /**
2
+ * muse3jsparity-PRD T3 — canonical production framegraph topology.
3
+ *
4
+ * Order is load-bearing: depth before shadow before sky before opaque
5
+ * composite before transparency before tone mapping. `validatePassOrder`
6
+ * fails closed on missing, duplicated, or misordered passes so the graph
7
+ * edges (reads/writes) always match the actual resource flow.
8
+ */
9
+ export const PRODUCTION_PASS_ORDER = [
10
+ 'DepthPrepass',
11
+ 'ShadowPass',
12
+ 'SkyboxPass',
13
+ 'OpaquePass',
14
+ 'TransparentPass',
15
+ 'ToneMappingPass'
16
+ ];
17
+ export function validatePassOrder(passes) {
18
+ const errors = [];
19
+ const ids = passes.map((pass) => pass.id);
20
+ for (const expected of PRODUCTION_PASS_ORDER) {
21
+ const count = ids.filter((id) => id === expected).length;
22
+ if (count === 0)
23
+ errors.push(`Missing production pass: ${expected}.`);
24
+ if (count > 1)
25
+ errors.push(`Duplicated production pass: ${expected}.`);
26
+ }
27
+ const orderIndex = new Map(PRODUCTION_PASS_ORDER.map((id, index) => [id, index]));
28
+ let lastIndex = -1;
29
+ for (const id of ids) {
30
+ const index = orderIndex.get(id);
31
+ if (index === undefined) {
32
+ errors.push(`Undocumented production pass: ${id}.`);
33
+ continue;
34
+ }
35
+ if (index < lastIndex)
36
+ errors.push(`Misordered production pass: ${id}.`);
37
+ lastIndex = Math.max(lastIndex, index);
38
+ }
39
+ return errors;
40
+ }
41
+ export function validatePassResourceFlow(passes) {
42
+ const errors = [];
43
+ const produced = new Set();
44
+ for (const pass of passes) {
45
+ for (const resource of pass.reads) {
46
+ if (!produced.has(resource) && !isExternalResource(resource)) {
47
+ errors.push(`${pass.id} reads unwritten resource: ${resource}.`);
48
+ }
49
+ }
50
+ for (const resource of pass.writes)
51
+ produced.add(resource);
52
+ }
53
+ return errors;
54
+ }
55
+ /** Scene/environment inputs exist before the graph runs; everything else must be produced in-graph. */
56
+ function isExternalResource(resource) {
57
+ return ["scene.geometry", "scene.casters", "shadow.maps", "environment.sky", "environment.lighting"].includes(resource);
58
+ }
59
+ //# sourceMappingURL=FramegraphTopology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FramegraphTopology.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/FramegraphTopology.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,MAA6B;IAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACzD,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,CAAC,CAAC;QACtE,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,GAAG,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACzE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA6B;IACpE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,8BAA8B,QAAQ,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uGAAuG;AACvG,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,CAAC,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1H,CAAC"}
@@ -1,8 +1,26 @@
1
- import type { RenderPass } from '../framegraph/RenderPass.js';
1
+ import { type RenderPass, type RenderPassExecutionContext } from '../framegraph/RenderPass.js';
2
+ /** Compatibility adapter; rendering is dispatched to the canonical native pass.
3
+ * Allocation, shader compilation and device lifetime remain with that renderer. */
4
+ export interface OpaquePassOptions {
5
+ readonly enabled?: boolean;
6
+ readonly depthResource?: string;
7
+ readonly shadowMaskResource?: string;
8
+ readonly lightingResource?: string;
9
+ readonly colorResource?: string;
10
+ }
2
11
  export declare class OpaquePass implements RenderPass {
12
+ private readonly options;
3
13
  readonly id = "OpaquePass";
4
14
  readonly kind: "opaque";
5
15
  readonly reads: readonly string[];
6
16
  readonly writes: readonly string[];
17
+ private executedFrames;
18
+ private lastFrame;
19
+ constructor(options?: OpaquePassOptions);
20
+ get enabled(): boolean;
21
+ get executionCount(): number;
22
+ get lastExecutedFrame(): number;
23
+ validateResources(available: readonly string[]): void;
24
+ execute(context: RenderPassExecutionContext): void;
7
25
  }
8
26
  //# sourceMappingURL=OpaquePass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpaquePass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/OpaquePass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,qBAAa,UAAW,YAAW,UAAU;IAC3C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAM;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"OpaquePass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/OpaquePass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG/G;mFACmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,UAAW,YAAW,UAAU;IAQ/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEM,OAAO,GAAE,iBAAsB;IAY5D,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAOnD"}
@@ -1,7 +1,48 @@
1
+ import { executeNativePass } from '../framegraph/RenderPass.js';
2
+ import { assertValidPassContext } from './DepthPrepass.js';
1
3
  export class OpaquePass {
4
+ options;
2
5
  id = 'OpaquePass';
3
6
  kind = 'opaque';
4
- reads = [];
5
- writes = [];
7
+ reads;
8
+ writes;
9
+ executedFrames = 0;
10
+ lastFrame = -1;
11
+ constructor(options = {}) {
12
+ this.options = options;
13
+ const depthResource = options.depthResource ?? 'linear-depth';
14
+ const shadowMaskResource = options.shadowMaskResource ?? 'shadow.mask';
15
+ const lightingResource = options.lightingResource ?? 'environment.lighting';
16
+ const colorResource = options.colorResource ?? 'hdr.color';
17
+ for (const [label, value] of [["depthResource", depthResource], ["shadowMaskResource", shadowMaskResource], ["lightingResource", lightingResource], ["colorResource", colorResource]]) {
18
+ if (value.trim().length === 0)
19
+ throw new Error(`OpaquePass ${label} must be non-empty.`);
20
+ }
21
+ this.reads = [depthResource, shadowMaskResource, lightingResource, colorResource];
22
+ this.writes = [colorResource];
23
+ }
24
+ get enabled() {
25
+ return this.options.enabled ?? true;
26
+ }
27
+ get executionCount() {
28
+ return this.executedFrames;
29
+ }
30
+ get lastExecutedFrame() {
31
+ return this.lastFrame;
32
+ }
33
+ validateResources(available) {
34
+ const missing = this.reads.filter((resource) => !available.includes(resource));
35
+ if (missing.length > 0) {
36
+ throw new Error(`OpaquePass missing resources: ${missing.join(", ")}.`);
37
+ }
38
+ }
39
+ execute(context) {
40
+ assertValidPassContext(this.id, context);
41
+ if (!this.enabled)
42
+ return;
43
+ executeNativePass(this, context);
44
+ this.executedFrames += 1;
45
+ this.lastFrame = context.frameIndex;
46
+ }
6
47
  }
7
48
  //# sourceMappingURL=OpaquePass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpaquePass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/OpaquePass.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,UAAU;IACZ,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,GAAsB,EAAE,CAAC;IAC9B,MAAM,GAAsB,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"OpaquePass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/OpaquePass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAYxD,MAAM,OAAO,UAAU;IAQQ;IAPpB,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,CAAoB;IACzB,MAAM,CAAoB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvB,YAA6B,UAA6B,EAAE;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC;QAC9D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,aAAa,CAAC;QACvE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,sBAAsB,CAAC;QAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC;QAC3D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,CAAU,EAAE,CAAC;YAC/L,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,qBAAqB,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,SAA4B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;CACF"}
@@ -1,8 +1,26 @@
1
- import type { RenderPass } from '../framegraph/RenderPass.js';
1
+ import { type RenderPass, type RenderPassExecutionContext } from '../framegraph/RenderPass.js';
2
+ /** Compatibility adapter; rendering is dispatched to the canonical native pass.
3
+ * Allocation, shader compilation and device lifetime remain with that renderer. */
4
+ export interface ShadowPassOptions {
5
+ readonly enabled?: boolean;
6
+ readonly casterResource?: string;
7
+ readonly shadowMapResource?: string;
8
+ readonly shadowMaskResource?: string;
9
+ readonly maxShadowCasters?: number;
10
+ }
2
11
  export declare class ShadowPass implements RenderPass {
12
+ private readonly options;
3
13
  readonly id = "ShadowPass";
4
14
  readonly kind: "shadow";
5
15
  readonly reads: readonly string[];
6
16
  readonly writes: readonly string[];
17
+ private executedFrames;
18
+ private lastFrame;
19
+ constructor(options?: ShadowPassOptions);
20
+ get enabled(): boolean;
21
+ get executionCount(): number;
22
+ get lastExecutedFrame(): number;
23
+ validateResources(available: readonly string[]): void;
24
+ execute(context: RenderPassExecutionContext): void;
7
25
  }
8
26
  //# sourceMappingURL=ShadowPass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ShadowPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,qBAAa,UAAW,YAAW,UAAU;IAC3C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAM;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"ShadowPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ShadowPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG/G;mFACmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,qBAAa,UAAW,YAAW,UAAU;IAQ/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEM,OAAO,GAAE,iBAAsB;IAc5D,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAOnD"}
@@ -1,7 +1,50 @@
1
+ import { executeNativePass } from '../framegraph/RenderPass.js';
2
+ import { assertValidPassContext } from './DepthPrepass.js';
1
3
  export class ShadowPass {
4
+ options;
2
5
  id = 'ShadowPass';
3
6
  kind = 'shadow';
4
- reads = [];
5
- writes = [];
7
+ reads;
8
+ writes;
9
+ executedFrames = 0;
10
+ lastFrame = -1;
11
+ constructor(options = {}) {
12
+ this.options = options;
13
+ const casterResource = options.casterResource ?? 'scene.casters';
14
+ const shadowMapResource = options.shadowMapResource ?? 'shadow.maps';
15
+ const shadowMaskResource = options.shadowMaskResource ?? 'shadow.mask';
16
+ for (const [label, value] of [["casterResource", casterResource], ["shadowMapResource", shadowMapResource], ["shadowMaskResource", shadowMaskResource]]) {
17
+ if (value.trim().length === 0)
18
+ throw new Error(`ShadowPass ${label} must be non-empty.`);
19
+ }
20
+ if (options.maxShadowCasters !== undefined && (!Number.isInteger(options.maxShadowCasters) || options.maxShadowCasters <= 0)) {
21
+ throw new RangeError("ShadowPass maxShadowCasters must be a positive integer.");
22
+ }
23
+ this.reads = [casterResource, shadowMapResource];
24
+ this.writes = [shadowMaskResource];
25
+ }
26
+ get enabled() {
27
+ return this.options.enabled ?? true;
28
+ }
29
+ get executionCount() {
30
+ return this.executedFrames;
31
+ }
32
+ get lastExecutedFrame() {
33
+ return this.lastFrame;
34
+ }
35
+ validateResources(available) {
36
+ const missing = this.reads.filter((resource) => !available.includes(resource));
37
+ if (missing.length > 0) {
38
+ throw new Error(`ShadowPass missing resources: ${missing.join(", ")}.`);
39
+ }
40
+ }
41
+ execute(context) {
42
+ assertValidPassContext(this.id, context);
43
+ if (!this.enabled)
44
+ return;
45
+ executeNativePass(this, context);
46
+ this.executedFrames += 1;
47
+ this.lastFrame = context.frameIndex;
48
+ }
6
49
  }
7
50
  //# sourceMappingURL=ShadowPass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ShadowPass.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,UAAU;IACZ,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,GAAsB,EAAE,CAAC;IAC9B,MAAM,GAAsB,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"ShadowPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ShadowPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAYxD,MAAM,OAAO,UAAU;IAQQ;IAPpB,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,CAAoB;IACzB,MAAM,CAAoB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvB,YAA6B,UAA6B,EAAE;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;QACjE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,aAAa,CAAC;QACrE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,aAAa,CAAC;QACvE,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAU,EAAE,CAAC;YACjK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,qBAAqB,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7H,MAAM,IAAI,UAAU,CAAC,yDAAyD,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,SAA4B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;CACF"}
@@ -1,8 +1,24 @@
1
- import type { RenderPass } from '../framegraph/RenderPass.js';
1
+ import { type RenderPass, type RenderPassExecutionContext } from '../framegraph/RenderPass.js';
2
+ /** Compatibility adapter; rendering is dispatched to the canonical native pass.
3
+ * Allocation, shader compilation and device lifetime remain with that renderer. */
4
+ export interface SkyboxPassOptions {
5
+ readonly enabled?: boolean;
6
+ readonly skyResource?: string;
7
+ readonly colorResource?: string;
8
+ }
2
9
  export declare class SkyboxPass implements RenderPass {
10
+ private readonly options;
3
11
  readonly id = "SkyboxPass";
4
12
  readonly kind: "skybox";
5
13
  readonly reads: readonly string[];
6
14
  readonly writes: readonly string[];
15
+ private executedFrames;
16
+ private lastFrame;
17
+ constructor(options?: SkyboxPassOptions);
18
+ get enabled(): boolean;
19
+ get executionCount(): number;
20
+ get lastExecutedFrame(): number;
21
+ validateResources(available: readonly string[]): void;
22
+ execute(context: RenderPassExecutionContext): void;
7
23
  }
8
24
  //# sourceMappingURL=SkyboxPass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkyboxPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/SkyboxPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,qBAAa,UAAW,YAAW,UAAU;IAC3C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAM;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"SkyboxPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/SkyboxPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG/G;mFACmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,UAAW,YAAW,UAAU;IAQ/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEM,OAAO,GAAE,iBAAsB;IAS5D,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAOnD"}
@@ -1,7 +1,46 @@
1
+ import { executeNativePass } from '../framegraph/RenderPass.js';
2
+ import { assertValidPassContext } from './DepthPrepass.js';
1
3
  export class SkyboxPass {
4
+ options;
2
5
  id = 'SkyboxPass';
3
6
  kind = 'skybox';
4
- reads = [];
5
- writes = [];
7
+ reads;
8
+ writes;
9
+ executedFrames = 0;
10
+ lastFrame = -1;
11
+ constructor(options = {}) {
12
+ this.options = options;
13
+ const skyResource = options.skyResource ?? 'environment.sky';
14
+ const colorResource = options.colorResource ?? 'hdr.color';
15
+ if (skyResource.trim().length === 0)
16
+ throw new Error("SkyboxPass skyResource must be non-empty.");
17
+ if (colorResource.trim().length === 0)
18
+ throw new Error("SkyboxPass colorResource must be non-empty.");
19
+ this.reads = [skyResource];
20
+ this.writes = [colorResource];
21
+ }
22
+ get enabled() {
23
+ return this.options.enabled ?? true;
24
+ }
25
+ get executionCount() {
26
+ return this.executedFrames;
27
+ }
28
+ get lastExecutedFrame() {
29
+ return this.lastFrame;
30
+ }
31
+ validateResources(available) {
32
+ const missing = this.reads.filter((resource) => !available.includes(resource));
33
+ if (missing.length > 0) {
34
+ throw new Error(`SkyboxPass missing resources: ${missing.join(", ")}.`);
35
+ }
36
+ }
37
+ execute(context) {
38
+ assertValidPassContext(this.id, context);
39
+ if (!this.enabled)
40
+ return;
41
+ executeNativePass(this, context);
42
+ this.executedFrames += 1;
43
+ this.lastFrame = context.frameIndex;
44
+ }
6
45
  }
7
46
  //# sourceMappingURL=SkyboxPass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkyboxPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/SkyboxPass.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,UAAU;IACZ,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,GAAsB,EAAE,CAAC;IAC9B,MAAM,GAAsB,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"SkyboxPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/SkyboxPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAUxD,MAAM,OAAO,UAAU;IAQQ;IAPpB,EAAE,GAAG,YAAY,CAAC;IAClB,IAAI,GAAG,QAAiB,CAAC;IACzB,KAAK,CAAoB;IACzB,MAAM,CAAoB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvB,YAA6B,UAA6B,EAAE;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC;QAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC;QAC3D,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAClG,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACtG,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,SAA4B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;CACF"}
@@ -1,8 +1,33 @@
1
- import type { RenderPass } from '../framegraph/RenderPass.js';
1
+ import type { ToneMappingOperator } from '../../PostProcessPass.js';
2
+ import { type RenderPass, type RenderPassExecutionContext } from '../framegraph/RenderPass.js';
3
+ /** Compatibility adapter; rendering is dispatched to the canonical native pass.
4
+ * Allocation, shader compilation and device lifetime remain with that renderer. */
5
+ export type FramegraphToneOperator = "aces-filmic" | "reinhard" | "neutral";
6
+ /** Published compatibility spelling maps to the canonical ACES filmic implementation. */
7
+ export declare function toNativeFramegraphToneOperator(operator: FramegraphToneOperator | ToneMappingOperator): ToneMappingOperator;
8
+ export interface ToneMappingPassOptions {
9
+ readonly enabled?: boolean;
10
+ readonly colorResource?: string;
11
+ readonly outputResource?: string;
12
+ readonly exposure?: number;
13
+ readonly operator?: FramegraphToneOperator;
14
+ }
2
15
  export declare class ToneMappingPass implements RenderPass {
16
+ private readonly options;
3
17
  readonly id = "ToneMappingPass";
4
18
  readonly kind: "postprocess";
5
19
  readonly reads: readonly string[];
6
20
  readonly writes: readonly string[];
21
+ private executedFrames;
22
+ private lastFrame;
23
+ constructor(options?: ToneMappingPassOptions);
24
+ get enabled(): boolean;
25
+ get exposure(): number;
26
+ get operator(): FramegraphToneOperator;
27
+ get nativeOperator(): ToneMappingOperator;
28
+ get executionCount(): number;
29
+ get lastExecutedFrame(): number;
30
+ validateResources(available: readonly string[]): void;
31
+ execute(context: RenderPassExecutionContext): void;
7
32
  }
8
33
  //# sourceMappingURL=ToneMappingPass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToneMappingPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ToneMappingPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,EAAE,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAM;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"ToneMappingPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ToneMappingPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG/G;mFACmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5E,yFAAyF;AACzF,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,CAE1H;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED,qBAAa,eAAgB,YAAW,UAAU;IAQpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEM,OAAO,GAAE,sBAA2B;IAiBjE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,sBAAsB,CAErC;IAED,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAOnD"}
@@ -1,7 +1,67 @@
1
+ import { executeNativePass } from '../framegraph/RenderPass.js';
2
+ import { assertValidPassContext } from './DepthPrepass.js';
3
+ /** Published compatibility spelling maps to the canonical ACES filmic implementation. */
4
+ export function toNativeFramegraphToneOperator(operator) {
5
+ return operator === 'aces-filmic' ? 'aces' : operator;
6
+ }
1
7
  export class ToneMappingPass {
8
+ options;
2
9
  id = 'ToneMappingPass';
3
10
  kind = 'postprocess';
4
- reads = [];
5
- writes = [];
11
+ reads;
12
+ writes;
13
+ executedFrames = 0;
14
+ lastFrame = -1;
15
+ constructor(options = {}) {
16
+ this.options = options;
17
+ const colorResource = options.colorResource ?? 'hdr.color';
18
+ const outputResource = options.outputResource ?? 'ldr.output';
19
+ if (colorResource.trim().length === 0)
20
+ throw new Error("ToneMappingPass colorResource must be non-empty.");
21
+ if (outputResource.trim().length === 0)
22
+ throw new Error("ToneMappingPass outputResource must be non-empty.");
23
+ const exposure = options.exposure ?? 1;
24
+ if (!Number.isFinite(exposure) || exposure <= 0) {
25
+ throw new RangeError("ToneMappingPass exposure must be a positive finite number.");
26
+ }
27
+ const operator = options.operator ?? "aces-filmic";
28
+ if (operator !== "aces-filmic" && operator !== "reinhard" && operator !== "neutral") {
29
+ throw new Error(`ToneMappingPass unknown operator: ${String(operator)}.`);
30
+ }
31
+ this.reads = [colorResource];
32
+ this.writes = [outputResource];
33
+ }
34
+ get enabled() {
35
+ return this.options.enabled ?? true;
36
+ }
37
+ get exposure() {
38
+ return this.options.exposure ?? 1;
39
+ }
40
+ get operator() {
41
+ return this.options.operator ?? "aces-filmic";
42
+ }
43
+ get nativeOperator() {
44
+ return toNativeFramegraphToneOperator(this.operator);
45
+ }
46
+ get executionCount() {
47
+ return this.executedFrames;
48
+ }
49
+ get lastExecutedFrame() {
50
+ return this.lastFrame;
51
+ }
52
+ validateResources(available) {
53
+ const missing = this.reads.filter((resource) => !available.includes(resource));
54
+ if (missing.length > 0) {
55
+ throw new Error(`ToneMappingPass missing resources: ${missing.join(", ")}.`);
56
+ }
57
+ }
58
+ execute(context) {
59
+ assertValidPassContext(this.id, context);
60
+ if (!this.enabled)
61
+ return;
62
+ executeNativePass(this, context);
63
+ this.executedFrames += 1;
64
+ this.lastFrame = context.frameIndex;
65
+ }
6
66
  }
7
67
  //# sourceMappingURL=ToneMappingPass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToneMappingPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ToneMappingPass.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,eAAe;IACjB,EAAE,GAAG,iBAAiB,CAAC;IACvB,IAAI,GAAG,aAAsB,CAAC;IAC9B,KAAK,GAAsB,EAAE,CAAC;IAC9B,MAAM,GAAsB,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"ToneMappingPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/ToneMappingPass.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,yFAAyF;AACzF,MAAM,UAAU,8BAA8B,CAAC,QAAsD;IACnG,OAAO,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAUD,MAAM,OAAO,eAAe;IAQG;IAPpB,EAAE,GAAG,iBAAiB,CAAC;IACvB,IAAI,GAAG,aAAsB,CAAC;IAC9B,KAAK,CAAoB;IACzB,MAAM,CAAoB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvB,YAA6B,UAAkC,EAAE;QAApC,YAAO,GAAP,OAAO,CAA6B;QAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC;QAC9D,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC3G,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC7G,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;QACnD,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;IAChD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,SAA4B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;CACF"}
@@ -1,8 +1,26 @@
1
- import type { RenderPass } from '../framegraph/RenderPass.js';
1
+ import { type RenderPass, type RenderPassExecutionContext } from '../framegraph/RenderPass.js';
2
+ /** Compatibility adapter; rendering is dispatched to the canonical native pass.
3
+ * Allocation, shader compilation and device lifetime remain with that renderer. */
4
+ export interface TransparentPassOptions {
5
+ readonly enabled?: boolean;
6
+ readonly colorResource?: string;
7
+ readonly depthResource?: string;
8
+ readonly geometryResource?: string;
9
+ readonly maxTransparentItems?: number;
10
+ }
2
11
  export declare class TransparentPass implements RenderPass {
12
+ private readonly options;
3
13
  readonly id = "TransparentPass";
4
14
  readonly kind: "transparent";
5
15
  readonly reads: readonly string[];
6
16
  readonly writes: readonly string[];
17
+ private executedFrames;
18
+ private lastFrame;
19
+ constructor(options?: TransparentPassOptions);
20
+ get enabled(): boolean;
21
+ get executionCount(): number;
22
+ get lastExecutedFrame(): number;
23
+ validateResources(available: readonly string[]): void;
24
+ execute(context: RenderPassExecutionContext): void;
7
25
  }
8
26
  //# sourceMappingURL=TransparentPass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransparentPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/TransparentPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,EAAE,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAM;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"TransparentPass.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/TransparentPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG/G;mFACmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,qBAAa,eAAgB,YAAW,UAAU;IAQpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEM,OAAO,GAAE,sBAA2B;IAcjE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAOnD"}
@@ -1,7 +1,52 @@
1
+ import { executeNativePass } from '../framegraph/RenderPass.js';
2
+ import { assertValidPassContext } from './DepthPrepass.js';
1
3
  export class TransparentPass {
4
+ options;
2
5
  id = 'TransparentPass';
3
6
  kind = 'transparent';
4
- reads = [];
5
- writes = [];
7
+ reads;
8
+ writes;
9
+ executedFrames = 0;
10
+ lastFrame = -1;
11
+ constructor(options = {}) {
12
+ this.options = options;
13
+ const colorResource = options.colorResource ?? 'hdr.color';
14
+ const depthResource = options.depthResource ?? 'linear-depth';
15
+ const geometryResource = options.geometryResource ?? 'scene.geometry';
16
+ if (geometryResource.trim().length === 0)
17
+ throw new Error('TransparentPass geometryResource must be non-empty.');
18
+ if (colorResource.trim().length === 0)
19
+ throw new Error("TransparentPass colorResource must be non-empty.");
20
+ if (depthResource.trim().length === 0)
21
+ throw new Error("TransparentPass depthResource must be non-empty.");
22
+ if (options.maxTransparentItems !== undefined && (!Number.isInteger(options.maxTransparentItems) || options.maxTransparentItems <= 0)) {
23
+ throw new RangeError("TransparentPass maxTransparentItems must be a positive integer.");
24
+ }
25
+ this.reads = [colorResource, depthResource, geometryResource];
26
+ this.writes = [colorResource];
27
+ }
28
+ get enabled() {
29
+ return this.options.enabled ?? true;
30
+ }
31
+ get executionCount() {
32
+ return this.executedFrames;
33
+ }
34
+ get lastExecutedFrame() {
35
+ return this.lastFrame;
36
+ }
37
+ validateResources(available) {
38
+ const missing = this.reads.filter((resource) => !available.includes(resource));
39
+ if (missing.length > 0) {
40
+ throw new Error(`TransparentPass missing resources: ${missing.join(", ")}.`);
41
+ }
42
+ }
43
+ execute(context) {
44
+ assertValidPassContext(this.id, context);
45
+ if (!this.enabled)
46
+ return;
47
+ executeNativePass(this, context);
48
+ this.executedFrames += 1;
49
+ this.lastFrame = context.frameIndex;
50
+ }
6
51
  }
7
52
  //# sourceMappingURL=TransparentPass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransparentPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/TransparentPass.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,eAAe;IACjB,EAAE,GAAG,iBAAiB,CAAC;IACvB,IAAI,GAAG,aAAsB,CAAC;IAC9B,KAAK,GAAsB,EAAE,CAAC;IAC9B,MAAM,GAAsB,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"TransparentPass.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/production-runtime/passes/TransparentPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAYxD,MAAM,OAAO,eAAe;IAQG;IAPpB,EAAE,GAAG,iBAAiB,CAAC;IACvB,IAAI,GAAG,aAAsB,CAAC;IAC9B,KAAK,CAAoB;IACzB,MAAM,CAAoB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvB,YAA6B,UAAkC,EAAE;QAApC,YAAO,GAAP,OAAO,CAA6B;QAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC;QAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC;QAC9D,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;QACtE,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACjH,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC3G,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC3G,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC;YACtI,MAAM,IAAI,UAAU,CAAC,iEAAiE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,SAA4B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export { ScreenSpaceReflectionPass, invertSsrProjection } from "./ScreenSpaceReflectionPass.js";
2
+ export type { ReflectionSurfaceSsrInputs, ReflectionSurfaceSsrResult } from "./ScreenSpaceReflectionPass.js";
3
+ export { createReflectionSurface, createReflectiveFloorSurface, listReflectionSurfaceKinds, } from "./ReflectionSurfaces.js";
4
+ export type { ReflectionSurface, ReflectionSurfaceKind, ReflectionSurfaceOptions, ReflectionSurfaceReport, ReflectionSurfaceSupportStatus, } from "./ReflectionSurfaces.js";
5
+ //# sourceMappingURL=reflection-surfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-surfaces.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/reflection-surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,YAAY,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ScreenSpaceReflectionPass, invertSsrProjection } from "./ScreenSpaceReflectionPass.js";
2
+ export { createReflectionSurface, createReflectiveFloorSurface, listReflectionSurfaceKinds, } from "./ReflectionSurfaces.js";
3
+ //# sourceMappingURL=reflection-surfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-surfaces.js","sourceRoot":"","sources":["../../../../packages/rendering/src/reflection-surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC"}