@aura3d/rendering 3.0.1 → 4.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 (1764) hide show
  1. package/dist/BlendModes.d.ts +34 -0
  2. package/dist/BlendModes.d.ts.map +1 -0
  3. package/dist/BlendModes.js +42 -0
  4. package/dist/BlendModes.js.map +1 -0
  5. package/dist/DepthPass.d.ts +18 -0
  6. package/dist/DepthPass.d.ts.map +1 -1
  7. package/dist/DepthPass.js +103 -20
  8. package/dist/DepthPass.js.map +1 -1
  9. package/dist/EnvironmentBackgroundPass.d.ts +7 -0
  10. package/dist/EnvironmentBackgroundPass.d.ts.map +1 -1
  11. package/dist/EnvironmentBackgroundPass.js +39 -14
  12. package/dist/EnvironmentBackgroundPass.js.map +1 -1
  13. package/dist/EnvironmentMapResources.d.ts +1 -1
  14. package/dist/EnvironmentMapResources.d.ts.map +1 -1
  15. package/dist/EnvironmentMapResources.js +19 -8
  16. package/dist/EnvironmentMapResources.js.map +1 -1
  17. package/dist/EnvironmentPlatform.d.ts +6 -0
  18. package/dist/EnvironmentPlatform.d.ts.map +1 -1
  19. package/dist/EnvironmentPlatform.js +3 -1
  20. package/dist/EnvironmentPlatform.js.map +1 -1
  21. package/dist/EnvironmentPreset.d.ts +7 -0
  22. package/dist/EnvironmentPreset.d.ts.map +1 -1
  23. package/dist/EnvironmentPreset.js +11 -11
  24. package/dist/EnvironmentPreset.js.map +1 -1
  25. package/dist/EnvironmentPresetPack.d.ts +16 -0
  26. package/dist/EnvironmentPresetPack.d.ts.map +1 -1
  27. package/dist/EnvironmentPresetPack.js +28 -0
  28. package/dist/EnvironmentPresetPack.js.map +1 -1
  29. package/dist/ExternalParityRenderPreset.d.ts +15 -1
  30. package/dist/ExternalParityRenderPreset.d.ts.map +1 -1
  31. package/dist/ExternalParityRenderPreset.js +52 -7
  32. package/dist/ExternalParityRenderPreset.js.map +1 -1
  33. package/dist/ForwardPass.d.ts +240 -50
  34. package/dist/ForwardPass.d.ts.map +1 -1
  35. package/dist/ForwardPass.js +845 -866
  36. package/dist/ForwardPass.js.map +1 -1
  37. package/dist/Geometry.d.ts +44 -1
  38. package/dist/Geometry.d.ts.map +1 -1
  39. package/dist/Geometry.js +174 -24
  40. package/dist/Geometry.js.map +1 -1
  41. package/dist/InstancedPBRMaterial.d.ts +5 -0
  42. package/dist/InstancedPBRMaterial.d.ts.map +1 -1
  43. package/dist/InstancedPBRMaterial.js +7 -0
  44. package/dist/InstancedPBRMaterial.js.map +1 -1
  45. package/dist/LightCollector.d.ts +8 -0
  46. package/dist/LightCollector.d.ts.map +1 -1
  47. package/dist/LightCollector.js +1 -1
  48. package/dist/LightCollector.js.map +1 -1
  49. package/dist/LightUniforms.d.ts +78 -0
  50. package/dist/LightUniforms.d.ts.map +1 -1
  51. package/dist/LightUniforms.js +100 -0
  52. package/dist/LightUniforms.js.map +1 -1
  53. package/dist/Material.d.ts +15 -0
  54. package/dist/Material.d.ts.map +1 -1
  55. package/dist/Material.js +19 -2
  56. package/dist/Material.js.map +1 -1
  57. package/dist/MaterialBinding.d.ts +10 -0
  58. package/dist/MaterialBinding.d.ts.map +1 -1
  59. package/dist/MaterialBinding.js +91 -1
  60. package/dist/MaterialBinding.js.map +1 -1
  61. package/dist/MaterialPresets.d.ts +60 -0
  62. package/dist/MaterialPresets.d.ts.map +1 -1
  63. package/dist/MaterialPresets.js +212 -0
  64. package/dist/MaterialPresets.js.map +1 -1
  65. package/dist/NormalMappedPBRMaterial.d.ts +5 -0
  66. package/dist/NormalMappedPBRMaterial.d.ts.map +1 -1
  67. package/dist/NormalMappedPBRMaterial.js +7 -0
  68. package/dist/NormalMappedPBRMaterial.js.map +1 -1
  69. package/dist/OceanSurface.d.ts +8 -0
  70. package/dist/OceanSurface.d.ts.map +1 -1
  71. package/dist/OceanSurface.js +10 -79
  72. package/dist/OceanSurface.js.map +1 -1
  73. package/dist/PBRLightingDefaults.d.ts +8 -0
  74. package/dist/PBRLightingDefaults.d.ts.map +1 -1
  75. package/dist/PBRLightingDefaults.js +8 -0
  76. package/dist/PBRLightingDefaults.js.map +1 -1
  77. package/dist/PBRMaterial.d.ts +5 -0
  78. package/dist/PBRMaterial.d.ts.map +1 -1
  79. package/dist/PBRMaterial.js +7 -0
  80. package/dist/PBRMaterial.js.map +1 -1
  81. package/dist/PostProcessPass.d.ts +6 -490
  82. package/dist/PostProcessPass.d.ts.map +1 -1
  83. package/dist/PostProcessPass.js +6 -2016
  84. package/dist/PostProcessPass.js.map +1 -1
  85. package/dist/ProceduralMaterialTextures.d.ts +28 -0
  86. package/dist/ProceduralMaterialTextures.d.ts.map +1 -0
  87. package/dist/ProceduralMaterialTextures.js +217 -0
  88. package/dist/ProceduralMaterialTextures.js.map +1 -0
  89. package/dist/ReflectionProbe.d.ts.map +1 -1
  90. package/dist/ReflectionProbe.js +4 -1
  91. package/dist/ReflectionProbe.js.map +1 -1
  92. package/dist/RenderBackend.d.ts +2 -0
  93. package/dist/RenderBackend.d.ts.map +1 -1
  94. package/dist/RenderBackend.js +3 -0
  95. package/dist/RenderBackend.js.map +1 -1
  96. package/dist/RenderDevice.d.ts +92 -5
  97. package/dist/RenderDevice.d.ts.map +1 -1
  98. package/dist/RenderDevice.js +166 -9
  99. package/dist/RenderDevice.js.map +1 -1
  100. package/dist/RenderGraph.d.ts.map +1 -1
  101. package/dist/RenderGraph.js +17 -0
  102. package/dist/RenderGraph.js.map +1 -1
  103. package/dist/RenderPass.d.ts +7 -0
  104. package/dist/RenderPass.d.ts.map +1 -1
  105. package/dist/RenderPass.js.map +1 -1
  106. package/dist/RenderPipeline.d.ts +5 -0
  107. package/dist/RenderPipeline.d.ts.map +1 -1
  108. package/dist/RenderPipeline.js +6 -0
  109. package/dist/RenderPipeline.js.map +1 -1
  110. package/dist/Renderer.d.ts +261 -66
  111. package/dist/Renderer.d.ts.map +1 -1
  112. package/dist/Renderer.js +889 -1254
  113. package/dist/Renderer.js.map +1 -1
  114. package/dist/RendererPostprocessPlan.d.ts +4 -0
  115. package/dist/RendererPostprocessPlan.d.ts.map +1 -1
  116. package/dist/RendererPostprocessPlan.js +16 -2
  117. package/dist/RendererPostprocessPlan.js.map +1 -1
  118. package/dist/RendererTiming.d.ts +27 -0
  119. package/dist/RendererTiming.d.ts.map +1 -1
  120. package/dist/RendererTiming.js +179 -12
  121. package/dist/RendererTiming.js.map +1 -1
  122. package/dist/ResolutionGovernor.d.ts +56 -0
  123. package/dist/ResolutionGovernor.d.ts.map +1 -0
  124. package/dist/ResolutionGovernor.js +87 -0
  125. package/dist/ResolutionGovernor.js.map +1 -0
  126. package/dist/Sampler.d.ts +34 -1
  127. package/dist/Sampler.d.ts.map +1 -1
  128. package/dist/Sampler.js +55 -2
  129. package/dist/Sampler.js.map +1 -1
  130. package/dist/ShaderLibrary.d.ts.map +1 -1
  131. package/dist/ShaderLibrary.js +15 -10
  132. package/dist/ShaderLibrary.js.map +1 -1
  133. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  134. package/dist/ShaderLibraryCore.js +3 -2
  135. package/dist/ShaderLibraryCore.js.map +1 -1
  136. package/dist/ShaderModule.d.ts +7 -1
  137. package/dist/ShaderModule.d.ts.map +1 -1
  138. package/dist/ShaderModule.js +20 -5
  139. package/dist/ShaderModule.js.map +1 -1
  140. package/dist/ShadowPass.d.ts.map +1 -1
  141. package/dist/ShadowPass.js +14 -7
  142. package/dist/ShadowPass.js.map +1 -1
  143. package/dist/SkinnedLitMaterial.d.ts +5 -0
  144. package/dist/SkinnedLitMaterial.d.ts.map +1 -1
  145. package/dist/SkinnedLitMaterial.js +13 -0
  146. package/dist/SkinnedLitMaterial.js.map +1 -1
  147. package/dist/SkinningBounds.d.ts +18 -0
  148. package/dist/SkinningBounds.d.ts.map +1 -1
  149. package/dist/SkinningBounds.js +78 -0
  150. package/dist/SkinningBounds.js.map +1 -1
  151. package/dist/SkinningPaletteTextureCache.d.ts +117 -0
  152. package/dist/SkinningPaletteTextureCache.d.ts.map +1 -0
  153. package/dist/SkinningPaletteTextureCache.js +205 -0
  154. package/dist/SkinningPaletteTextureCache.js.map +1 -0
  155. package/dist/SkinningUniforms.d.ts +56 -0
  156. package/dist/SkinningUniforms.d.ts.map +1 -0
  157. package/dist/SkinningUniforms.js +262 -0
  158. package/dist/SkinningUniforms.js.map +1 -0
  159. package/dist/TemporalHistory.d.ts +33 -0
  160. package/dist/TemporalHistory.d.ts.map +1 -1
  161. package/dist/TemporalHistory.js +84 -1
  162. package/dist/TemporalHistory.js.map +1 -1
  163. package/dist/TerrainHeightfield.d.ts +12 -0
  164. package/dist/TerrainHeightfield.d.ts.map +1 -1
  165. package/dist/TerrainHeightfield.js +29 -6
  166. package/dist/TerrainHeightfield.js.map +1 -1
  167. package/dist/TerrainTiles.d.ts +40 -10
  168. package/dist/TerrainTiles.d.ts.map +1 -1
  169. package/dist/TerrainTiles.js +18 -57
  170. package/dist/TerrainTiles.js.map +1 -1
  171. package/dist/Texture.d.ts +47 -2
  172. package/dist/Texture.d.ts.map +1 -1
  173. package/dist/Texture.js +119 -3
  174. package/dist/Texture.js.map +1 -1
  175. package/dist/TexturedPBRMaterial.d.ts +24 -0
  176. package/dist/TexturedPBRMaterial.d.ts.map +1 -1
  177. package/dist/TexturedPBRMaterial.js +72 -20
  178. package/dist/TexturedPBRMaterial.js.map +1 -1
  179. package/dist/TransmissionRenderTarget.d.ts +33 -0
  180. package/dist/TransmissionRenderTarget.d.ts.map +1 -0
  181. package/dist/TransmissionRenderTarget.js +61 -0
  182. package/dist/TransmissionRenderTarget.js.map +1 -0
  183. package/dist/VegetationScatter.js +1 -1
  184. package/dist/VegetationScatter.js.map +1 -1
  185. package/dist/VolumetricFog.d.ts +42 -0
  186. package/dist/VolumetricFog.d.ts.map +1 -1
  187. package/dist/VolumetricFog.js +52 -1
  188. package/dist/VolumetricFog.js.map +1 -1
  189. package/dist/WaterSurface.d.ts +5 -0
  190. package/dist/WaterSurface.d.ts.map +1 -1
  191. package/dist/WaterSurface.js +5 -0
  192. package/dist/WaterSurface.js.map +1 -1
  193. package/dist/WebGL2Device.d.ts +153 -207
  194. package/dist/WebGL2Device.d.ts.map +1 -1
  195. package/dist/WebGL2Device.js +822 -3706
  196. package/dist/WebGL2Device.js.map +1 -1
  197. package/dist/WebGL2StateCache.d.ts +15 -1
  198. package/dist/WebGL2StateCache.d.ts.map +1 -1
  199. package/dist/WebGL2StateCache.js +31 -2
  200. package/dist/WebGL2StateCache.js.map +1 -1
  201. package/dist/WebGPUDevice.d.ts +0 -4
  202. package/dist/WebGPUDevice.d.ts.map +1 -1
  203. package/dist/WebGPUDevice.js +31 -605
  204. package/dist/WebGPUDevice.js.map +1 -1
  205. package/dist/WebGPUSkinningLimits.d.ts +10 -1
  206. package/dist/WebGPUSkinningLimits.d.ts.map +1 -1
  207. package/dist/WebGPUSkinningLimits.js +15 -1
  208. package/dist/WebGPUSkinningLimits.js.map +1 -1
  209. package/dist/advanced-runtime/index.d.ts +6 -2
  210. package/dist/advanced-runtime/index.d.ts.map +1 -1
  211. package/dist/advanced-runtime/index.js +0 -1
  212. package/dist/advanced-runtime/index.js.map +1 -1
  213. package/dist/animation/AnimationRenderPreset.d.ts +1 -1
  214. package/dist/animation/AnimationRenderPreset.d.ts.map +1 -1
  215. package/dist/animation/AnimationRenderPreset.js +1 -1
  216. package/dist/animation/AnimationRenderPreset.js.map +1 -1
  217. package/dist/animation/applyAnimationRenderPreset.d.ts +1 -1
  218. package/dist/animation/applyAnimationRenderPreset.d.ts.map +1 -1
  219. package/dist/animation/index.d.ts +2 -1
  220. package/dist/animation/index.d.ts.map +1 -1
  221. package/dist/animation/index.js +1 -1
  222. package/dist/animation/index.js.map +1 -1
  223. package/dist/atmosphere/CloudLayer.d.ts +24 -0
  224. package/dist/atmosphere/CloudLayer.d.ts.map +1 -0
  225. package/dist/atmosphere/CloudLayer.js +30 -0
  226. package/dist/atmosphere/CloudLayer.js.map +1 -0
  227. package/dist/atmosphere/FogVolumes.d.ts +30 -0
  228. package/dist/atmosphere/FogVolumes.d.ts.map +1 -0
  229. package/dist/atmosphere/FogVolumes.js +96 -0
  230. package/dist/atmosphere/FogVolumes.js.map +1 -0
  231. package/dist/atmosphere/GradientSky.d.ts +40 -0
  232. package/dist/atmosphere/GradientSky.d.ts.map +1 -0
  233. package/dist/atmosphere/GradientSky.js +75 -0
  234. package/dist/atmosphere/GradientSky.js.map +1 -0
  235. package/dist/atmosphere/HeightFog.d.ts +154 -0
  236. package/dist/atmosphere/HeightFog.d.ts.map +1 -0
  237. package/dist/atmosphere/HeightFog.js +379 -0
  238. package/dist/atmosphere/HeightFog.js.map +1 -0
  239. package/dist/atmosphere/PreethamSky.d.ts +38 -0
  240. package/dist/atmosphere/PreethamSky.d.ts.map +1 -0
  241. package/dist/atmosphere/PreethamSky.js +150 -0
  242. package/dist/atmosphere/PreethamSky.js.map +1 -0
  243. package/dist/atmosphere/SkyBackgroundPass.d.ts +63 -0
  244. package/dist/atmosphere/SkyBackgroundPass.d.ts.map +1 -0
  245. package/dist/atmosphere/SkyBackgroundPass.js +233 -0
  246. package/dist/atmosphere/SkyBackgroundPass.js.map +1 -0
  247. package/dist/atmosphere/SkyCaptureAdapter.d.ts +45 -0
  248. package/dist/atmosphere/SkyCaptureAdapter.d.ts.map +1 -0
  249. package/dist/atmosphere/SkyCaptureAdapter.js +65 -0
  250. package/dist/atmosphere/SkyCaptureAdapter.js.map +1 -0
  251. package/dist/atmosphere/SkyEval.d.ts +56 -0
  252. package/dist/atmosphere/SkyEval.d.ts.map +1 -0
  253. package/dist/atmosphere/SkyEval.js +99 -0
  254. package/dist/atmosphere/SkyEval.js.map +1 -0
  255. package/dist/atmosphere/StarField.d.ts +26 -0
  256. package/dist/atmosphere/StarField.d.ts.map +1 -0
  257. package/dist/atmosphere/StarField.js +31 -0
  258. package/dist/atmosphere/StarField.js.map +1 -0
  259. package/dist/atmosphere/VolumetricFogPass.d.ts +69 -0
  260. package/dist/atmosphere/VolumetricFogPass.d.ts.map +1 -0
  261. package/dist/atmosphere/VolumetricFogPass.js +265 -0
  262. package/dist/atmosphere/VolumetricFogPass.js.map +1 -0
  263. package/dist/atmosphere/fogChunks.d.ts +8 -0
  264. package/dist/atmosphere/fogChunks.d.ts.map +1 -0
  265. package/dist/atmosphere/fogChunks.js +39 -0
  266. package/dist/atmosphere/fogChunks.js.map +1 -0
  267. package/dist/atmosphere/fogUniformStore.d.ts +20 -0
  268. package/dist/atmosphere/fogUniformStore.d.ts.map +1 -0
  269. package/dist/atmosphere/fogUniformStore.js +45 -0
  270. package/dist/atmosphere/fogUniformStore.js.map +1 -0
  271. package/dist/atmosphere/shaders/fog.glsl.d.ts +10 -0
  272. package/dist/atmosphere/shaders/fog.glsl.d.ts.map +1 -0
  273. package/dist/atmosphere/shaders/fog.glsl.js +161 -0
  274. package/dist/atmosphere/shaders/fog.glsl.js.map +1 -0
  275. package/dist/atmosphere/shaders/volumetric-apply.glsl.d.ts +3 -0
  276. package/dist/atmosphere/shaders/volumetric-apply.glsl.d.ts.map +1 -0
  277. package/dist/atmosphere/shaders/volumetric-apply.glsl.js +61 -0
  278. package/dist/atmosphere/shaders/volumetric-apply.glsl.js.map +1 -0
  279. package/dist/atmosphere/shaders/volumetric-inject.glsl.d.ts +4 -0
  280. package/dist/atmosphere/shaders/volumetric-inject.glsl.d.ts.map +1 -0
  281. package/dist/atmosphere/shaders/volumetric-inject.glsl.js +129 -0
  282. package/dist/atmosphere/shaders/volumetric-inject.glsl.js.map +1 -0
  283. package/dist/atmosphere/shaders/volumetric-integrate.glsl.d.ts +3 -0
  284. package/dist/atmosphere/shaders/volumetric-integrate.glsl.d.ts.map +1 -0
  285. package/dist/atmosphere/shaders/volumetric-integrate.glsl.js +55 -0
  286. package/dist/atmosphere/shaders/volumetric-integrate.glsl.js.map +1 -0
  287. package/dist/atmosphere/shaders/wetness.glsl.d.ts +34 -0
  288. package/dist/atmosphere/shaders/wetness.glsl.d.ts.map +1 -0
  289. package/dist/atmosphere/shaders/wetness.glsl.js +101 -0
  290. package/dist/atmosphere/shaders/wetness.glsl.js.map +1 -0
  291. package/dist/atmosphere/sky.glsl.d.ts +8 -0
  292. package/dist/atmosphere/sky.glsl.d.ts.map +1 -0
  293. package/dist/atmosphere/sky.glsl.js +249 -0
  294. package/dist/atmosphere/sky.glsl.js.map +1 -0
  295. package/dist/batching/BatchedGeometryPool.d.ts +72 -0
  296. package/dist/batching/BatchedGeometryPool.d.ts.map +1 -0
  297. package/dist/batching/BatchedGeometryPool.js +138 -0
  298. package/dist/batching/BatchedGeometryPool.js.map +1 -0
  299. package/dist/batching/ContentKeys.d.ts +29 -0
  300. package/dist/batching/ContentKeys.d.ts.map +1 -0
  301. package/dist/batching/ContentKeys.js +220 -0
  302. package/dist/batching/ContentKeys.js.map +1 -0
  303. package/dist/batching/DrawDataTexture.d.ts +51 -0
  304. package/dist/batching/DrawDataTexture.d.ts.map +1 -0
  305. package/dist/batching/DrawDataTexture.js +99 -0
  306. package/dist/batching/DrawDataTexture.js.map +1 -0
  307. package/dist/batching/MultiDrawBatch.d.ts +64 -0
  308. package/dist/batching/MultiDrawBatch.d.ts.map +1 -0
  309. package/dist/batching/MultiDrawBatch.js +103 -0
  310. package/dist/batching/MultiDrawBatch.js.map +1 -0
  311. package/dist/batching/StaticMergePlanner.d.ts +80 -0
  312. package/dist/batching/StaticMergePlanner.d.ts.map +1 -0
  313. package/dist/batching/StaticMergePlanner.js +323 -0
  314. package/dist/batching/StaticMergePlanner.js.map +1 -0
  315. package/dist/batching/index.d.ts +8 -0
  316. package/dist/batching/index.d.ts.map +1 -0
  317. package/dist/batching/index.js +8 -0
  318. package/dist/batching/index.js.map +1 -0
  319. package/dist/batching/shaders/drawId.glsl.d.ts +29 -0
  320. package/dist/batching/shaders/drawId.glsl.d.ts.map +1 -0
  321. package/dist/batching/shaders/drawId.glsl.js +93 -0
  322. package/dist/batching/shaders/drawId.glsl.js.map +1 -0
  323. package/dist/batching/shaders/instanceEmissive.glsl.d.ts +16 -0
  324. package/dist/batching/shaders/instanceEmissive.glsl.d.ts.map +1 -0
  325. package/dist/batching/shaders/instanceEmissive.glsl.js +63 -0
  326. package/dist/batching/shaders/instanceEmissive.glsl.js.map +1 -0
  327. package/dist/cinematic/BloomPass.d.ts +5 -9
  328. package/dist/cinematic/BloomPass.d.ts.map +1 -1
  329. package/dist/cinematic/BloomPass.js +5 -17
  330. package/dist/cinematic/BloomPass.js.map +1 -1
  331. package/dist/cinematic/DepthHazePass.d.ts +5 -11
  332. package/dist/cinematic/DepthHazePass.d.ts.map +1 -1
  333. package/dist/cinematic/DepthHazePass.js +5 -19
  334. package/dist/cinematic/DepthHazePass.js.map +1 -1
  335. package/dist/cinematic/FilmGrainPass.d.ts +5 -8
  336. package/dist/cinematic/FilmGrainPass.d.ts.map +1 -1
  337. package/dist/cinematic/FilmGrainPass.js +5 -16
  338. package/dist/cinematic/FilmGrainPass.js.map +1 -1
  339. package/dist/cinematic/VignettePass.d.ts +5 -9
  340. package/dist/cinematic/VignettePass.d.ts.map +1 -1
  341. package/dist/cinematic/VignettePass.js +5 -16
  342. package/dist/cinematic/VignettePass.js.map +1 -1
  343. package/dist/cinematic/index.d.ts +2 -1
  344. package/dist/cinematic/index.d.ts.map +1 -1
  345. package/dist/cinematic/index.js +1 -1
  346. package/dist/cinematic/index.js.map +1 -1
  347. package/dist/contracts/atmosphere.d.ts +30 -0
  348. package/dist/contracts/atmosphere.d.ts.map +1 -0
  349. package/dist/contracts/atmosphere.js +42 -0
  350. package/dist/contracts/atmosphere.js.map +1 -0
  351. package/dist/contracts/blend.d.ts +28 -0
  352. package/dist/contracts/blend.d.ts.map +1 -0
  353. package/dist/contracts/blend.js +73 -0
  354. package/dist/contracts/blend.js.map +1 -0
  355. package/dist/contracts/core.d.ts +47 -0
  356. package/dist/contracts/core.d.ts.map +1 -0
  357. package/dist/contracts/core.js +70 -0
  358. package/dist/contracts/core.js.map +1 -0
  359. package/dist/contracts/deform.d.ts +38 -0
  360. package/dist/contracts/deform.d.ts.map +1 -0
  361. package/dist/contracts/deform.js +14 -0
  362. package/dist/contracts/deform.js.map +1 -0
  363. package/dist/contracts/device.d.ts +71 -0
  364. package/dist/contracts/device.d.ts.map +1 -0
  365. package/dist/contracts/device.js +97 -0
  366. package/dist/contracts/device.js.map +1 -0
  367. package/dist/contracts/environment.d.ts +55 -0
  368. package/dist/contracts/environment.d.ts.map +1 -0
  369. package/dist/contracts/environment.js +115 -0
  370. package/dist/contracts/environment.js.map +1 -0
  371. package/dist/contracts/flags.state.d.ts +15 -0
  372. package/dist/contracts/flags.state.d.ts.map +1 -0
  373. package/dist/contracts/flags.state.js +45 -0
  374. package/dist/contracts/flags.state.js.map +1 -0
  375. package/dist/contracts/frameGraph.d.ts +78 -0
  376. package/dist/contracts/frameGraph.d.ts.map +1 -0
  377. package/dist/contracts/frameGraph.js +32 -0
  378. package/dist/contracts/frameGraph.js.map +1 -0
  379. package/dist/contracts/frameUniforms.d.ts +43 -0
  380. package/dist/contracts/frameUniforms.d.ts.map +1 -0
  381. package/dist/contracts/frameUniforms.js +35 -0
  382. package/dist/contracts/frameUniforms.js.map +1 -0
  383. package/dist/contracts/geometry.d.ts +33 -0
  384. package/dist/contracts/geometry.d.ts.map +1 -0
  385. package/dist/contracts/geometry.js +59 -0
  386. package/dist/contracts/geometry.js.map +1 -0
  387. package/dist/contracts/index.d.ts +27 -0
  388. package/dist/contracts/index.d.ts.map +1 -0
  389. package/dist/contracts/index.js +27 -0
  390. package/dist/contracts/index.js.map +1 -0
  391. package/dist/contracts/materialLobes.d.ts +41 -0
  392. package/dist/contracts/materialLobes.d.ts.map +1 -0
  393. package/dist/contracts/materialLobes.js +14 -0
  394. package/dist/contracts/materialLobes.js.map +1 -0
  395. package/dist/contracts/output.d.ts +35 -0
  396. package/dist/contracts/output.d.ts.map +1 -0
  397. package/dist/contracts/output.js +18 -0
  398. package/dist/contracts/output.js.map +1 -0
  399. package/dist/contracts/particles.d.ts +41 -0
  400. package/dist/contracts/particles.d.ts.map +1 -0
  401. package/dist/contracts/particles.js +15 -0
  402. package/dist/contracts/particles.js.map +1 -0
  403. package/dist/contracts/post.d.ts +71 -0
  404. package/dist/contracts/post.d.ts.map +1 -0
  405. package/dist/contracts/post.js +28 -0
  406. package/dist/contracts/post.js.map +1 -0
  407. package/dist/contracts/program.d.ts +158 -0
  408. package/dist/contracts/program.d.ts.map +1 -0
  409. package/dist/contracts/program.js +128 -0
  410. package/dist/contracts/program.js.map +1 -0
  411. package/dist/contracts/quality.d.ts +93 -0
  412. package/dist/contracts/quality.d.ts.map +1 -0
  413. package/dist/contracts/quality.js +149 -0
  414. package/dist/contracts/quality.js.map +1 -0
  415. package/dist/contracts/renderItem.d.ts +58 -0
  416. package/dist/contracts/renderItem.d.ts.map +1 -0
  417. package/dist/contracts/renderItem.js +8 -0
  418. package/dist/contracts/renderItem.js.map +1 -0
  419. package/dist/contracts/renderSource.d.ts +63 -0
  420. package/dist/contracts/renderSource.d.ts.map +1 -0
  421. package/dist/contracts/renderSource.js +7 -0
  422. package/dist/contracts/renderSource.js.map +1 -0
  423. package/dist/contracts/rendererFactory.d.ts +42 -0
  424. package/dist/contracts/rendererFactory.d.ts.map +1 -0
  425. package/dist/contracts/rendererFactory.js +32 -0
  426. package/dist/contracts/rendererFactory.js.map +1 -0
  427. package/dist/contracts/sampling.d.ts +23 -0
  428. package/dist/contracts/sampling.d.ts.map +1 -0
  429. package/dist/contracts/sampling.js +17 -0
  430. package/dist/contracts/sampling.js.map +1 -0
  431. package/dist/contracts/shadows.d.ts +53 -0
  432. package/dist/contracts/shadows.d.ts.map +1 -0
  433. package/dist/contracts/shadows.js +66 -0
  434. package/dist/contracts/shadows.js.map +1 -0
  435. package/dist/contracts/testing/ChunkHarness.d.ts +18 -0
  436. package/dist/contracts/testing/ChunkHarness.d.ts.map +1 -0
  437. package/dist/contracts/testing/ChunkHarness.js +68 -0
  438. package/dist/contracts/testing/ChunkHarness.js.map +1 -0
  439. package/dist/contracts/textureFormats.d.ts +18 -0
  440. package/dist/contracts/textureFormats.d.ts.map +1 -0
  441. package/dist/contracts/textureFormats.js +13 -0
  442. package/dist/contracts/textureFormats.js.map +1 -0
  443. package/dist/contracts/velocity.d.ts +37 -0
  444. package/dist/contracts/velocity.d.ts.map +1 -0
  445. package/dist/contracts/velocity.js +22 -0
  446. package/dist/contracts/velocity.js.map +1 -0
  447. package/dist/environment/EnvUniforms.d.ts +42 -0
  448. package/dist/environment/EnvUniforms.d.ts.map +1 -0
  449. package/dist/environment/EnvUniforms.js +54 -0
  450. package/dist/environment/EnvUniforms.js.map +1 -0
  451. package/dist/environment/EnvironmentCache.d.ts +83 -0
  452. package/dist/environment/EnvironmentCache.d.ts.map +1 -0
  453. package/dist/environment/EnvironmentCache.js +205 -0
  454. package/dist/environment/EnvironmentCache.js.map +1 -0
  455. package/dist/environment/EnvironmentProbeFactory.d.ts +41 -0
  456. package/dist/environment/EnvironmentProbeFactory.d.ts.map +1 -0
  457. package/dist/environment/EnvironmentProbeFactory.js +52 -0
  458. package/dist/environment/EnvironmentProbeFactory.js.map +1 -0
  459. package/dist/environment/GPUPMREMGenerator.d.ts +44 -0
  460. package/dist/environment/GPUPMREMGenerator.d.ts.map +1 -0
  461. package/dist/environment/GPUPMREMGenerator.js +98 -0
  462. package/dist/environment/GPUPMREMGenerator.js.map +1 -0
  463. package/dist/environment/HdrEquirect.d.ts +28 -0
  464. package/dist/environment/HdrEquirect.d.ts.map +1 -0
  465. package/dist/environment/HdrEquirect.js +205 -0
  466. package/dist/environment/HdrEquirect.js.map +1 -0
  467. package/dist/environment/LightingSamplerBudget.d.ts +20 -0
  468. package/dist/environment/LightingSamplerBudget.d.ts.map +1 -0
  469. package/dist/environment/LightingSamplerBudget.js +94 -0
  470. package/dist/environment/LightingSamplerBudget.js.map +1 -0
  471. package/dist/environment/Prd02BackgroundShaderLibrary.d.ts +10 -0
  472. package/dist/environment/Prd02BackgroundShaderLibrary.d.ts.map +1 -0
  473. package/dist/environment/Prd02BackgroundShaderLibrary.js +100 -0
  474. package/dist/environment/Prd02BackgroundShaderLibrary.js.map +1 -0
  475. package/dist/environment/Rgb9e5Cube.d.ts +25 -0
  476. package/dist/environment/Rgb9e5Cube.d.ts.map +1 -0
  477. package/dist/environment/Rgb9e5Cube.js +103 -0
  478. package/dist/environment/Rgb9e5Cube.js.map +1 -0
  479. package/dist/environment/RoomEnvironmentScene.d.ts +57 -0
  480. package/dist/environment/RoomEnvironmentScene.d.ts.map +1 -0
  481. package/dist/environment/RoomEnvironmentScene.js +165 -0
  482. package/dist/environment/RoomEnvironmentScene.js.map +1 -0
  483. package/dist/environment/SphericalHarmonics.d.ts +32 -0
  484. package/dist/environment/SphericalHarmonics.d.ts.map +1 -0
  485. package/dist/environment/SphericalHarmonics.js +155 -0
  486. package/dist/environment/SphericalHarmonics.js.map +1 -0
  487. package/dist/environment/probeBuild.d.ts +97 -0
  488. package/dist/environment/probeBuild.d.ts.map +1 -0
  489. package/dist/environment/probeBuild.js +406 -0
  490. package/dist/environment/probeBuild.js.map +1 -0
  491. package/dist/environment/workers/cpuPrefilter.d.ts +58 -0
  492. package/dist/environment/workers/cpuPrefilter.d.ts.map +1 -0
  493. package/dist/environment/workers/cpuPrefilter.js +288 -0
  494. package/dist/environment/workers/cpuPrefilter.js.map +1 -0
  495. package/dist/forward/Deform.d.ts +56 -0
  496. package/dist/forward/Deform.d.ts.map +1 -0
  497. package/dist/forward/Deform.js +517 -0
  498. package/dist/forward/Deform.js.map +1 -0
  499. package/dist/forward/DrawSubmit.d.ts +32 -0
  500. package/dist/forward/DrawSubmit.d.ts.map +1 -0
  501. package/dist/forward/DrawSubmit.js +75 -0
  502. package/dist/forward/DrawSubmit.js.map +1 -0
  503. package/dist/forward/Lighting.d.ts +35 -0
  504. package/dist/forward/Lighting.d.ts.map +1 -0
  505. package/dist/forward/Lighting.js +477 -0
  506. package/dist/forward/Lighting.js.map +1 -0
  507. package/dist/forward/Transmission.d.ts +62 -0
  508. package/dist/forward/Transmission.d.ts.map +1 -0
  509. package/dist/forward/Transmission.js +299 -0
  510. package/dist/forward/Transmission.js.map +1 -0
  511. package/dist/forward/Velocity.d.ts +47 -0
  512. package/dist/forward/Velocity.d.ts.map +1 -0
  513. package/dist/forward/Velocity.js +153 -0
  514. package/dist/forward/Velocity.js.map +1 -0
  515. package/dist/forward/transmissionTargetStore.d.ts +21 -0
  516. package/dist/forward/transmissionTargetStore.d.ts.map +1 -0
  517. package/dist/forward/transmissionTargetStore.js +8 -0
  518. package/dist/forward/transmissionTargetStore.js.map +1 -0
  519. package/dist/geometry/Primitives.d.ts +28 -0
  520. package/dist/geometry/Primitives.d.ts.map +1 -0
  521. package/dist/geometry/Primitives.js +110 -0
  522. package/dist/geometry/Primitives.js.map +1 -0
  523. package/dist/index.d.ts +140 -58
  524. package/dist/index.d.ts.map +1 -1
  525. package/dist/index.js +102 -52
  526. package/dist/index.js.map +1 -1
  527. package/dist/lanes/index.d.ts +17 -0
  528. package/dist/lanes/index.d.ts.map +1 -0
  529. package/dist/lanes/index.js +17 -0
  530. package/dist/lanes/index.js.map +1 -0
  531. package/dist/lanes/prd01.d.ts +6 -0
  532. package/dist/lanes/prd01.d.ts.map +1 -0
  533. package/dist/lanes/prd01.js +19 -0
  534. package/dist/lanes/prd01.js.map +1 -0
  535. package/dist/lanes/prd02.d.ts +62 -0
  536. package/dist/lanes/prd02.d.ts.map +1 -0
  537. package/dist/lanes/prd02.js +117 -0
  538. package/dist/lanes/prd02.js.map +1 -0
  539. package/dist/lanes/prd03.d.ts +19 -0
  540. package/dist/lanes/prd03.d.ts.map +1 -0
  541. package/dist/lanes/prd03.js +55 -0
  542. package/dist/lanes/prd03.js.map +1 -0
  543. package/dist/lanes/prd04.d.ts +22 -0
  544. package/dist/lanes/prd04.d.ts.map +1 -0
  545. package/dist/lanes/prd04.js +35 -0
  546. package/dist/lanes/prd04.js.map +1 -0
  547. package/dist/lanes/prd05.d.ts +4 -0
  548. package/dist/lanes/prd05.d.ts.map +1 -0
  549. package/dist/lanes/prd05.js +31 -0
  550. package/dist/lanes/prd05.js.map +1 -0
  551. package/dist/lanes/prd06.d.ts +33 -0
  552. package/dist/lanes/prd06.d.ts.map +1 -0
  553. package/dist/lanes/prd06.js +217 -0
  554. package/dist/lanes/prd06.js.map +1 -0
  555. package/dist/lanes/prd07.d.ts +49 -0
  556. package/dist/lanes/prd07.d.ts.map +1 -0
  557. package/dist/lanes/prd07.js +112 -0
  558. package/dist/lanes/prd07.js.map +1 -0
  559. package/dist/lanes/prd08.d.ts +2 -0
  560. package/dist/lanes/prd08.d.ts.map +1 -0
  561. package/dist/lanes/prd08.js +17 -0
  562. package/dist/lanes/prd08.js.map +1 -0
  563. package/dist/lanes/prd09.d.ts +6 -0
  564. package/dist/lanes/prd09.d.ts.map +1 -0
  565. package/dist/lanes/prd09.js +6 -0
  566. package/dist/lanes/prd09.js.map +1 -0
  567. package/dist/lanes/prd10.d.ts +2 -0
  568. package/dist/lanes/prd10.d.ts.map +1 -0
  569. package/dist/lanes/prd10.js +10 -0
  570. package/dist/lanes/prd10.js.map +1 -0
  571. package/dist/lanes/prd11.d.ts +61 -0
  572. package/dist/lanes/prd11.d.ts.map +1 -0
  573. package/dist/lanes/prd11.js +244 -0
  574. package/dist/lanes/prd11.js.map +1 -0
  575. package/dist/lanes/prd12.d.ts +6 -0
  576. package/dist/lanes/prd12.d.ts.map +1 -0
  577. package/dist/lanes/prd12.js +6 -0
  578. package/dist/lanes/prd12.js.map +1 -0
  579. package/dist/lanes/prd13.d.ts +6 -0
  580. package/dist/lanes/prd13.d.ts.map +1 -0
  581. package/dist/lanes/prd13.js +6 -0
  582. package/dist/lanes/prd13.js.map +1 -0
  583. package/dist/lanes/prd14.d.ts +6 -0
  584. package/dist/lanes/prd14.d.ts.map +1 -0
  585. package/dist/lanes/prd14.js +6 -0
  586. package/dist/lanes/prd14.js.map +1 -0
  587. package/dist/lanes/prd15.d.ts +6 -0
  588. package/dist/lanes/prd15.d.ts.map +1 -0
  589. package/dist/lanes/prd15.js +6 -0
  590. package/dist/lanes/prd15.js.map +1 -0
  591. package/dist/materials/PhysicalFeatures.d.ts +71 -0
  592. package/dist/materials/PhysicalFeatures.d.ts.map +1 -0
  593. package/dist/materials/PhysicalFeatures.js +255 -0
  594. package/dist/materials/PhysicalFeatures.js.map +1 -0
  595. package/dist/materials/PhysicalMaterial.d.ts +85 -0
  596. package/dist/materials/PhysicalMaterial.d.ts.map +1 -1
  597. package/dist/materials/PhysicalMaterial.js +21 -0
  598. package/dist/materials/PhysicalMaterial.js.map +1 -1
  599. package/dist/materials/features.d.ts +47 -0
  600. package/dist/materials/features.d.ts.map +1 -0
  601. package/dist/materials/features.js +282 -0
  602. package/dist/materials/features.js.map +1 -0
  603. package/dist/materials/lobes.d.ts +3 -0
  604. package/dist/materials/lobes.d.ts.map +1 -0
  605. package/dist/materials/lobes.js +225 -0
  606. package/dist/materials/lobes.js.map +1 -0
  607. package/dist/output/HdrTarget.d.ts +27 -0
  608. package/dist/output/HdrTarget.d.ts.map +1 -0
  609. package/dist/output/HdrTarget.js +48 -0
  610. package/dist/output/HdrTarget.js.map +1 -0
  611. package/dist/output/OutputPass.d.ts +28 -0
  612. package/dist/output/OutputPass.d.ts.map +1 -0
  613. package/dist/output/OutputPass.js +142 -0
  614. package/dist/output/OutputPass.js.map +1 -0
  615. package/dist/output/ToneMappingOperators.glsl.d.ts +22 -0
  616. package/dist/output/ToneMappingOperators.glsl.d.ts.map +1 -0
  617. package/dist/output/ToneMappingOperators.glsl.js +217 -0
  618. package/dist/output/ToneMappingOperators.glsl.js.map +1 -0
  619. package/dist/passes/ContactShadowPass.d.ts +57 -0
  620. package/dist/passes/ContactShadowPass.d.ts.map +1 -0
  621. package/dist/passes/ContactShadowPass.js +151 -0
  622. package/dist/passes/ContactShadowPass.js.map +1 -0
  623. package/dist/passes/Prd02ContactShadowsContributor.d.ts +16 -0
  624. package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -0
  625. package/dist/passes/Prd02ContactShadowsContributor.js +133 -0
  626. package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -0
  627. package/dist/passes/Prd02SubFlags.d.ts +22 -0
  628. package/dist/passes/Prd02SubFlags.d.ts.map +1 -0
  629. package/dist/passes/Prd02SubFlags.js +32 -0
  630. package/dist/passes/Prd02SubFlags.js.map +1 -0
  631. package/dist/performance/BVH.d.ts +46 -0
  632. package/dist/performance/BVH.d.ts.map +1 -1
  633. package/dist/performance/BVH.js +212 -0
  634. package/dist/performance/BVH.js.map +1 -1
  635. package/dist/performance/Batcher.d.ts +11 -0
  636. package/dist/performance/Batcher.d.ts.map +1 -1
  637. package/dist/performance/Batcher.js +10 -0
  638. package/dist/performance/Batcher.js.map +1 -1
  639. package/dist/performance/FrustumCuller.d.ts +29 -0
  640. package/dist/performance/FrustumCuller.d.ts.map +1 -1
  641. package/dist/performance/FrustumCuller.js +78 -1
  642. package/dist/performance/FrustumCuller.js.map +1 -1
  643. package/dist/performance/LOD.d.ts +6 -0
  644. package/dist/performance/LOD.d.ts.map +1 -1
  645. package/dist/performance/LOD.js +12 -0
  646. package/dist/performance/LOD.js.map +1 -1
  647. package/dist/performance/RenderItemSorting.d.ts +2 -0
  648. package/dist/performance/RenderItemSorting.d.ts.map +1 -1
  649. package/dist/performance/RenderItemSorting.js +5 -1
  650. package/dist/performance/RenderItemSorting.js.map +1 -1
  651. package/dist/post/CubeLut.d.ts +15 -0
  652. package/dist/post/CubeLut.d.ts.map +1 -0
  653. package/dist/post/CubeLut.js +86 -0
  654. package/dist/post/CubeLut.js.map +1 -0
  655. package/dist/post/DisplayLutCache.d.ts +31 -0
  656. package/dist/post/DisplayLutCache.d.ts.map +1 -0
  657. package/dist/post/DisplayLutCache.js +44 -0
  658. package/dist/post/DisplayLutCache.js.map +1 -0
  659. package/dist/post/PostAntiAlias.d.ts +49 -0
  660. package/dist/post/PostAntiAlias.d.ts.map +1 -0
  661. package/dist/post/PostAntiAlias.js +75 -0
  662. package/dist/post/PostAntiAlias.js.map +1 -0
  663. package/dist/post/PostGraph.d.ts +206 -0
  664. package/dist/post/PostGraph.d.ts.map +1 -0
  665. package/dist/post/PostGraph.js +234 -0
  666. package/dist/post/PostGraph.js.map +1 -0
  667. package/dist/post/PostQualityTiers.d.ts +95 -0
  668. package/dist/post/PostQualityTiers.d.ts.map +1 -0
  669. package/dist/post/PostQualityTiers.js +62 -0
  670. package/dist/post/PostQualityTiers.js.map +1 -0
  671. package/dist/post/PostResources.d.ts +49 -0
  672. package/dist/post/PostResources.d.ts.map +1 -0
  673. package/dist/post/PostResources.js +119 -0
  674. package/dist/post/PostResources.js.map +1 -0
  675. package/dist/post/PostTimer.d.ts +37 -0
  676. package/dist/post/PostTimer.d.ts.map +1 -0
  677. package/dist/post/PostTimer.js +88 -0
  678. package/dist/post/PostTimer.js.map +1 -0
  679. package/dist/post/ScreenFeelPass.d.ts +83 -0
  680. package/dist/post/ScreenFeelPass.d.ts.map +1 -0
  681. package/dist/post/ScreenFeelPass.js +197 -0
  682. package/dist/post/ScreenFeelPass.js.map +1 -0
  683. package/dist/post/ToneOperators.d.ts +42 -0
  684. package/dist/post/ToneOperators.d.ts.map +1 -0
  685. package/dist/post/ToneOperators.js +179 -0
  686. package/dist/post/ToneOperators.js.map +1 -0
  687. package/dist/post/chunks/indirectFraction.glsl.d.ts +50 -0
  688. package/dist/post/chunks/indirectFraction.glsl.d.ts.map +1 -0
  689. package/dist/post/chunks/indirectFraction.glsl.js +82 -0
  690. package/dist/post/chunks/indirectFraction.glsl.js.map +1 -0
  691. package/dist/post/chunks/velocity.glsl.d.ts +35 -0
  692. package/dist/post/chunks/velocity.glsl.d.ts.map +1 -0
  693. package/dist/post/chunks/velocity.glsl.js +86 -0
  694. package/dist/post/chunks/velocity.glsl.js.map +1 -0
  695. package/dist/post/shaders/bloom.glsl.d.ts +21 -0
  696. package/dist/post/shaders/bloom.glsl.d.ts.map +1 -0
  697. package/dist/post/shaders/bloom.glsl.js +120 -0
  698. package/dist/post/shaders/bloom.glsl.js.map +1 -0
  699. package/dist/post/shaders/bloom.wgsl.d.ts +10 -0
  700. package/dist/post/shaders/bloom.wgsl.d.ts.map +1 -0
  701. package/dist/post/shaders/bloom.wgsl.js +121 -0
  702. package/dist/post/shaders/bloom.wgsl.js.map +1 -0
  703. package/dist/post/shaders/common.glsl.d.ts +11 -0
  704. package/dist/post/shaders/common.glsl.d.ts.map +1 -0
  705. package/dist/post/shaders/common.glsl.js +34 -0
  706. package/dist/post/shaders/common.glsl.js.map +1 -0
  707. package/dist/post/shaders/common.wgsl.d.ts +25 -0
  708. package/dist/post/shaders/common.wgsl.d.ts.map +1 -0
  709. package/dist/post/shaders/common.wgsl.js +48 -0
  710. package/dist/post/shaders/common.wgsl.js.map +1 -0
  711. package/dist/post/shaders/composite.glsl.d.ts +25 -0
  712. package/dist/post/shaders/composite.glsl.d.ts.map +1 -0
  713. package/dist/post/shaders/composite.glsl.js +96 -0
  714. package/dist/post/shaders/composite.glsl.js.map +1 -0
  715. package/dist/post/shaders/composite.wgsl.d.ts +10 -0
  716. package/dist/post/shaders/composite.wgsl.d.ts.map +1 -0
  717. package/dist/post/shaders/composite.wgsl.js +92 -0
  718. package/dist/post/shaders/composite.wgsl.js.map +1 -0
  719. package/dist/post/shaders/depthDownsample.glsl.d.ts +20 -0
  720. package/dist/post/shaders/depthDownsample.glsl.d.ts.map +1 -0
  721. package/dist/post/shaders/depthDownsample.glsl.js +78 -0
  722. package/dist/post/shaders/depthDownsample.glsl.js.map +1 -0
  723. package/dist/post/shaders/depthDownsample.wgsl.d.ts +17 -0
  724. package/dist/post/shaders/depthDownsample.wgsl.d.ts.map +1 -0
  725. package/dist/post/shaders/depthDownsample.wgsl.js +87 -0
  726. package/dist/post/shaders/depthDownsample.wgsl.js.map +1 -0
  727. package/dist/post/shaders/displayGrade.glsl.d.ts +18 -0
  728. package/dist/post/shaders/displayGrade.glsl.d.ts.map +1 -0
  729. package/dist/post/shaders/displayGrade.glsl.js +80 -0
  730. package/dist/post/shaders/displayGrade.glsl.js.map +1 -0
  731. package/dist/post/shaders/displayGrade.wgsl.d.ts +9 -0
  732. package/dist/post/shaders/displayGrade.wgsl.d.ts.map +1 -0
  733. package/dist/post/shaders/displayGrade.wgsl.js +75 -0
  734. package/dist/post/shaders/displayGrade.wgsl.js.map +1 -0
  735. package/dist/post/shaders/dof.glsl.d.ts +25 -0
  736. package/dist/post/shaders/dof.glsl.d.ts.map +1 -0
  737. package/dist/post/shaders/dof.glsl.js +129 -0
  738. package/dist/post/shaders/dof.glsl.js.map +1 -0
  739. package/dist/post/shaders/dof.wgsl.d.ts +11 -0
  740. package/dist/post/shaders/dof.wgsl.d.ts.map +1 -0
  741. package/dist/post/shaders/dof.wgsl.js +119 -0
  742. package/dist/post/shaders/dof.wgsl.js.map +1 -0
  743. package/dist/post/shaders/exposure.glsl.d.ts +43 -0
  744. package/dist/post/shaders/exposure.glsl.d.ts.map +1 -0
  745. package/dist/post/shaders/exposure.glsl.js +115 -0
  746. package/dist/post/shaders/exposure.glsl.js.map +1 -0
  747. package/dist/post/shaders/exposure.wgsl.d.ts +16 -0
  748. package/dist/post/shaders/exposure.wgsl.d.ts.map +1 -0
  749. package/dist/post/shaders/exposure.wgsl.js +97 -0
  750. package/dist/post/shaders/exposure.wgsl.js.map +1 -0
  751. package/dist/post/shaders/finalize.glsl.d.ts +17 -0
  752. package/dist/post/shaders/finalize.glsl.d.ts.map +1 -0
  753. package/dist/post/shaders/finalize.glsl.js +120 -0
  754. package/dist/post/shaders/finalize.glsl.js.map +1 -0
  755. package/dist/post/shaders/finalize.wgsl.d.ts +13 -0
  756. package/dist/post/shaders/finalize.wgsl.d.ts.map +1 -0
  757. package/dist/post/shaders/finalize.wgsl.js +124 -0
  758. package/dist/post/shaders/finalize.wgsl.js.map +1 -0
  759. package/dist/post/shaders/fxaa.glsl.d.ts +26 -0
  760. package/dist/post/shaders/fxaa.glsl.d.ts.map +1 -0
  761. package/dist/post/shaders/fxaa.glsl.js +246 -0
  762. package/dist/post/shaders/fxaa.glsl.js.map +1 -0
  763. package/dist/post/shaders/fxaa.wgsl.d.ts +17 -0
  764. package/dist/post/shaders/fxaa.wgsl.d.ts.map +1 -0
  765. package/dist/post/shaders/fxaa.wgsl.js +268 -0
  766. package/dist/post/shaders/fxaa.wgsl.js.map +1 -0
  767. package/dist/post/shaders/godrays.glsl.d.ts +16 -0
  768. package/dist/post/shaders/godrays.glsl.d.ts.map +1 -0
  769. package/dist/post/shaders/godrays.glsl.js +70 -0
  770. package/dist/post/shaders/godrays.glsl.js.map +1 -0
  771. package/dist/post/shaders/godrays.wgsl.d.ts +8 -0
  772. package/dist/post/shaders/godrays.wgsl.d.ts.map +1 -0
  773. package/dist/post/shaders/godrays.wgsl.js +60 -0
  774. package/dist/post/shaders/godrays.wgsl.js.map +1 -0
  775. package/dist/post/shaders/gtao.glsl.d.ts +29 -0
  776. package/dist/post/shaders/gtao.glsl.d.ts.map +1 -0
  777. package/dist/post/shaders/gtao.glsl.js +190 -0
  778. package/dist/post/shaders/gtao.glsl.js.map +1 -0
  779. package/dist/post/shaders/gtao.wgsl.d.ts +13 -0
  780. package/dist/post/shaders/gtao.wgsl.d.ts.map +1 -0
  781. package/dist/post/shaders/gtao.wgsl.js +163 -0
  782. package/dist/post/shaders/gtao.wgsl.js.map +1 -0
  783. package/dist/post/shaders/gtaoDenoise.glsl.d.ts +22 -0
  784. package/dist/post/shaders/gtaoDenoise.glsl.d.ts.map +1 -0
  785. package/dist/post/shaders/gtaoDenoise.glsl.js +121 -0
  786. package/dist/post/shaders/gtaoDenoise.glsl.js.map +1 -0
  787. package/dist/post/shaders/gtaoDenoise.wgsl.d.ts +11 -0
  788. package/dist/post/shaders/gtaoDenoise.wgsl.d.ts.map +1 -0
  789. package/dist/post/shaders/gtaoDenoise.wgsl.js +117 -0
  790. package/dist/post/shaders/gtaoDenoise.wgsl.js.map +1 -0
  791. package/dist/post/shaders/motionBlur.glsl.d.ts +21 -0
  792. package/dist/post/shaders/motionBlur.glsl.d.ts.map +1 -0
  793. package/dist/post/shaders/motionBlur.glsl.js +110 -0
  794. package/dist/post/shaders/motionBlur.glsl.js.map +1 -0
  795. package/dist/post/shaders/motionBlur.wgsl.d.ts +10 -0
  796. package/dist/post/shaders/motionBlur.wgsl.d.ts.map +1 -0
  797. package/dist/post/shaders/motionBlur.wgsl.js +102 -0
  798. package/dist/post/shaders/motionBlur.wgsl.js.map +1 -0
  799. package/dist/post/shaders/smaa.glsl.d.ts +28 -0
  800. package/dist/post/shaders/smaa.glsl.d.ts.map +1 -0
  801. package/dist/post/shaders/smaa.glsl.js +354 -0
  802. package/dist/post/shaders/smaa.glsl.js.map +1 -0
  803. package/dist/post/shaders/smaa.wgsl.d.ts +20 -0
  804. package/dist/post/shaders/smaa.wgsl.d.ts.map +1 -0
  805. package/dist/post/shaders/smaa.wgsl.js +375 -0
  806. package/dist/post/shaders/smaa.wgsl.js.map +1 -0
  807. package/dist/post/shaders/taa.glsl.d.ts +23 -0
  808. package/dist/post/shaders/taa.glsl.d.ts.map +1 -0
  809. package/dist/post/shaders/taa.glsl.js +169 -0
  810. package/dist/post/shaders/taa.glsl.js.map +1 -0
  811. package/dist/post/shaders/taa.wgsl.d.ts +10 -0
  812. package/dist/post/shaders/taa.wgsl.d.ts.map +1 -0
  813. package/dist/post/shaders/taa.wgsl.js +185 -0
  814. package/dist/post/shaders/taa.wgsl.js.map +1 -0
  815. package/dist/post/shaders/velocityDilate.glsl.d.ts +16 -0
  816. package/dist/post/shaders/velocityDilate.glsl.d.ts.map +1 -0
  817. package/dist/post/shaders/velocityDilate.glsl.js +45 -0
  818. package/dist/post/shaders/velocityDilate.glsl.js.map +1 -0
  819. package/dist/post/shaders/velocityDilate.wgsl.d.ts +8 -0
  820. package/dist/post/shaders/velocityDilate.wgsl.d.ts.map +1 -0
  821. package/dist/post/shaders/velocityDilate.wgsl.js +30 -0
  822. package/dist/post/shaders/velocityDilate.wgsl.js.map +1 -0
  823. package/dist/post/smaa/textures.d.ts +17 -0
  824. package/dist/post/smaa/textures.d.ts.map +1 -0
  825. package/dist/post/smaa/textures.js +17 -0
  826. package/dist/post/smaa/textures.js.map +1 -0
  827. package/dist/post/v2Entry.d.ts +25 -0
  828. package/dist/post/v2Entry.d.ts.map +1 -0
  829. package/dist/post/v2Entry.js +28 -0
  830. package/dist/post/v2Entry.js.map +1 -0
  831. package/dist/post/v2Stages.d.ts +156 -0
  832. package/dist/post/v2Stages.d.ts.map +1 -0
  833. package/dist/post/v2Stages.js +1189 -0
  834. package/dist/post/v2Stages.js.map +1 -0
  835. package/dist/postprocess/EffectComposer.d.ts +6 -109
  836. package/dist/postprocess/EffectComposer.d.ts.map +1 -1
  837. package/dist/postprocess/EffectComposer.js +6 -246
  838. package/dist/postprocess/EffectComposer.js.map +1 -1
  839. package/dist/postprocess/NativeBloomPyramid.d.ts +34 -0
  840. package/dist/postprocess/NativeBloomPyramid.d.ts.map +1 -1
  841. package/dist/postprocess/NativeBloomPyramid.js +57 -0
  842. package/dist/postprocess/NativeBloomPyramid.js.map +1 -1
  843. package/dist/postprocess/SSAOPass.d.ts +5 -5
  844. package/dist/postprocess/SSAOPass.d.ts.map +1 -1
  845. package/dist/postprocess/SSAOPass.js +5 -17
  846. package/dist/postprocess/SSAOPass.js.map +1 -1
  847. package/dist/probes/IrradianceVolume.d.ts +45 -0
  848. package/dist/probes/IrradianceVolume.d.ts.map +1 -0
  849. package/dist/probes/IrradianceVolume.js +230 -0
  850. package/dist/probes/IrradianceVolume.js.map +1 -0
  851. package/dist/probes/LtcLuts.d.ts +30 -0
  852. package/dist/probes/LtcLuts.d.ts.map +1 -0
  853. package/dist/probes/LtcLuts.js +120 -0
  854. package/dist/probes/LtcLuts.js.map +1 -0
  855. package/dist/probes/Prd02ProbesContributor.d.ts +53 -0
  856. package/dist/probes/Prd02ProbesContributor.d.ts.map +1 -0
  857. package/dist/probes/Prd02ProbesContributor.js +241 -0
  858. package/dist/probes/Prd02ProbesContributor.js.map +1 -0
  859. package/dist/probes/ProbeBoxProjection.d.ts +53 -0
  860. package/dist/probes/ProbeBoxProjection.d.ts.map +1 -0
  861. package/dist/probes/ProbeBoxProjection.js +99 -0
  862. package/dist/probes/ProbeBoxProjection.js.map +1 -0
  863. package/dist/probes/ReflectionProbeSystem.d.ts +64 -0
  864. package/dist/probes/ReflectionProbeSystem.d.ts.map +1 -0
  865. package/dist/probes/ReflectionProbeSystem.js +157 -0
  866. package/dist/probes/ReflectionProbeSystem.js.map +1 -0
  867. package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
  868. package/dist/production-runtime/PBRHDRPipeline.js +23 -9
  869. package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
  870. package/dist/production-runtime/ProductionRendererTypes.d.ts +16 -6
  871. package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
  872. package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
  873. package/dist/production-runtime/ProductionWebGPURenderer.d.ts +4 -4
  874. package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  875. package/dist/production-runtime/ProductionWebGPURenderer.js +10 -45
  876. package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  877. package/dist/production-runtime/backendSelection.d.ts +26 -0
  878. package/dist/production-runtime/backendSelection.d.ts.map +1 -0
  879. package/dist/production-runtime/backendSelection.js +46 -0
  880. package/dist/production-runtime/backendSelection.js.map +1 -0
  881. package/dist/production-runtime/backends/WebGL2RendererBackend.d.ts +1 -1
  882. package/dist/production-runtime/backends/WebGL2RendererBackend.d.ts.map +1 -1
  883. package/dist/production-runtime/backends/WebGL2RendererBackend.js +8 -4
  884. package/dist/production-runtime/backends/WebGL2RendererBackend.js.map +1 -1
  885. package/dist/production-runtime/backends/WebGPURendererBackend.d.ts +2 -19
  886. package/dist/production-runtime/backends/WebGPURendererBackend.d.ts.map +1 -1
  887. package/dist/production-runtime/backends/WebGPURendererBackend.js +2 -18
  888. package/dist/production-runtime/backends/WebGPURendererBackend.js.map +1 -1
  889. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.d.ts +2 -10
  890. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.d.ts.map +1 -1
  891. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.js +2 -7
  892. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.js.map +1 -1
  893. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.d.ts +2 -10
  894. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.d.ts.map +1 -1
  895. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.js +2 -7
  896. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.js.map +1 -1
  897. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.d.ts +2 -10
  898. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.d.ts.map +1 -1
  899. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.js +2 -7
  900. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.js.map +1 -1
  901. package/dist/production-runtime/backends/webgl2/WebGL2Shader.d.ts +2 -10
  902. package/dist/production-runtime/backends/webgl2/WebGL2Shader.d.ts.map +1 -1
  903. package/dist/production-runtime/backends/webgl2/WebGL2Shader.js +2 -7
  904. package/dist/production-runtime/backends/webgl2/WebGL2Shader.js.map +1 -1
  905. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.d.ts +1 -0
  906. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.d.ts.map +1 -1
  907. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.js +1 -0
  908. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.js.map +1 -1
  909. package/dist/production-runtime/backends/webgl2/WebGL2Texture.d.ts +2 -10
  910. package/dist/production-runtime/backends/webgl2/WebGL2Texture.d.ts.map +1 -1
  911. package/dist/production-runtime/backends/webgl2/WebGL2Texture.js +2 -7
  912. package/dist/production-runtime/backends/webgl2/WebGL2Texture.js.map +1 -1
  913. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.d.ts +2 -10
  914. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.d.ts.map +1 -1
  915. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.js +2 -7
  916. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.js.map +1 -1
  917. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.d.ts +2 -10
  918. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.d.ts.map +1 -1
  919. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.js +2 -7
  920. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.js.map +1 -1
  921. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.d.ts +2 -10
  922. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.d.ts.map +1 -1
  923. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.js +2 -7
  924. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.js.map +1 -1
  925. package/dist/production-runtime/backends/webgpu/WebGPUShader.d.ts +2 -10
  926. package/dist/production-runtime/backends/webgpu/WebGPUShader.d.ts.map +1 -1
  927. package/dist/production-runtime/backends/webgpu/WebGPUShader.js +2 -7
  928. package/dist/production-runtime/backends/webgpu/WebGPUShader.js.map +1 -1
  929. package/dist/production-runtime/backends/webgpu/WebGPUTexture.d.ts +2 -10
  930. package/dist/production-runtime/backends/webgpu/WebGPUTexture.d.ts.map +1 -1
  931. package/dist/production-runtime/backends/webgpu/WebGPUTexture.js +2 -7
  932. package/dist/production-runtime/backends/webgpu/WebGPUTexture.js.map +1 -1
  933. package/dist/production-runtime/index.d.ts +6 -6
  934. package/dist/production-runtime/index.d.ts.map +1 -1
  935. package/dist/production-runtime/index.js +9 -3
  936. package/dist/production-runtime/index.js.map +1 -1
  937. package/dist/production-runtime/materials/GLTFMaterialAdapter.d.ts +12 -13
  938. package/dist/production-runtime/materials/GLTFMaterialAdapter.d.ts.map +1 -1
  939. package/dist/production-runtime/materials/GLTFMaterialAdapter.js +10 -4
  940. package/dist/production-runtime/materials/GLTFMaterialAdapter.js.map +1 -1
  941. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts +9 -2
  942. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts.map +1 -1
  943. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.js +7 -1
  944. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.js.map +1 -1
  945. package/dist/production-runtime/materials/MaterialCompiler.d.ts +10 -8
  946. package/dist/production-runtime/materials/MaterialCompiler.d.ts.map +1 -1
  947. package/dist/production-runtime/materials/MaterialCompiler.js +9 -4
  948. package/dist/production-runtime/materials/MaterialCompiler.js.map +1 -1
  949. package/dist/production-runtime/materials/PBRShaderFeatures.d.ts.map +1 -1
  950. package/dist/production-runtime/materials/PBRShaderFeatures.js +30 -1
  951. package/dist/production-runtime/materials/PBRShaderFeatures.js.map +1 -1
  952. package/dist/production-runtime/renderProofs.d.ts +54 -0
  953. package/dist/production-runtime/renderProofs.d.ts.map +1 -0
  954. package/dist/production-runtime/renderProofs.js +245 -0
  955. package/dist/production-runtime/renderProofs.js.map +1 -0
  956. package/dist/program/DFGLut.d.ts +23 -0
  957. package/dist/program/DFGLut.d.ts.map +1 -0
  958. package/dist/program/DFGLut.js +58 -0
  959. package/dist/program/DFGLut.js.map +1 -0
  960. package/dist/program/DFGLutData.d.ts +35 -0
  961. package/dist/program/DFGLutData.d.ts.map +1 -0
  962. package/dist/program/DFGLutData.js +52 -0
  963. package/dist/program/DFGLutData.js.map +1 -0
  964. package/dist/program/FeatureSelect.d.ts +35 -0
  965. package/dist/program/FeatureSelect.d.ts.map +1 -0
  966. package/dist/program/FeatureSelect.js +88 -0
  967. package/dist/program/FeatureSelect.js.map +1 -0
  968. package/dist/program/MaterialFeatures.d.ts +66 -0
  969. package/dist/program/MaterialFeatures.d.ts.map +1 -0
  970. package/dist/program/MaterialFeatures.js +242 -0
  971. package/dist/program/MaterialFeatures.js.map +1 -0
  972. package/dist/program/ProgramCache.d.ts +83 -0
  973. package/dist/program/ProgramCache.d.ts.map +1 -0
  974. package/dist/program/ProgramCache.js +194 -0
  975. package/dist/program/ProgramCache.js.map +1 -0
  976. package/dist/program/ProgramFeatures.d.ts +21 -0
  977. package/dist/program/ProgramFeatures.d.ts.map +1 -0
  978. package/dist/program/ProgramFeatures.js +95 -0
  979. package/dist/program/ProgramFeatures.js.map +1 -0
  980. package/dist/program/ProgramGenerator.d.ts +60 -0
  981. package/dist/program/ProgramGenerator.d.ts.map +1 -0
  982. package/dist/program/ProgramGenerator.js +760 -0
  983. package/dist/program/ProgramGenerator.js.map +1 -0
  984. package/dist/program/ProgramKey.d.ts +10 -0
  985. package/dist/program/ProgramKey.d.ts.map +1 -0
  986. package/dist/program/ProgramKey.js +13 -0
  987. package/dist/program/ProgramKey.js.map +1 -0
  988. package/dist/program/ProgramWarmup.d.ts +37 -0
  989. package/dist/program/ProgramWarmup.d.ts.map +1 -0
  990. package/dist/program/ProgramWarmup.js +68 -0
  991. package/dist/program/ProgramWarmup.js.map +1 -0
  992. package/dist/program/UniformLayout.d.ts +40 -0
  993. package/dist/program/UniformLayout.d.ts.map +1 -0
  994. package/dist/program/UniformLayout.js +105 -0
  995. package/dist/program/UniformLayout.js.map +1 -0
  996. package/dist/program/chunks/alpha.glsl.d.ts +7 -0
  997. package/dist/program/chunks/alpha.glsl.d.ts.map +1 -0
  998. package/dist/program/chunks/alpha.glsl.js +17 -0
  999. package/dist/program/chunks/alpha.glsl.js.map +1 -0
  1000. package/dist/program/chunks/brdf.glsl.d.ts +12 -0
  1001. package/dist/program/chunks/brdf.glsl.d.ts.map +1 -0
  1002. package/dist/program/chunks/brdf.glsl.js +144 -0
  1003. package/dist/program/chunks/brdf.glsl.js.map +1 -0
  1004. package/dist/program/chunks/colorspace.glsl.d.ts +8 -0
  1005. package/dist/program/chunks/colorspace.glsl.d.ts.map +1 -0
  1006. package/dist/program/chunks/colorspace.glsl.js +16 -0
  1007. package/dist/program/chunks/colorspace.glsl.js.map +1 -0
  1008. package/dist/program/chunks/common.glsl.d.ts +7 -0
  1009. package/dist/program/chunks/common.glsl.d.ts.map +1 -0
  1010. package/dist/program/chunks/common.glsl.js +25 -0
  1011. package/dist/program/chunks/common.glsl.js.map +1 -0
  1012. package/dist/program/chunks/depth.glsl.d.ts +9 -0
  1013. package/dist/program/chunks/depth.glsl.d.ts.map +1 -0
  1014. package/dist/program/chunks/depth.glsl.js +18 -0
  1015. package/dist/program/chunks/depth.glsl.js.map +1 -0
  1016. package/dist/program/chunks/drawId.wgsl.d.ts +9 -0
  1017. package/dist/program/chunks/drawId.wgsl.d.ts.map +1 -0
  1018. package/dist/program/chunks/drawId.wgsl.js +29 -0
  1019. package/dist/program/chunks/drawId.wgsl.js.map +1 -0
  1020. package/dist/program/chunks/fog_default.glsl.d.ts +8 -0
  1021. package/dist/program/chunks/fog_default.glsl.d.ts.map +1 -0
  1022. package/dist/program/chunks/fog_default.glsl.js +31 -0
  1023. package/dist/program/chunks/fog_default.glsl.js.map +1 -0
  1024. package/dist/program/chunks/indirect_default.glsl.d.ts +29 -0
  1025. package/dist/program/chunks/indirect_default.glsl.d.ts.map +1 -0
  1026. package/dist/program/chunks/indirect_default.glsl.js +113 -0
  1027. package/dist/program/chunks/indirect_default.glsl.js.map +1 -0
  1028. package/dist/program/chunks/instanceEmissive.wgsl.d.ts +10 -0
  1029. package/dist/program/chunks/instanceEmissive.wgsl.d.ts.map +1 -0
  1030. package/dist/program/chunks/instanceEmissive.wgsl.js +21 -0
  1031. package/dist/program/chunks/instanceEmissive.wgsl.js.map +1 -0
  1032. package/dist/program/chunks/instancing.glsl.d.ts +8 -0
  1033. package/dist/program/chunks/instancing.glsl.d.ts.map +1 -0
  1034. package/dist/program/chunks/instancing.glsl.js +25 -0
  1035. package/dist/program/chunks/instancing.glsl.js.map +1 -0
  1036. package/dist/program/chunks/lights_legacy.glsl.d.ts +15 -0
  1037. package/dist/program/chunks/lights_legacy.glsl.d.ts.map +1 -0
  1038. package/dist/program/chunks/lights_legacy.glsl.js +95 -0
  1039. package/dist/program/chunks/lights_legacy.glsl.js.map +1 -0
  1040. package/dist/program/chunks/manifest.d.ts +42 -0
  1041. package/dist/program/chunks/manifest.d.ts.map +1 -0
  1042. package/dist/program/chunks/manifest.js +48 -0
  1043. package/dist/program/chunks/manifest.js.map +1 -0
  1044. package/dist/program/chunks/normal.glsl.d.ts +8 -0
  1045. package/dist/program/chunks/normal.glsl.d.ts.map +1 -0
  1046. package/dist/program/chunks/normal.glsl.js +34 -0
  1047. package/dist/program/chunks/normal.glsl.js.map +1 -0
  1048. package/dist/program/chunks/shadow_forward.glsl.d.ts +23 -0
  1049. package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -0
  1050. package/dist/program/chunks/shadow_forward.glsl.js +73 -0
  1051. package/dist/program/chunks/shadow_forward.glsl.js.map +1 -0
  1052. package/dist/quality/DeviceClasses.d.ts +31 -0
  1053. package/dist/quality/DeviceClasses.d.ts.map +1 -0
  1054. package/dist/quality/DeviceClasses.js +83 -0
  1055. package/dist/quality/DeviceClasses.js.map +1 -0
  1056. package/dist/quality/DeviceProbe.d.ts +42 -0
  1057. package/dist/quality/DeviceProbe.d.ts.map +1 -0
  1058. package/dist/quality/DeviceProbe.js +83 -0
  1059. package/dist/quality/DeviceProbe.js.map +1 -0
  1060. package/dist/quality/FrameStats.d.ts +62 -0
  1061. package/dist/quality/FrameStats.d.ts.map +1 -0
  1062. package/dist/quality/FrameStats.js +220 -0
  1063. package/dist/quality/FrameStats.js.map +1 -0
  1064. package/dist/quality/PostprocessGuard.d.ts +49 -0
  1065. package/dist/quality/PostprocessGuard.d.ts.map +1 -0
  1066. package/dist/quality/PostprocessGuard.js +92 -0
  1067. package/dist/quality/PostprocessGuard.js.map +1 -0
  1068. package/dist/quality/QualityController.d.ts +93 -0
  1069. package/dist/quality/QualityController.d.ts.map +1 -0
  1070. package/dist/quality/QualityController.js +248 -0
  1071. package/dist/quality/QualityController.js.map +1 -0
  1072. package/dist/quality/QualityGovernor.d.ts +78 -0
  1073. package/dist/quality/QualityGovernor.d.ts.map +1 -0
  1074. package/dist/quality/QualityGovernor.js +170 -0
  1075. package/dist/quality/QualityGovernor.js.map +1 -0
  1076. package/dist/quality/QualityTier.d.ts +17 -0
  1077. package/dist/quality/QualityTier.d.ts.map +1 -0
  1078. package/dist/quality/QualityTier.js +23 -0
  1079. package/dist/quality/QualityTier.js.map +1 -0
  1080. package/dist/quality/RenderScaleController.d.ts +35 -0
  1081. package/dist/quality/RenderScaleController.d.ts.map +1 -0
  1082. package/dist/quality/RenderScaleController.js +57 -0
  1083. package/dist/quality/RenderScaleController.js.map +1 -0
  1084. package/dist/quality/RetentionPolicy.d.ts +11 -0
  1085. package/dist/quality/RetentionPolicy.d.ts.map +1 -0
  1086. package/dist/quality/RetentionPolicy.js +12 -0
  1087. package/dist/quality/RetentionPolicy.js.map +1 -0
  1088. package/dist/quality/TierResolver.d.ts +52 -0
  1089. package/dist/quality/TierResolver.d.ts.map +1 -0
  1090. package/dist/quality/TierResolver.js +155 -0
  1091. package/dist/quality/TierResolver.js.map +1 -0
  1092. package/dist/quality/liveTier.d.ts +23 -0
  1093. package/dist/quality/liveTier.d.ts.map +1 -0
  1094. package/dist/quality/liveTier.js +16 -0
  1095. package/dist/quality/liveTier.js.map +1 -0
  1096. package/dist/reference/BloomPass.d.ts +10 -0
  1097. package/dist/reference/BloomPass.d.ts.map +1 -0
  1098. package/dist/reference/BloomPass.js +18 -0
  1099. package/dist/reference/BloomPass.js.map +1 -0
  1100. package/dist/reference/DepthHazePass.d.ts +12 -0
  1101. package/dist/reference/DepthHazePass.d.ts.map +1 -0
  1102. package/dist/reference/DepthHazePass.js +20 -0
  1103. package/dist/reference/DepthHazePass.js.map +1 -0
  1104. package/dist/reference/EffectComposer.d.ts +110 -0
  1105. package/dist/reference/EffectComposer.d.ts.map +1 -0
  1106. package/dist/reference/EffectComposer.js +247 -0
  1107. package/dist/reference/EffectComposer.js.map +1 -0
  1108. package/dist/reference/FilmGrainPass.d.ts +9 -0
  1109. package/dist/reference/FilmGrainPass.d.ts.map +1 -0
  1110. package/dist/reference/FilmGrainPass.js +17 -0
  1111. package/dist/reference/FilmGrainPass.js.map +1 -0
  1112. package/dist/reference/PostProcessPass.d.ts +511 -0
  1113. package/dist/reference/PostProcessPass.d.ts.map +1 -0
  1114. package/dist/reference/PostProcessPass.js +2020 -0
  1115. package/dist/reference/PostProcessPass.js.map +1 -0
  1116. package/dist/reference/SSAOPass.d.ts +6 -0
  1117. package/dist/reference/SSAOPass.d.ts.map +1 -0
  1118. package/dist/reference/SSAOPass.js +18 -0
  1119. package/dist/reference/SSAOPass.js.map +1 -0
  1120. package/dist/reference/VignettePass.d.ts +10 -0
  1121. package/dist/reference/VignettePass.d.ts.map +1 -0
  1122. package/dist/reference/VignettePass.js +17 -0
  1123. package/dist/reference/VignettePass.js.map +1 -0
  1124. package/dist/reference/index.d.ts +15 -0
  1125. package/dist/reference/index.d.ts.map +1 -0
  1126. package/dist/reference/index.js +15 -0
  1127. package/dist/reference/index.js.map +1 -0
  1128. package/dist/renderer/Background.d.ts +49 -0
  1129. package/dist/renderer/Background.d.ts.map +1 -0
  1130. package/dist/renderer/Background.js +259 -0
  1131. package/dist/renderer/Background.js.map +1 -0
  1132. package/dist/renderer/CullingBatching.d.ts +55 -0
  1133. package/dist/renderer/CullingBatching.d.ts.map +1 -0
  1134. package/dist/renderer/CullingBatching.js +362 -0
  1135. package/dist/renderer/CullingBatching.js.map +1 -0
  1136. package/dist/renderer/DeviceLifecycle.d.ts +29 -0
  1137. package/dist/renderer/DeviceLifecycle.d.ts.map +1 -0
  1138. package/dist/renderer/DeviceLifecycle.js +48 -0
  1139. package/dist/renderer/DeviceLifecycle.js.map +1 -0
  1140. package/dist/renderer/FrameGraph.d.ts +96 -0
  1141. package/dist/renderer/FrameGraph.d.ts.map +1 -0
  1142. package/dist/renderer/FrameGraph.js +301 -0
  1143. package/dist/renderer/FrameGraph.js.map +1 -0
  1144. package/dist/renderer/InterleavedTransparentPass.d.ts +31 -0
  1145. package/dist/renderer/InterleavedTransparentPass.d.ts.map +1 -0
  1146. package/dist/renderer/InterleavedTransparentPass.js +65 -0
  1147. package/dist/renderer/InterleavedTransparentPass.js.map +1 -0
  1148. package/dist/renderer/PixelRatio.d.ts +64 -0
  1149. package/dist/renderer/PixelRatio.d.ts.map +1 -0
  1150. package/dist/renderer/PixelRatio.js +81 -0
  1151. package/dist/renderer/PixelRatio.js.map +1 -0
  1152. package/dist/renderer/PostprocessExecution.d.ts +82 -0
  1153. package/dist/renderer/PostprocessExecution.d.ts.map +1 -0
  1154. package/dist/renderer/PostprocessExecution.js +741 -0
  1155. package/dist/renderer/PostprocessExecution.js.map +1 -0
  1156. package/dist/renderer/Prd06ShaderWarmup.d.ts +32 -0
  1157. package/dist/renderer/Prd06ShaderWarmup.d.ts.map +1 -0
  1158. package/dist/renderer/Prd06ShaderWarmup.js +45 -0
  1159. package/dist/renderer/Prd06ShaderWarmup.js.map +1 -0
  1160. package/dist/renderer/RenderShared.d.ts +11 -0
  1161. package/dist/renderer/RenderShared.d.ts.map +1 -0
  1162. package/dist/renderer/RenderShared.js +47 -0
  1163. package/dist/renderer/RenderShared.js.map +1 -0
  1164. package/dist/renderer/RendererFactory.d.ts +3 -0
  1165. package/dist/renderer/RendererFactory.d.ts.map +1 -0
  1166. package/dist/renderer/RendererFactory.js +19 -0
  1167. package/dist/renderer/RendererFactory.js.map +1 -0
  1168. package/dist/renderer/RendererHost.d.ts +25 -0
  1169. package/dist/renderer/RendererHost.d.ts.map +1 -0
  1170. package/dist/renderer/RendererHost.js +4 -0
  1171. package/dist/renderer/RendererHost.js.map +1 -0
  1172. package/dist/renderer/SceneDepthCopyPass.d.ts +50 -0
  1173. package/dist/renderer/SceneDepthCopyPass.d.ts.map +1 -0
  1174. package/dist/renderer/SceneDepthCopyPass.js +124 -0
  1175. package/dist/renderer/SceneDepthCopyPass.js.map +1 -0
  1176. package/dist/renderer/ShadowOrchestration.d.ts +32 -0
  1177. package/dist/renderer/ShadowOrchestration.d.ts.map +1 -0
  1178. package/dist/renderer/ShadowOrchestration.js +491 -0
  1179. package/dist/renderer/ShadowOrchestration.js.map +1 -0
  1180. package/dist/renderer/SkinnedBounds.d.ts +6 -0
  1181. package/dist/renderer/SkinnedBounds.d.ts.map +1 -0
  1182. package/dist/renderer/SkinnedBounds.js +74 -0
  1183. package/dist/renderer/SkinnedBounds.js.map +1 -0
  1184. package/dist/renderer/coreOutputPostRoute.d.ts +40 -0
  1185. package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -0
  1186. package/dist/renderer/coreOutputPostRoute.js +46 -0
  1187. package/dist/renderer/coreOutputPostRoute.js.map +1 -0
  1188. package/dist/renderer/postSkipped.d.ts +12 -0
  1189. package/dist/renderer/postSkipped.d.ts.map +1 -0
  1190. package/dist/renderer/postSkipped.js +54 -0
  1191. package/dist/renderer/postSkipped.js.map +1 -0
  1192. package/dist/renderer/qrSubFlags.d.ts +45 -0
  1193. package/dist/renderer/qrSubFlags.d.ts.map +1 -0
  1194. package/dist/renderer/qrSubFlags.js +130 -0
  1195. package/dist/renderer/qrSubFlags.js.map +1 -0
  1196. package/dist/resources/InstanceBuffer.d.ts +34 -0
  1197. package/dist/resources/InstanceBuffer.d.ts.map +1 -0
  1198. package/dist/resources/InstanceBuffer.js +96 -0
  1199. package/dist/resources/InstanceBuffer.js.map +1 -0
  1200. package/dist/resources/MorphTargetTexture.d.ts +53 -0
  1201. package/dist/resources/MorphTargetTexture.d.ts.map +1 -0
  1202. package/dist/resources/MorphTargetTexture.js +135 -0
  1203. package/dist/resources/MorphTargetTexture.js.map +1 -0
  1204. package/dist/resources/RenderTargetPool.d.ts +47 -0
  1205. package/dist/resources/RenderTargetPool.d.ts.map +1 -0
  1206. package/dist/resources/RenderTargetPool.js +113 -0
  1207. package/dist/resources/RenderTargetPool.js.map +1 -0
  1208. package/dist/resources/ResourceRegistry.d.ts +48 -0
  1209. package/dist/resources/ResourceRegistry.d.ts.map +1 -0
  1210. package/dist/resources/ResourceRegistry.js +95 -0
  1211. package/dist/resources/ResourceRegistry.js.map +1 -0
  1212. package/dist/resources/UniformBlock.d.ts +90 -0
  1213. package/dist/resources/UniformBlock.d.ts.map +1 -0
  1214. package/dist/resources/UniformBlock.js +184 -0
  1215. package/dist/resources/UniformBlock.js.map +1 -0
  1216. package/dist/shaders/camera-fade.glsl.d.ts +26 -0
  1217. package/dist/shaders/camera-fade.glsl.d.ts.map +1 -0
  1218. package/dist/shaders/camera-fade.glsl.js +109 -0
  1219. package/dist/shaders/camera-fade.glsl.js.map +1 -0
  1220. package/dist/shaders/chunks/contact_shadow.glsl.d.ts +12 -0
  1221. package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -0
  1222. package/dist/shaders/chunks/contact_shadow.glsl.js +53 -0
  1223. package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -0
  1224. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts +29 -0
  1225. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -0
  1226. package/dist/shaders/chunks/lighting_ibl.glsl.js +122 -0
  1227. package/dist/shaders/chunks/lighting_ibl.glsl.js.map +1 -0
  1228. package/dist/shaders/chunks/lighting_mirrors.d.ts +18 -0
  1229. package/dist/shaders/chunks/lighting_mirrors.d.ts.map +1 -0
  1230. package/dist/shaders/chunks/lighting_mirrors.js +35 -0
  1231. package/dist/shaders/chunks/lighting_mirrors.js.map +1 -0
  1232. package/dist/shaders/chunks/lighting_punctual.glsl.d.ts +17 -0
  1233. package/dist/shaders/chunks/lighting_punctual.glsl.d.ts.map +1 -0
  1234. package/dist/shaders/chunks/lighting_punctual.glsl.js +197 -0
  1235. package/dist/shaders/chunks/lighting_punctual.glsl.js.map +1 -0
  1236. package/dist/shaders/chunks/sh9.glsl.d.ts +9 -0
  1237. package/dist/shaders/chunks/sh9.glsl.d.ts.map +1 -0
  1238. package/dist/shaders/chunks/sh9.glsl.js +41 -0
  1239. package/dist/shaders/chunks/sh9.glsl.js.map +1 -0
  1240. package/dist/shaders/chunks/shadow_caster.glsl.d.ts +10 -0
  1241. package/dist/shaders/chunks/shadow_caster.glsl.d.ts.map +1 -0
  1242. package/dist/shaders/chunks/shadow_caster.glsl.js +32 -0
  1243. package/dist/shaders/chunks/shadow_caster.glsl.js.map +1 -0
  1244. package/dist/shaders/chunks/shadow_receive.glsl.d.ts +13 -0
  1245. package/dist/shaders/chunks/shadow_receive.glsl.d.ts.map +1 -0
  1246. package/dist/shaders/chunks/shadow_receive.glsl.js +136 -0
  1247. package/dist/shaders/chunks/shadow_receive.glsl.js.map +1 -0
  1248. package/dist/shaders/debug-view.glsl.d.ts +18 -0
  1249. package/dist/shaders/debug-view.glsl.d.ts.map +1 -0
  1250. package/dist/shaders/debug-view.glsl.js +153 -0
  1251. package/dist/shaders/debug-view.glsl.js.map +1 -0
  1252. package/dist/shaders/deform/deform.glsl.d.ts +17 -0
  1253. package/dist/shaders/deform/deform.glsl.d.ts.map +1 -0
  1254. package/dist/shaders/deform/deform.glsl.js +99 -0
  1255. package/dist/shaders/deform/deform.glsl.js.map +1 -0
  1256. package/dist/shaders/deform/deform.wgsl.d.ts +15 -0
  1257. package/dist/shaders/deform/deform.wgsl.d.ts.map +1 -0
  1258. package/dist/shaders/deform/deform.wgsl.js +89 -0
  1259. package/dist/shaders/deform/deform.wgsl.js.map +1 -0
  1260. package/dist/shaders/deform/depthFeature.d.ts +22 -0
  1261. package/dist/shaders/deform/depthFeature.d.ts.map +1 -0
  1262. package/dist/shaders/deform/depthFeature.js +44 -0
  1263. package/dist/shaders/deform/depthFeature.js.map +1 -0
  1264. package/dist/shaders/deform/forwardFeature.d.ts +114 -0
  1265. package/dist/shaders/deform/forwardFeature.d.ts.map +1 -0
  1266. package/dist/shaders/deform/forwardFeature.js +300 -0
  1267. package/dist/shaders/deform/forwardFeature.js.map +1 -0
  1268. package/dist/shaders/deform/morph.glsl.d.ts +14 -0
  1269. package/dist/shaders/deform/morph.glsl.d.ts.map +1 -0
  1270. package/dist/shaders/deform/morph.glsl.js +45 -0
  1271. package/dist/shaders/deform/morph.glsl.js.map +1 -0
  1272. package/dist/shaders/deform/morph.wgsl.d.ts +21 -0
  1273. package/dist/shaders/deform/morph.wgsl.d.ts.map +1 -0
  1274. package/dist/shaders/deform/morph.wgsl.js +73 -0
  1275. package/dist/shaders/deform/morph.wgsl.js.map +1 -0
  1276. package/dist/shaders/deform/skinning.glsl.d.ts +8 -0
  1277. package/dist/shaders/deform/skinning.glsl.d.ts.map +1 -0
  1278. package/dist/shaders/deform/skinning.glsl.js +37 -0
  1279. package/dist/shaders/deform/skinning.glsl.js.map +1 -0
  1280. package/dist/shaders/deform/skinning.wgsl.d.ts +26 -0
  1281. package/dist/shaders/deform/skinning.wgsl.d.ts.map +1 -0
  1282. package/dist/shaders/deform/skinning.wgsl.js +58 -0
  1283. package/dist/shaders/deform/skinning.wgsl.js.map +1 -0
  1284. package/dist/shaders/deform/twins.d.ts +8 -0
  1285. package/dist/shaders/deform/twins.d.ts.map +1 -0
  1286. package/dist/shaders/deform/twins.js +20 -0
  1287. package/dist/shaders/deform/twins.js.map +1 -0
  1288. package/dist/shaders/lod-dither.glsl.d.ts +12 -0
  1289. package/dist/shaders/lod-dither.glsl.d.ts.map +1 -0
  1290. package/dist/shaders/lod-dither.glsl.js +101 -0
  1291. package/dist/shaders/lod-dither.glsl.js.map +1 -0
  1292. package/dist/shaders/physical/alpha_a2c.glsl.d.ts +19 -0
  1293. package/dist/shaders/physical/alpha_a2c.glsl.d.ts.map +1 -0
  1294. package/dist/shaders/physical/alpha_a2c.glsl.js +29 -0
  1295. package/dist/shaders/physical/alpha_a2c.glsl.js.map +1 -0
  1296. package/dist/shaders/physical/anisotropy.glsl.d.ts +23 -0
  1297. package/dist/shaders/physical/anisotropy.glsl.d.ts.map +1 -0
  1298. package/dist/shaders/physical/anisotropy.glsl.js +116 -0
  1299. package/dist/shaders/physical/anisotropy.glsl.js.map +1 -0
  1300. package/dist/shaders/physical/bsdf_lobes_common.glsl.d.ts +25 -0
  1301. package/dist/shaders/physical/bsdf_lobes_common.glsl.d.ts.map +1 -0
  1302. package/dist/shaders/physical/bsdf_lobes_common.glsl.js +95 -0
  1303. package/dist/shaders/physical/bsdf_lobes_common.glsl.js.map +1 -0
  1304. package/dist/shaders/physical/clearcoat.glsl.d.ts +23 -0
  1305. package/dist/shaders/physical/clearcoat.glsl.d.ts.map +1 -0
  1306. package/dist/shaders/physical/clearcoat.glsl.js +70 -0
  1307. package/dist/shaders/physical/clearcoat.glsl.js.map +1 -0
  1308. package/dist/shaders/physical/debug_view.glsl.d.ts +19 -0
  1309. package/dist/shaders/physical/debug_view.glsl.d.ts.map +1 -0
  1310. package/dist/shaders/physical/debug_view.glsl.js +76 -0
  1311. package/dist/shaders/physical/debug_view.glsl.js.map +1 -0
  1312. package/dist/shaders/physical/dispersion.glsl.d.ts +18 -0
  1313. package/dist/shaders/physical/dispersion.glsl.d.ts.map +1 -0
  1314. package/dist/shaders/physical/dispersion.glsl.js +67 -0
  1315. package/dist/shaders/physical/dispersion.glsl.js.map +1 -0
  1316. package/dist/shaders/physical/emissive_strength.glsl.d.ts +18 -0
  1317. package/dist/shaders/physical/emissive_strength.glsl.d.ts.map +1 -0
  1318. package/dist/shaders/physical/emissive_strength.glsl.js +20 -0
  1319. package/dist/shaders/physical/emissive_strength.glsl.js.map +1 -0
  1320. package/dist/shaders/physical/index.d.ts +27 -0
  1321. package/dist/shaders/physical/index.d.ts.map +1 -0
  1322. package/dist/shaders/physical/index.js +69 -0
  1323. package/dist/shaders/physical/index.js.map +1 -0
  1324. package/dist/shaders/physical/iridescence.glsl.d.ts +25 -0
  1325. package/dist/shaders/physical/iridescence.glsl.d.ts.map +1 -0
  1326. package/dist/shaders/physical/iridescence.glsl.js +186 -0
  1327. package/dist/shaders/physical/iridescence.glsl.js.map +1 -0
  1328. package/dist/shaders/physical/lobe_calls.glsl.d.ts +83 -0
  1329. package/dist/shaders/physical/lobe_calls.glsl.d.ts.map +1 -0
  1330. package/dist/shaders/physical/lobe_calls.glsl.js +397 -0
  1331. package/dist/shaders/physical/lobe_calls.glsl.js.map +1 -0
  1332. package/dist/shaders/physical/sheen.glsl.d.ts +24 -0
  1333. package/dist/shaders/physical/sheen.glsl.d.ts.map +1 -0
  1334. package/dist/shaders/physical/sheen.glsl.js +108 -0
  1335. package/dist/shaders/physical/sheen.glsl.js.map +1 -0
  1336. package/dist/shaders/physical/specular_ior.glsl.d.ts +20 -0
  1337. package/dist/shaders/physical/specular_ior.glsl.d.ts.map +1 -0
  1338. package/dist/shaders/physical/specular_ior.glsl.js +64 -0
  1339. package/dist/shaders/physical/specular_ior.glsl.js.map +1 -0
  1340. package/dist/shaders/physical/tangent_frame.glsl.d.ts +27 -0
  1341. package/dist/shaders/physical/tangent_frame.glsl.d.ts.map +1 -0
  1342. package/dist/shaders/physical/tangent_frame.glsl.js +71 -0
  1343. package/dist/shaders/physical/tangent_frame.glsl.js.map +1 -0
  1344. package/dist/shaders/physical/transmission.glsl.d.ts +25 -0
  1345. package/dist/shaders/physical/transmission.glsl.d.ts.map +1 -0
  1346. package/dist/shaders/physical/transmission.glsl.js +204 -0
  1347. package/dist/shaders/physical/transmission.glsl.js.map +1 -0
  1348. package/dist/shaders/physical/transmission_copy.glsl.d.ts +15 -0
  1349. package/dist/shaders/physical/transmission_copy.glsl.d.ts.map +1 -0
  1350. package/dist/shaders/physical/transmission_copy.glsl.js +33 -0
  1351. package/dist/shaders/physical/transmission_copy.glsl.js.map +1 -0
  1352. package/dist/shaders/physical/unlit.glsl.d.ts +17 -0
  1353. package/dist/shaders/physical/unlit.glsl.d.ts.map +1 -0
  1354. package/dist/shaders/physical/unlit.glsl.js +19 -0
  1355. package/dist/shaders/physical/unlit.glsl.js.map +1 -0
  1356. package/dist/shaders/physical/uv_transform.glsl.d.ts +18 -0
  1357. package/dist/shaders/physical/uv_transform.glsl.d.ts.map +1 -0
  1358. package/dist/shaders/physical/uv_transform.glsl.js +30 -0
  1359. package/dist/shaders/physical/uv_transform.glsl.js.map +1 -0
  1360. package/dist/shaders/physical/volume.glsl.d.ts +19 -0
  1361. package/dist/shaders/physical/volume.glsl.d.ts.map +1 -0
  1362. package/dist/shaders/physical/volume.glsl.js +47 -0
  1363. package/dist/shaders/physical/volume.glsl.js.map +1 -0
  1364. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.d.ts +8 -0
  1365. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.d.ts.map +1 -0
  1366. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.js +26 -0
  1367. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.js.map +1 -0
  1368. package/dist/shaders/physical-wgsl/anisotropy.wgsl.d.ts +10 -0
  1369. package/dist/shaders/physical-wgsl/anisotropy.wgsl.d.ts.map +1 -0
  1370. package/dist/shaders/physical-wgsl/anisotropy.wgsl.js +97 -0
  1371. package/dist/shaders/physical-wgsl/anisotropy.wgsl.js.map +1 -0
  1372. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.d.ts +11 -0
  1373. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.d.ts.map +1 -0
  1374. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.js +76 -0
  1375. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.js.map +1 -0
  1376. package/dist/shaders/physical-wgsl/clearcoat.wgsl.d.ts +9 -0
  1377. package/dist/shaders/physical-wgsl/clearcoat.wgsl.d.ts.map +1 -0
  1378. package/dist/shaders/physical-wgsl/clearcoat.wgsl.js +56 -0
  1379. package/dist/shaders/physical-wgsl/clearcoat.wgsl.js.map +1 -0
  1380. package/dist/shaders/physical-wgsl/debug_view.wgsl.d.ts +10 -0
  1381. package/dist/shaders/physical-wgsl/debug_view.wgsl.d.ts.map +1 -0
  1382. package/dist/shaders/physical-wgsl/debug_view.wgsl.js +71 -0
  1383. package/dist/shaders/physical-wgsl/debug_view.wgsl.js.map +1 -0
  1384. package/dist/shaders/physical-wgsl/dispersion.wgsl.d.ts +10 -0
  1385. package/dist/shaders/physical-wgsl/dispersion.wgsl.d.ts.map +1 -0
  1386. package/dist/shaders/physical-wgsl/dispersion.wgsl.js +51 -0
  1387. package/dist/shaders/physical-wgsl/dispersion.wgsl.js.map +1 -0
  1388. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.d.ts +9 -0
  1389. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.d.ts.map +1 -0
  1390. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.js +15 -0
  1391. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.js.map +1 -0
  1392. package/dist/shaders/physical-wgsl/index.d.ts +35 -0
  1393. package/dist/shaders/physical-wgsl/index.d.ts.map +1 -0
  1394. package/dist/shaders/physical-wgsl/index.js +51 -0
  1395. package/dist/shaders/physical-wgsl/index.js.map +1 -0
  1396. package/dist/shaders/physical-wgsl/iridescence.wgsl.d.ts +9 -0
  1397. package/dist/shaders/physical-wgsl/iridescence.wgsl.d.ts.map +1 -0
  1398. package/dist/shaders/physical-wgsl/iridescence.wgsl.js +162 -0
  1399. package/dist/shaders/physical-wgsl/iridescence.wgsl.js.map +1 -0
  1400. package/dist/shaders/physical-wgsl/sheen.wgsl.d.ts +9 -0
  1401. package/dist/shaders/physical-wgsl/sheen.wgsl.d.ts.map +1 -0
  1402. package/dist/shaders/physical-wgsl/sheen.wgsl.js +85 -0
  1403. package/dist/shaders/physical-wgsl/sheen.wgsl.js.map +1 -0
  1404. package/dist/shaders/physical-wgsl/specular_ior.wgsl.d.ts +10 -0
  1405. package/dist/shaders/physical-wgsl/specular_ior.wgsl.d.ts.map +1 -0
  1406. package/dist/shaders/physical-wgsl/specular_ior.wgsl.js +47 -0
  1407. package/dist/shaders/physical-wgsl/specular_ior.wgsl.js.map +1 -0
  1408. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.d.ts +11 -0
  1409. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.d.ts.map +1 -0
  1410. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.js +57 -0
  1411. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.js.map +1 -0
  1412. package/dist/shaders/physical-wgsl/transmission.wgsl.d.ts +14 -0
  1413. package/dist/shaders/physical-wgsl/transmission.wgsl.d.ts.map +1 -0
  1414. package/dist/shaders/physical-wgsl/transmission.wgsl.js +159 -0
  1415. package/dist/shaders/physical-wgsl/transmission.wgsl.js.map +1 -0
  1416. package/dist/shaders/physical-wgsl/unlit.wgsl.d.ts +8 -0
  1417. package/dist/shaders/physical-wgsl/unlit.wgsl.d.ts.map +1 -0
  1418. package/dist/shaders/physical-wgsl/unlit.wgsl.js +13 -0
  1419. package/dist/shaders/physical-wgsl/unlit.wgsl.js.map +1 -0
  1420. package/dist/shaders/physical-wgsl/uv_transform.wgsl.d.ts +10 -0
  1421. package/dist/shaders/physical-wgsl/uv_transform.wgsl.d.ts.map +1 -0
  1422. package/dist/shaders/physical-wgsl/uv_transform.wgsl.js +24 -0
  1423. package/dist/shaders/physical-wgsl/uv_transform.wgsl.js.map +1 -0
  1424. package/dist/shaders/physical-wgsl/volume.wgsl.d.ts +10 -0
  1425. package/dist/shaders/physical-wgsl/volume.wgsl.d.ts.map +1 -0
  1426. package/dist/shaders/physical-wgsl/volume.wgsl.js +35 -0
  1427. package/dist/shaders/physical-wgsl/volume.wgsl.js.map +1 -0
  1428. package/dist/shadows/DirectionalCascadeFitter.d.ts +97 -0
  1429. package/dist/shadows/DirectionalCascadeFitter.d.ts.map +1 -0
  1430. package/dist/shadows/DirectionalCascadeFitter.js +372 -0
  1431. package/dist/shadows/DirectionalCascadeFitter.js.map +1 -0
  1432. package/dist/shadows/Prd02DepthShaderLibrary.d.ts +77 -0
  1433. package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -0
  1434. package/dist/shadows/Prd02DepthShaderLibrary.js +381 -0
  1435. package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -0
  1436. package/dist/shadows/Prd02ReceiveShadowContributor.d.ts +20 -0
  1437. package/dist/shadows/Prd02ReceiveShadowContributor.d.ts.map +1 -0
  1438. package/dist/shadows/Prd02ReceiveShadowContributor.js +20 -0
  1439. package/dist/shadows/Prd02ReceiveShadowContributor.js.map +1 -0
  1440. package/dist/shadows/Prd02ShadowBridge.d.ts +111 -0
  1441. package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -0
  1442. package/dist/shadows/Prd02ShadowBridge.js +267 -0
  1443. package/dist/shadows/Prd02ShadowBridge.js.map +1 -0
  1444. package/dist/shadows/Prd02ShadowFilter.d.ts +29 -0
  1445. package/dist/shadows/Prd02ShadowFilter.d.ts.map +1 -0
  1446. package/dist/shadows/Prd02ShadowFilter.js +35 -0
  1447. package/dist/shadows/Prd02ShadowFilter.js.map +1 -0
  1448. package/dist/shadows/Prd02ShadowsContributor.d.ts +44 -0
  1449. package/dist/shadows/Prd02ShadowsContributor.d.ts.map +1 -0
  1450. package/dist/shadows/Prd02ShadowsContributor.js +197 -0
  1451. package/dist/shadows/Prd02ShadowsContributor.js.map +1 -0
  1452. package/dist/shadows/ShadowAtlas.d.ts +59 -0
  1453. package/dist/shadows/ShadowAtlas.d.ts.map +1 -0
  1454. package/dist/shadows/ShadowAtlas.js +137 -0
  1455. package/dist/shadows/ShadowAtlas.js.map +1 -0
  1456. package/dist/shadows/ShadowDebugViews.d.ts +5 -0
  1457. package/dist/shadows/ShadowDebugViews.d.ts.map +1 -1
  1458. package/dist/shadows/ShadowDebugViews.js +15 -10
  1459. package/dist/shadows/ShadowDebugViews.js.map +1 -1
  1460. package/dist/shadows/ShadowFrameBinding.d.ts +18 -0
  1461. package/dist/shadows/ShadowFrameBinding.d.ts.map +1 -0
  1462. package/dist/shadows/ShadowFrameBinding.js +52 -0
  1463. package/dist/shadows/ShadowFrameBinding.js.map +1 -0
  1464. package/dist/shadows/ShadowSystem.d.ts +125 -0
  1465. package/dist/shadows/ShadowSystem.d.ts.map +1 -0
  1466. package/dist/shadows/ShadowSystem.js +293 -0
  1467. package/dist/shadows/ShadowSystem.js.map +1 -0
  1468. package/dist/textures/TextureBudget.d.ts +42 -0
  1469. package/dist/textures/TextureBudget.d.ts.map +1 -0
  1470. package/dist/textures/TextureBudget.js +180 -0
  1471. package/dist/textures/TextureBudget.js.map +1 -0
  1472. package/dist/vfx/BeamPass.d.ts +42 -0
  1473. package/dist/vfx/BeamPass.d.ts.map +1 -0
  1474. package/dist/vfx/BeamPass.js +249 -0
  1475. package/dist/vfx/BeamPass.js.map +1 -0
  1476. package/dist/vfx/BlendFallback.d.ts +19 -0
  1477. package/dist/vfx/BlendFallback.d.ts.map +1 -0
  1478. package/dist/vfx/BlendFallback.js +73 -0
  1479. package/dist/vfx/BlendFallback.js.map +1 -0
  1480. package/dist/vfx/DecalBatch.d.ts +120 -0
  1481. package/dist/vfx/DecalBatch.d.ts.map +1 -0
  1482. package/dist/vfx/DecalBatch.js +234 -0
  1483. package/dist/vfx/DecalBatch.js.map +1 -0
  1484. package/dist/vfx/DecalPass.d.ts +63 -0
  1485. package/dist/vfx/DecalPass.d.ts.map +1 -0
  1486. package/dist/vfx/DecalPass.js +159 -0
  1487. package/dist/vfx/DecalPass.js.map +1 -0
  1488. package/dist/vfx/LowResParticles.d.ts +31 -0
  1489. package/dist/vfx/LowResParticles.d.ts.map +1 -0
  1490. package/dist/vfx/LowResParticles.js +151 -0
  1491. package/dist/vfx/LowResParticles.js.map +1 -0
  1492. package/dist/vfx/MeshParticleBatch.d.ts +49 -0
  1493. package/dist/vfx/MeshParticleBatch.d.ts.map +1 -0
  1494. package/dist/vfx/MeshParticleBatch.js +184 -0
  1495. package/dist/vfx/MeshParticleBatch.js.map +1 -0
  1496. package/dist/vfx/MeshParticlePass.d.ts +28 -0
  1497. package/dist/vfx/MeshParticlePass.d.ts.map +1 -0
  1498. package/dist/vfx/MeshParticlePass.js +150 -0
  1499. package/dist/vfx/MeshParticlePass.js.map +1 -0
  1500. package/dist/vfx/ParticleBatchPass.d.ts +61 -0
  1501. package/dist/vfx/ParticleBatchPass.d.ts.map +1 -0
  1502. package/dist/vfx/ParticleBatchPass.js +320 -0
  1503. package/dist/vfx/ParticleBatchPass.js.map +1 -0
  1504. package/dist/vfx/ParticleGpuSim.d.ts +85 -0
  1505. package/dist/vfx/ParticleGpuSim.d.ts.map +1 -0
  1506. package/dist/vfx/ParticleGpuSim.js +301 -0
  1507. package/dist/vfx/ParticleGpuSim.js.map +1 -0
  1508. package/dist/vfx/ParticleInstanceLayout.d.ts +38 -0
  1509. package/dist/vfx/ParticleInstanceLayout.d.ts.map +1 -0
  1510. package/dist/vfx/ParticleInstanceLayout.js +105 -0
  1511. package/dist/vfx/ParticleInstanceLayout.js.map +1 -0
  1512. package/dist/vfx/ParticleSort.d.ts +21 -0
  1513. package/dist/vfx/ParticleSort.d.ts.map +1 -0
  1514. package/dist/vfx/ParticleSort.js +80 -0
  1515. package/dist/vfx/ParticleSort.js.map +1 -0
  1516. package/dist/vfx/ProceduralVolumeEmitter.d.ts +90 -0
  1517. package/dist/vfx/ProceduralVolumeEmitter.d.ts.map +1 -0
  1518. package/dist/vfx/ProceduralVolumeEmitter.js +155 -0
  1519. package/dist/vfx/ProceduralVolumeEmitter.js.map +1 -0
  1520. package/dist/vfx/RibbonBatch.d.ts +71 -0
  1521. package/dist/vfx/RibbonBatch.d.ts.map +1 -0
  1522. package/dist/vfx/RibbonBatch.js +234 -0
  1523. package/dist/vfx/RibbonBatch.js.map +1 -0
  1524. package/dist/vfx/RibbonPass.d.ts +21 -0
  1525. package/dist/vfx/RibbonPass.d.ts.map +1 -0
  1526. package/dist/vfx/RibbonPass.js +108 -0
  1527. package/dist/vfx/RibbonPass.js.map +1 -0
  1528. package/dist/vfx/SceneDepthAdapter.d.ts +28 -0
  1529. package/dist/vfx/SceneDepthAdapter.d.ts.map +1 -0
  1530. package/dist/vfx/SceneDepthAdapter.js +70 -0
  1531. package/dist/vfx/SceneDepthAdapter.js.map +1 -0
  1532. package/dist/vfx/VfxAtlas.d.ts +68 -0
  1533. package/dist/vfx/VfxAtlas.d.ts.map +1 -0
  1534. package/dist/vfx/VfxAtlas.js +106 -0
  1535. package/dist/vfx/VfxAtlas.js.map +1 -0
  1536. package/dist/vfx/contributors.d.ts +73 -0
  1537. package/dist/vfx/contributors.d.ts.map +1 -0
  1538. package/dist/vfx/contributors.js +615 -0
  1539. package/dist/vfx/contributors.js.map +1 -0
  1540. package/dist/vfx/decalLighting.d.ts +8 -0
  1541. package/dist/vfx/decalLighting.d.ts.map +1 -0
  1542. package/dist/vfx/decalLighting.js +53 -0
  1543. package/dist/vfx/decalLighting.js.map +1 -0
  1544. package/dist/vfx/depthSampler.d.ts +3 -0
  1545. package/dist/vfx/depthSampler.d.ts.map +1 -0
  1546. package/dist/vfx/depthSampler.js +10 -0
  1547. package/dist/vfx/depthSampler.js.map +1 -0
  1548. package/dist/vfx/prd07FeaturePars.d.ts +12 -0
  1549. package/dist/vfx/prd07FeaturePars.d.ts.map +1 -0
  1550. package/dist/vfx/prd07FeaturePars.js +54 -0
  1551. package/dist/vfx/prd07FeaturePars.js.map +1 -0
  1552. package/dist/vfx/shaders/beam.glsl.d.ts +11 -0
  1553. package/dist/vfx/shaders/beam.glsl.d.ts.map +1 -0
  1554. package/dist/vfx/shaders/beam.glsl.js +89 -0
  1555. package/dist/vfx/shaders/beam.glsl.js.map +1 -0
  1556. package/dist/vfx/shaders/decal.glsl.d.ts +14 -0
  1557. package/dist/vfx/shaders/decal.glsl.d.ts.map +1 -0
  1558. package/dist/vfx/shaders/decal.glsl.js +157 -0
  1559. package/dist/vfx/shaders/decal.glsl.js.map +1 -0
  1560. package/dist/vfx/shaders/gpu-sim.glsl.d.ts +5 -0
  1561. package/dist/vfx/shaders/gpu-sim.glsl.d.ts.map +1 -0
  1562. package/dist/vfx/shaders/gpu-sim.glsl.js +177 -0
  1563. package/dist/vfx/shaders/gpu-sim.glsl.js.map +1 -0
  1564. package/dist/vfx/shaders/lowresComposite.glsl.d.ts +9 -0
  1565. package/dist/vfx/shaders/lowresComposite.glsl.d.ts.map +1 -0
  1566. package/dist/vfx/shaders/lowresComposite.glsl.js +64 -0
  1567. package/dist/vfx/shaders/lowresComposite.glsl.js.map +1 -0
  1568. package/dist/vfx/shaders/mesh-particle.glsl.d.ts +4 -0
  1569. package/dist/vfx/shaders/mesh-particle.glsl.d.ts.map +1 -0
  1570. package/dist/vfx/shaders/mesh-particle.glsl.js +55 -0
  1571. package/dist/vfx/shaders/mesh-particle.glsl.js.map +1 -0
  1572. package/dist/vfx/shaders/particle.glsl.d.ts +24 -0
  1573. package/dist/vfx/shaders/particle.glsl.d.ts.map +1 -0
  1574. package/dist/vfx/shaders/particle.glsl.js +215 -0
  1575. package/dist/vfx/shaders/particle.glsl.js.map +1 -0
  1576. package/dist/vfx/shaders/ribbon.glsl.d.ts +9 -0
  1577. package/dist/vfx/shaders/ribbon.glsl.d.ts.map +1 -0
  1578. package/dist/vfx/shaders/ribbon.glsl.js +60 -0
  1579. package/dist/vfx/shaders/ribbon.glsl.js.map +1 -0
  1580. package/dist/vfx/shaders/volume.glsl.d.ts +5 -0
  1581. package/dist/vfx/shaders/volume.glsl.d.ts.map +1 -0
  1582. package/dist/vfx/shaders/volume.glsl.js +52 -0
  1583. package/dist/vfx/shaders/volume.glsl.js.map +1 -0
  1584. package/dist/webgl2/ContextLifecycle.d.ts +43 -0
  1585. package/dist/webgl2/ContextLifecycle.d.ts.map +1 -0
  1586. package/dist/webgl2/ContextLifecycle.js +189 -0
  1587. package/dist/webgl2/ContextLifecycle.js.map +1 -0
  1588. package/dist/webgl2/Counters.d.ts +58 -0
  1589. package/dist/webgl2/Counters.d.ts.map +1 -0
  1590. package/dist/webgl2/Counters.js +207 -0
  1591. package/dist/webgl2/Counters.js.map +1 -0
  1592. package/dist/webgl2/DeviceHost.d.ts +41 -0
  1593. package/dist/webgl2/DeviceHost.d.ts.map +1 -0
  1594. package/dist/webgl2/DeviceHost.js +3 -0
  1595. package/dist/webgl2/DeviceHost.js.map +1 -0
  1596. package/dist/webgl2/LegacyPost.d.ts +279 -0
  1597. package/dist/webgl2/LegacyPost.d.ts.map +1 -0
  1598. package/dist/webgl2/LegacyPost.js +2477 -0
  1599. package/dist/webgl2/LegacyPost.js.map +1 -0
  1600. package/dist/webgl2/MultiDraw.d.ts +96 -0
  1601. package/dist/webgl2/MultiDraw.d.ts.map +1 -0
  1602. package/dist/webgl2/MultiDraw.js +716 -0
  1603. package/dist/webgl2/MultiDraw.js.map +1 -0
  1604. package/dist/webgl2/Probe.d.ts +27 -0
  1605. package/dist/webgl2/Probe.d.ts.map +1 -0
  1606. package/dist/webgl2/Probe.js +303 -0
  1607. package/dist/webgl2/Probe.js.map +1 -0
  1608. package/dist/webgl2/Samplers.d.ts +20 -0
  1609. package/dist/webgl2/Samplers.d.ts.map +1 -0
  1610. package/dist/webgl2/Samplers.js +179 -0
  1611. package/dist/webgl2/Samplers.js.map +1 -0
  1612. package/dist/webgl2/TextureFormats.d.ts +48 -0
  1613. package/dist/webgl2/TextureFormats.d.ts.map +1 -0
  1614. package/dist/webgl2/TextureFormats.js +185 -0
  1615. package/dist/webgl2/TextureFormats.js.map +1 -0
  1616. package/dist/webgl2/TextureUpload.d.ts +38 -0
  1617. package/dist/webgl2/TextureUpload.d.ts.map +1 -0
  1618. package/dist/webgl2/TextureUpload.js +346 -0
  1619. package/dist/webgl2/TextureUpload.js.map +1 -0
  1620. package/dist/webgpu/WebGPUBuffer.d.ts +1 -0
  1621. package/dist/webgpu/WebGPUBuffer.d.ts.map +1 -1
  1622. package/dist/webgpu/WebGPUCompute.d.ts +1 -0
  1623. package/dist/webgpu/WebGPUCompute.d.ts.map +1 -1
  1624. package/dist/webgpu/WebGPUCompute.js +1 -0
  1625. package/dist/webgpu/WebGPUCompute.js.map +1 -1
  1626. package/dist/webgpu/WebGPUPipelineCache.d.ts +4 -0
  1627. package/dist/webgpu/WebGPUPipelineCache.d.ts.map +1 -1
  1628. package/dist/webgpu/WebGPUPipelineCache.js +4 -0
  1629. package/dist/webgpu/WebGPUPipelineCache.js.map +1 -1
  1630. package/dist/webgpu/WebGPUPostShaders.d.ts.map +1 -1
  1631. package/dist/webgpu/WebGPUPostShaders.js +33 -2
  1632. package/dist/webgpu/WebGPUPostShaders.js.map +1 -1
  1633. package/dist/webgpu/WebGPUTexture.d.ts +1 -0
  1634. package/dist/webgpu/WebGPUTexture.d.ts.map +1 -1
  1635. package/dist/webgpu/WebGPUTexture.js.map +1 -1
  1636. package/dist/world/chunks.d.ts +15 -0
  1637. package/dist/world/chunks.d.ts.map +1 -0
  1638. package/dist/world/chunks.js +56 -0
  1639. package/dist/world/chunks.js.map +1 -0
  1640. package/dist/world/index.d.ts +38 -0
  1641. package/dist/world/index.d.ts.map +1 -0
  1642. package/dist/world/index.js +39 -0
  1643. package/dist/world/index.js.map +1 -0
  1644. package/dist/world/shared/shaders/worldLightFallback.d.ts +12 -0
  1645. package/dist/world/shared/shaders/worldLightFallback.d.ts.map +1 -0
  1646. package/dist/world/shared/shaders/worldLightFallback.js +82 -0
  1647. package/dist/world/shared/shaders/worldLightFallback.js.map +1 -0
  1648. package/dist/world/space/PlanetMaterial.d.ts +24 -0
  1649. package/dist/world/space/PlanetMaterial.d.ts.map +1 -0
  1650. package/dist/world/space/PlanetMaterial.js +82 -0
  1651. package/dist/world/space/PlanetMaterial.js.map +1 -0
  1652. package/dist/world/space/SpaceSkyBake.d.ts +46 -0
  1653. package/dist/world/space/SpaceSkyBake.d.ts.map +1 -0
  1654. package/dist/world/space/SpaceSkyBake.js +145 -0
  1655. package/dist/world/space/SpaceSkyBake.js.map +1 -0
  1656. package/dist/world/space/shaders/planet.d.ts +8 -0
  1657. package/dist/world/space/shaders/planet.d.ts.map +1 -0
  1658. package/dist/world/space/shaders/planet.js +55 -0
  1659. package/dist/world/space/shaders/planet.js.map +1 -0
  1660. package/dist/world/space/shaders/spaceBake.d.ts +9 -0
  1661. package/dist/world/space/shaders/spaceBake.d.ts.map +1 -0
  1662. package/dist/world/space/shaders/spaceBake.js +102 -0
  1663. package/dist/world/space/shaders/spaceBake.js.map +1 -0
  1664. package/dist/world/terrain/SplatBake.d.ts +76 -0
  1665. package/dist/world/terrain/SplatBake.d.ts.map +1 -0
  1666. package/dist/world/terrain/SplatBake.js +308 -0
  1667. package/dist/world/terrain/SplatBake.js.map +1 -0
  1668. package/dist/world/terrain/TerrainCdlod.d.ts +67 -0
  1669. package/dist/world/terrain/TerrainCdlod.d.ts.map +1 -0
  1670. package/dist/world/terrain/TerrainCdlod.js +115 -0
  1671. package/dist/world/terrain/TerrainCdlod.js.map +1 -0
  1672. package/dist/world/terrain/TerrainHeightTexture.d.ts +44 -0
  1673. package/dist/world/terrain/TerrainHeightTexture.d.ts.map +1 -0
  1674. package/dist/world/terrain/TerrainHeightTexture.js +173 -0
  1675. package/dist/world/terrain/TerrainHeightTexture.js.map +1 -0
  1676. package/dist/world/terrain/TerrainPatchGeometry.d.ts +18 -0
  1677. package/dist/world/terrain/TerrainPatchGeometry.d.ts.map +1 -0
  1678. package/dist/world/terrain/TerrainPatchGeometry.js +40 -0
  1679. package/dist/world/terrain/TerrainPatchGeometry.js.map +1 -0
  1680. package/dist/world/terrain/shaders/terrain.vert.glsl.d.ts +19 -0
  1681. package/dist/world/terrain/shaders/terrain.vert.glsl.d.ts.map +1 -0
  1682. package/dist/world/terrain/shaders/terrain.vert.glsl.js +162 -0
  1683. package/dist/world/terrain/shaders/terrain.vert.glsl.js.map +1 -0
  1684. package/dist/world/terrain/shaders/terrainCdlod.d.ts +23 -0
  1685. package/dist/world/terrain/shaders/terrainCdlod.d.ts.map +1 -0
  1686. package/dist/world/terrain/shaders/terrainCdlod.js +110 -0
  1687. package/dist/world/terrain/shaders/terrainCdlod.js.map +1 -0
  1688. package/dist/world/terrain/shaders/terrainSplat.d.ts +26 -0
  1689. package/dist/world/terrain/shaders/terrainSplat.d.ts.map +1 -0
  1690. package/dist/world/terrain/shaders/terrainSplat.js +181 -0
  1691. package/dist/world/terrain/shaders/terrainSplat.js.map +1 -0
  1692. package/dist/world/vegetation/FoliageMaterial.d.ts +14 -0
  1693. package/dist/world/vegetation/FoliageMaterial.d.ts.map +1 -0
  1694. package/dist/world/vegetation/FoliageMaterial.js +107 -0
  1695. package/dist/world/vegetation/FoliageMaterial.js.map +1 -0
  1696. package/dist/world/vegetation/GrassField.d.ts +43 -0
  1697. package/dist/world/vegetation/GrassField.d.ts.map +1 -0
  1698. package/dist/world/vegetation/GrassField.js +68 -0
  1699. package/dist/world/vegetation/GrassField.js.map +1 -0
  1700. package/dist/world/vegetation/ImpostorMaterial.d.ts +20 -0
  1701. package/dist/world/vegetation/ImpostorMaterial.d.ts.map +1 -0
  1702. package/dist/world/vegetation/ImpostorMaterial.js +80 -0
  1703. package/dist/world/vegetation/ImpostorMaterial.js.map +1 -0
  1704. package/dist/world/vegetation/InstanceChunkGrid.d.ts +67 -0
  1705. package/dist/world/vegetation/InstanceChunkGrid.d.ts.map +1 -0
  1706. package/dist/world/vegetation/InstanceChunkGrid.js +150 -0
  1707. package/dist/world/vegetation/InstanceChunkGrid.js.map +1 -0
  1708. package/dist/world/vegetation/WindCpu.d.ts +19 -0
  1709. package/dist/world/vegetation/WindCpu.d.ts.map +1 -0
  1710. package/dist/world/vegetation/WindCpu.js +43 -0
  1711. package/dist/world/vegetation/WindCpu.js.map +1 -0
  1712. package/dist/world/vegetation/WindField.d.ts +42 -0
  1713. package/dist/world/vegetation/WindField.d.ts.map +1 -0
  1714. package/dist/world/vegetation/WindField.js +154 -0
  1715. package/dist/world/vegetation/WindField.js.map +1 -0
  1716. package/dist/world/vegetation/shaders/foliage.d.ts +8 -0
  1717. package/dist/world/vegetation/shaders/foliage.d.ts.map +1 -0
  1718. package/dist/world/vegetation/shaders/foliage.js +104 -0
  1719. package/dist/world/vegetation/shaders/foliage.js.map +1 -0
  1720. package/dist/world/vegetation/shaders/grass.d.ts +10 -0
  1721. package/dist/world/vegetation/shaders/grass.d.ts.map +1 -0
  1722. package/dist/world/vegetation/shaders/grass.js +79 -0
  1723. package/dist/world/vegetation/shaders/grass.js.map +1 -0
  1724. package/dist/world/vegetation/shaders/impostor.d.ts +9 -0
  1725. package/dist/world/vegetation/shaders/impostor.d.ts.map +1 -0
  1726. package/dist/world/vegetation/shaders/impostor.js +97 -0
  1727. package/dist/world/vegetation/shaders/impostor.js.map +1 -0
  1728. package/dist/world/vegetation/shaders/wind.d.ts +9 -0
  1729. package/dist/world/vegetation/shaders/wind.d.ts.map +1 -0
  1730. package/dist/world/vegetation/shaders/wind.js +103 -0
  1731. package/dist/world/vegetation/shaders/wind.js.map +1 -0
  1732. package/dist/world/water/GerstnerWaves.d.ts +65 -0
  1733. package/dist/world/water/GerstnerWaves.d.ts.map +1 -0
  1734. package/dist/world/water/GerstnerWaves.js +182 -0
  1735. package/dist/world/water/GerstnerWaves.js.map +1 -0
  1736. package/dist/world/water/ReflectionViewPass.d.ts +46 -0
  1737. package/dist/world/water/ReflectionViewPass.d.ts.map +1 -0
  1738. package/dist/world/water/ReflectionViewPass.js +85 -0
  1739. package/dist/world/water/ReflectionViewPass.js.map +1 -0
  1740. package/dist/world/water/SceneCopyFallback.d.ts +21 -0
  1741. package/dist/world/water/SceneCopyFallback.d.ts.map +1 -0
  1742. package/dist/world/water/SceneCopyFallback.js +150 -0
  1743. package/dist/world/water/SceneCopyFallback.js.map +1 -0
  1744. package/dist/world/water/UnderwaterState.d.ts +25 -0
  1745. package/dist/world/water/UnderwaterState.d.ts.map +1 -0
  1746. package/dist/world/water/UnderwaterState.js +134 -0
  1747. package/dist/world/water/UnderwaterState.js.map +1 -0
  1748. package/dist/world/water/WaterMaterial.d.ts +23 -0
  1749. package/dist/world/water/WaterMaterial.d.ts.map +1 -0
  1750. package/dist/world/water/WaterMaterial.js +129 -0
  1751. package/dist/world/water/WaterMaterial.js.map +1 -0
  1752. package/dist/world/water/shaders/caustics.d.ts +13 -0
  1753. package/dist/world/water/shaders/caustics.d.ts.map +1 -0
  1754. package/dist/world/water/shaders/caustics.js +103 -0
  1755. package/dist/world/water/shaders/caustics.js.map +1 -0
  1756. package/dist/world/water/shaders/gerstner.d.ts +9 -0
  1757. package/dist/world/water/shaders/gerstner.d.ts.map +1 -0
  1758. package/dist/world/water/shaders/gerstner.js +100 -0
  1759. package/dist/world/water/shaders/gerstner.js.map +1 -0
  1760. package/dist/world/water/shaders/water.d.ts +12 -0
  1761. package/dist/world/water/shaders/water.d.ts.map +1 -0
  1762. package/dist/world/water/shaders/water.js +112 -0
  1763. package/dist/world/water/shaders/water.js.map +1 -0
  1764. package/package.json +32 -11
@@ -0,0 +1,1189 @@
1
+ /**
2
+ * PRD-03 Phase 3 — the transitional v2 GPU stage driver (deferred chunk:
3
+ * imported only through `post/v2Entry` from `PostprocessExecution`).
4
+ *
5
+ * `runV2HdrStages` runs the implemented §6.1 HDR stages that no longer have a
6
+ * CPU/home on the legacy chain:
7
+ * S1 depth prep (linearize → RGBA32F, half-res min/max)
8
+ * S2 GTAO (half-res → bilateral denoise H/V → joint-bilateral
9
+ * upsample + §6.3 multi-bounce apply onto HDR)
10
+ * S4 god rays (half-res radial march → additive onto HDR)
11
+ * CA chromatic aberration (the §8.12 S10 tap as a standalone pre-pass)
12
+ * S1-C camera velocity (§8.6/§8.8: depth-reprojected UV deltas → velocity target)
13
+ * S5 TAA / TAAU (§8.6 resolve against the C-14 history ping-pong)
14
+ * S6 depth of field (§8.7 half-res prefilter → near-tile → Vogel gather → composite)
15
+ * S7 motion blur (§8.8 McGuire tile-max → neighbor-max → reconstruction)
16
+ *
17
+ * `runV2LdrTail` runs the post-`presentLdrPostprocess` display stages:
18
+ * S10b display grade (LUT + vignette, luma into .a for FXAA),
19
+ * S11 r185 FXAA (or fused inside S12), S12 finalize (grain + RCAS + the
20
+ * single triangular dither). When FXAA is selected and any S10b/S12 stage
21
+ * is active, `FINALIZE_FXAA_FUSED_GLSL` collapses all three into one draw.
22
+ *
23
+ * Format note: the contract pool only has rgba8/rgba16f/rgba32f renderable
24
+ * formats, so the spec's R32F/RG32F/R8 surfaces land as rgba32f (≥ spec
25
+ * precision, .r/.rg channels) and rgba8 (R8-equivalent quantization).
26
+ * True single/double-channel formats are qr-request Q-11-2 (lane 11
27
+ * RenderDevice::resolveRenderTargetFormat).
28
+ */
29
+ import { RenderDeviceError } from "../RenderDevice.js";
30
+ import { invertMat4, multiplyMat4 } from "@aura3d/scene";
31
+ import { registeredPostPasses, validatePostPassSpace } from "../contracts/post.js";
32
+ import { rendererQrFlags } from "../renderer/FrameGraph.js";
33
+ import { beginPostStageTrace, markTaaHistoryWritten, recordPostSkipped, recordPostStage } from "../renderer/postSkipped.js";
34
+ import { PostResources } from "./PostResources.js";
35
+ import { QUALITY_TIERS } from "../contracts/quality.js";
36
+ import { CAMERA_VELOCITY_GLSL, DEPTH_LINEARIZE_GLSL, DEPTH_MINMAX_HALF_GLSL } from "./shaders/depthDownsample.glsl.js";
37
+ import { GTAO_GLSL } from "./shaders/gtao.glsl.js";
38
+ import { GTAO_APPLY_GLSL, GTAO_DENOISE_GLSL } from "./shaders/gtaoDenoise.glsl.js";
39
+ import { GODRAYS_GLSL } from "./shaders/godrays.glsl.js";
40
+ import { CA_PASS_GLSL } from "./shaders/composite.glsl.js";
41
+ import { DISPLAY_GRADE_GLSL } from "./shaders/displayGrade.glsl.js";
42
+ import { FINALIZE_FXAA_FUSED_GLSL, FINALIZE_GLSL } from "./shaders/finalize.glsl.js";
43
+ import { VELOCITY_DILATE_GLSL } from "./shaders/velocityDilate.glsl.js";
44
+ import { TAA_RESOLVE_GLSL, TAA_UPSCALE_GLSL } from "./shaders/taa.glsl.js";
45
+ import { DOF_COMPOSITE_GLSL, DOF_GATHER_GLSL, DOF_NEAR_TILE_GLSL, DOF_PREFILTER_GLSL } from "./shaders/dof.glsl.js";
46
+ import { MB_NEIGHBOR_GLSL, MB_RECONSTRUCT_GLSL, MB_TILE_MAX_GLSL } from "./shaders/motionBlur.glsl.js";
47
+ import { EXPOSURE_ADAPT_GLSL, EXPOSURE_LUMA_LOG_GLSL, EXPOSURE_MUL_GLSL, EXPOSURE_REDUCE_GLSL } from "./shaders/exposure.glsl.js";
48
+ import { SMAA_BLEND_GLSL, SMAA_EDGES_GLSL, SMAA_WEIGHTS_GLSL } from "./shaders/smaa.glsl.js";
49
+ import { FXAA_185_FRAGMENT_GLSL } from "./shaders/fxaa.glsl.js";
50
+ import { POST_INSERT_ANCHORS } from "./PostGraph.js";
51
+ /** Identity for the folded camera-velocity reprojection (S1-C). */
52
+ const IDENTITY_MAT4_F32 = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
53
+ const VERTEX = `#version 300 es
54
+ out vec2 v_uv;
55
+ void main() {
56
+ vec2 p = vec2(gl_VertexID == 1 ? 3.0 : -1.0, gl_VertexID == 2 ? 3.0 : -1.0);
57
+ v_uv = p * 0.5 + 0.5;
58
+ gl_Position = vec4(p, 0.0, 1.0);
59
+ }
60
+ `;
61
+ function asGlTarget(target) {
62
+ const t = target;
63
+ if (!t.framebuffer || !t.colorHandle) {
64
+ throw new RenderDeviceError("v2 post stages require WebGL2 render targets.", "POST_GRAPH_V2_UNSUPPORTED");
65
+ }
66
+ return t;
67
+ }
68
+ const states = new WeakMap();
69
+ function v2State(host) {
70
+ const gl = host.gl;
71
+ let state = states.get(gl);
72
+ if (!state) {
73
+ const vao = gl.createVertexArray();
74
+ const identityLut = gl.createTexture();
75
+ if (!vao || !identityLut) {
76
+ throw new RenderDeviceError("v2 post stage GL object allocation failed.", "POST_GRAPH_V2_UNSUPPORTED");
77
+ }
78
+ gl.bindTexture(gl.TEXTURE_3D, identityLut);
79
+ const size = 4;
80
+ const identity = new Uint8Array(size * size * size * 4);
81
+ for (let b = 0; b < size; b++)
82
+ for (let g = 0; g < size; g++)
83
+ for (let r = 0; r < size; r++) {
84
+ const i = ((b * size + g) * size + r) * 4;
85
+ identity[i] = Math.round((r / (size - 1)) * 255);
86
+ identity[i + 1] = Math.round((g / (size - 1)) * 255);
87
+ identity[i + 2] = Math.round((b / (size - 1)) * 255);
88
+ identity[i + 3] = 255;
89
+ }
90
+ gl.texImage3D(gl.TEXTURE_3D, 0, gl.RGBA8, size, size, size, 0, gl.RGBA, gl.UNSIGNED_BYTE, identity);
91
+ gl.texParameteri(gl.TEXTURE_3D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
92
+ gl.texParameteri(gl.TEXTURE_3D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
93
+ gl.texParameteri(gl.TEXTURE_3D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
94
+ gl.texParameteri(gl.TEXTURE_3D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
95
+ gl.texParameteri(gl.TEXTURE_3D, gl.TEXTURE_WRAP_R, gl.CLAMP_TO_EDGE);
96
+ gl.bindTexture(gl.TEXTURE_3D, null);
97
+ const blankTex = gl.createTexture();
98
+ if (blankTex) {
99
+ gl.bindTexture(gl.TEXTURE_2D, blankTex);
100
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA8, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array([0, 0, 0, 0]));
101
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
102
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
103
+ gl.bindTexture(gl.TEXTURE_2D, null);
104
+ }
105
+ state = {
106
+ programs: new Map(),
107
+ vao,
108
+ pool: new PostResources(host.device, rendererQrFlags()),
109
+ identityLut,
110
+ blankTex: blankTex ?? identityLut,
111
+ frameIndex: 0,
112
+ postBlackboard: new Map(),
113
+ timeSeconds: 0,
114
+ evTargets: [undefined, undefined],
115
+ evIndex: 0,
116
+ evValid: false,
117
+ smaa: { area: null, search: null, requested: false }
118
+ };
119
+ states.set(gl, state);
120
+ }
121
+ return state;
122
+ }
123
+ /**
124
+ * God-ray tint as an RGB triple. The engine bridge compiles
125
+ * `effects.volumetricFog({ color })` to a `{ r, g, b }` object, while direct
126
+ * callers pass `[r, g, b]`. Indexing the object as an array gave
127
+ * `uniform3f(undefined, …)`; the resulting NaN tint went through the additive
128
+ * blend and turned the whole HDR frame black (shaft-on mean luma 0 on the GPU
129
+ * lane, runs 38140351314 and 38141069039). Non-finite channels fall back to
130
+ * the default warm tint.
131
+ */
132
+ export function godRayColor(color) {
133
+ const fallback = [1, 0.96, 0.9];
134
+ let rgb;
135
+ if (Array.isArray(color))
136
+ rgb = color;
137
+ else if (color && typeof color === "object") {
138
+ const o = color;
139
+ rgb = [o.r, o.g, o.b];
140
+ }
141
+ if (!rgb)
142
+ return fallback;
143
+ return [0, 1, 2].map((i) => (typeof rgb[i] === "number" && Number.isFinite(rgb[i]) ? rgb[i] : fallback[i]));
144
+ }
145
+ /**
146
+ * Inserts `#define` lines after the `#version` directive. GLSL ES 3.00
147
+ * requires `#version 300 es` to be the first line, so prepending defines (as
148
+ * the DoF ring count and motion-blur tile size did) made the shader a
149
+ * GLSL ES 1.00 source and the compile failed ("#version must occur first"),
150
+ * which aborted the whole v2 frame (black output on the GPU lane,
151
+ * post-quality 38138763970).
152
+ */
153
+ export function withDefines(source, defines) {
154
+ const lines = Object.entries(defines).map(([name, value]) => `#define ${name} ${value}`).join("\n");
155
+ const match = /^\s*#version[^\n]*\n/.exec(source);
156
+ return match ? `${match[0]}${lines}\n${source.slice(match[0].length)}` : `${lines}\n${source}`;
157
+ }
158
+ function program(state, gl, key, fragment) {
159
+ const cached = state.programs.get(key);
160
+ if (cached)
161
+ return cached;
162
+ const compile = (type, source) => {
163
+ const shader = gl.createShader(type);
164
+ gl.shaderSource(shader, source);
165
+ gl.compileShader(shader);
166
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
167
+ const log = gl.getShaderInfoLog(shader);
168
+ gl.deleteShader(shader);
169
+ throw new RenderDeviceError(`v2 post shader compile failed: ${log}`, "POST_GRAPH_V2_UNSUPPORTED", { key });
170
+ }
171
+ return shader;
172
+ };
173
+ const vs = compile(gl.VERTEX_SHADER, VERTEX);
174
+ const fs = compile(gl.FRAGMENT_SHADER, fragment);
175
+ const prog = gl.createProgram();
176
+ gl.attachShader(prog, vs);
177
+ gl.attachShader(prog, fs);
178
+ gl.deleteShader(vs);
179
+ gl.deleteShader(fs);
180
+ gl.linkProgram(prog);
181
+ if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) {
182
+ const log = gl.getProgramInfoLog(prog);
183
+ gl.deleteProgram(prog);
184
+ throw new RenderDeviceError(`v2 post program link failed: ${log}`, "POST_GRAPH_V2_UNSUPPORTED", { key });
185
+ }
186
+ state.programs.set(key, prog);
187
+ return prog;
188
+ }
189
+ /**
190
+ * Raster state for a fullscreen v2 stage. The legacy present resets the same
191
+ * set (LegacyPost `prepareFullscreenPresentation`); the v2 draws reset only
192
+ * depth and blend, so a colour mask, scissor, stencil or cull state left by
193
+ * the scene draws could leave a stage's output empty — every frame with an
194
+ * active HDR stage read black on the GPU lane (post-quality 38127246424). The
195
+ * stage drivers invalidate host.stateCache afterwards (T0-16).
196
+ */
197
+ function resetFullscreenState(gl) {
198
+ gl.colorMask(true, true, true, true);
199
+ gl.disable(gl.SCISSOR_TEST);
200
+ gl.disable(gl.STENCIL_TEST);
201
+ gl.disable(gl.CULL_FACE);
202
+ gl.disable(gl.POLYGON_OFFSET_FILL);
203
+ gl.disable(gl.DEPTH_TEST);
204
+ gl.disable(gl.BLEND);
205
+ gl.depthMask(false);
206
+ }
207
+ function draw(host, state, prog, target, textures, uniforms) {
208
+ const gl = host.gl;
209
+ gl.bindFramebuffer(gl.FRAMEBUFFER, target.framebuffer);
210
+ gl.viewport(0, 0, target.width, target.height);
211
+ gl.useProgram(prog);
212
+ gl.bindVertexArray(state.vao);
213
+ resetFullscreenState(gl);
214
+ gl.disable(gl.DEPTH_TEST);
215
+ gl.disable(gl.BLEND);
216
+ for (let i = 0; i < textures.length; i++) {
217
+ gl.activeTexture(gl.TEXTURE0 + i);
218
+ gl.bindTexture(gl.TEXTURE_2D, textures[i]);
219
+ gl.bindSampler(i, null);
220
+ }
221
+ uniforms(gl);
222
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
223
+ for (let i = 0; i < textures.length; i++) {
224
+ gl.activeTexture(gl.TEXTURE0 + i);
225
+ gl.bindTexture(gl.TEXTURE_2D, null);
226
+ }
227
+ gl.bindVertexArray(null);
228
+ }
229
+ /** §6.3 multi-bounce ρ and AO metadata shared by the apply draw. */
230
+ const AO_RHO = 0.5;
231
+ /* ------------------------------------------------------------------------ */
232
+ /* Phase 6 — C-13 custom passes, S8 auto-exposure, S11 SMAA */
233
+ /* ------------------------------------------------------------------------ */
234
+ /**
235
+ * §6.12: a custom pass's `fragment.glsl` is appended after the engine
236
+ * prelude (version, precision, the `v_uv` input, `outColor`, and the
237
+ * built-in uniforms `u_color`, `u_depthLinear`, `u_velocity`, `u_texelSize`,
238
+ * `u_time`). The pass declares only its own uniforms + a `main()`; it must
239
+ * NOT redeclare the built-ins, `#version`, or `precision`.
240
+ */
241
+ export function customPassFragmentSource(glsl) {
242
+ return `#version 300 es
243
+ precision highp float;
244
+ uniform sampler2D u_color;
245
+ uniform sampler2D u_depthLinear;
246
+ uniform sampler2D u_velocity;
247
+ uniform vec2 u_texelSize;
248
+ uniform float u_time;
249
+ in vec2 v_uv;
250
+ out vec4 outColor;
251
+ ` + glsl;
252
+ }
253
+ /**
254
+ * Passes visible to the graph: the pipeline bag's `customPasses` first, then
255
+ * the C-13 registry (`app.addPostPass` registers there), deduped by id (an
256
+ * engine may stamp the same descriptor into both). Order = insertion order at
257
+ * each anchor.
258
+ *
259
+ * The registry already rejects a misplaced space at `registerPostPass`. A
260
+ * bag-supplied pass bypasses that, so it is validated here: a `display` pass
261
+ * at an HDR anchor (or `linear-hdr` after tonemap) is dropped and recorded as
262
+ * `POSTPROCESS_SPACE_INVALID:<id>` (T0-17: no per-frame throw; plan-time
263
+ * `planPostGraph`/`PostGraph.execute` still throw).
264
+ */
265
+ export function mergedCustomPasses(pipeline) {
266
+ const seen = new Set();
267
+ const out = [];
268
+ for (const pass of [...(pipeline.customPasses ?? []), ...registeredPostPasses()]) {
269
+ if (seen.has(pass.id))
270
+ continue;
271
+ seen.add(pass.id);
272
+ try {
273
+ validatePostPassSpace(pass);
274
+ }
275
+ catch {
276
+ recordPostSkipped(`POSTPROCESS_SPACE_INVALID:${pass.id}`);
277
+ continue;
278
+ }
279
+ out.push(pass);
280
+ }
281
+ return out;
282
+ }
283
+ /** Minimal frame context for descriptor `enabled`/`uniforms` callbacks. */
284
+ function customPassFrameContext(state, host, width, height, camera, bag) {
285
+ return {
286
+ device: host.device,
287
+ width,
288
+ height,
289
+ frameIndex: state.frameIndex,
290
+ timeSeconds: state.timeSeconds,
291
+ camera: camera ?? null,
292
+ source: bag?.source ?? {},
293
+ items: bag?.items ?? [],
294
+ tier: QUALITY_TIERS.high,
295
+ flags: rendererQrFlags(),
296
+ sceneDepth: bag?.sceneDepth ?? {
297
+ texture: null,
298
+ available: false,
299
+ linearize: { near: camera?.near ?? 0.1, far: camera?.far ?? 1000, orthographic: camera?.projection === "orthographic" }
300
+ },
301
+ blackboard: state.postBlackboard
302
+ };
303
+ }
304
+ /**
305
+ * Runs one C-13 pass over `input` into a pooled target of the pass's space
306
+ * format. `linZ`/`velocity` bind for `inputs` that declare them (the 1×1
307
+ * blank stands in when a surface wasn't produced this frame).
308
+ */
309
+ function runCustomPass(host, state, pass, input, aux, camera, bag) {
310
+ const gl = host.gl;
311
+ const frame = customPassFrameContext(state, host, input.width, input.height, camera, bag);
312
+ if (pass.enabled && !pass.enabled(frame))
313
+ return input;
314
+ recordPostStage(`custom:${pass.id}@${pass.insertAt}`);
315
+ const wantsDepth = pass.inputs.includes("depth");
316
+ const wantsVelocity = pass.inputs.includes("velocity");
317
+ const target = state.pool.acquire({
318
+ width: input.width,
319
+ height: input.height,
320
+ format: pass.space === "display" ? "rgba8" : "rgba16f",
321
+ samples: 1,
322
+ depth: false
323
+ });
324
+ const prog = program(state, gl, `custom:${pass.id}`, customPassFragmentSource(pass.fragment.glsl));
325
+ const textures = [
326
+ asGlTarget(input).colorHandle,
327
+ wantsDepth && aux.linZ ? asGlTarget(aux.linZ).colorHandle : state.blankTex,
328
+ wantsVelocity && aux.velocity ? asGlTarget(aux.velocity).colorHandle : state.blankTex
329
+ ];
330
+ draw(host, state, prog, asGlTarget(target), textures, (g) => {
331
+ g.uniform1i(g.getUniformLocation(prog, "u_color"), 0);
332
+ g.uniform1i(g.getUniformLocation(prog, "u_depthLinear"), 1);
333
+ g.uniform1i(g.getUniformLocation(prog, "u_velocity"), 2);
334
+ g.uniform2f(g.getUniformLocation(prog, "u_texelSize"), 1 / input.width, 1 / input.height);
335
+ g.uniform1f(g.getUniformLocation(prog, "u_time"), state.timeSeconds);
336
+ const declared = pass.uniforms?.(frame);
337
+ if (declared) {
338
+ for (const [name, value] of Object.entries(declared)) {
339
+ const loc = g.getUniformLocation(prog, name);
340
+ if (!loc)
341
+ continue;
342
+ const arr = Array.isArray(value) ? value : null;
343
+ if (arr) {
344
+ if (arr.length === 2)
345
+ g.uniform2f(loc, arr[0], arr[1]);
346
+ else if (arr.length === 3)
347
+ g.uniform3f(loc, arr[0], arr[1], arr[2]);
348
+ else if (arr.length >= 4)
349
+ g.uniform4f(loc, arr[0], arr[1], arr[2], arr[3]);
350
+ else
351
+ g.uniform1f(loc, arr[0] ?? 0);
352
+ }
353
+ else {
354
+ g.uniform1f(loc, value);
355
+ }
356
+ }
357
+ }
358
+ });
359
+ return target;
360
+ }
361
+ /**
362
+ * Kicks the lazy `post/smaa/` chunk + PNG decode once. Until the upload
363
+ * lands, `state.smaa.area/search` stay null and the S11 block skips — the
364
+ * same first-frames window three's async `Image` load has. Returns true once
365
+ * both GL textures exist.
366
+ */
367
+ let smaaTexturesLoad = null;
368
+ /**
369
+ * 03-S18a: settles once the in-flight SMAA area/search texture load (if any)
370
+ * finished, so a probe can wait for S11 to be active instead of guessing a
371
+ * frame count. Resolves immediately when no load was started.
372
+ */
373
+ export function smaaTexturesSettled() {
374
+ return smaaTexturesLoad ?? Promise.resolve();
375
+ }
376
+ function smaaTexturesReady(host, state) {
377
+ const gl = host.gl;
378
+ if (state.smaa.area && state.smaa.search)
379
+ return true;
380
+ if (!state.smaa.requested) {
381
+ state.smaa.requested = true;
382
+ smaaTexturesLoad = import("./smaa/textures.js").then(async (mod) => {
383
+ try {
384
+ const decode = async (dataUrl) => {
385
+ const blob = await (await fetch(dataUrl)).blob();
386
+ return createImageBitmap(blob, { imageOrientation: "none" });
387
+ };
388
+ const [area, search] = await Promise.all([decode(mod.SMAA_AREATEX_PNG), decode(mod.SMAA_SEARCHTEX_PNG)]);
389
+ const upload = (bitmap, filter) => {
390
+ const tex = gl.createTexture();
391
+ if (!tex)
392
+ return null;
393
+ gl.bindTexture(gl.TEXTURE_2D, tex);
394
+ // three uploads these with flipY/premultiply off; the engine may
395
+ // have left either unpack flag set by an earlier upload.
396
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
397
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
398
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, bitmap);
399
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filter);
400
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filter);
401
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
402
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
403
+ gl.bindTexture(gl.TEXTURE_2D, null);
404
+ return tex;
405
+ };
406
+ // three: AreaTex linear, SearchTex nearest, no mipmaps, no flipY.
407
+ state.smaa.area = upload(area, gl.LINEAR);
408
+ state.smaa.search = upload(search, gl.NEAREST);
409
+ // T0-16: the raw binds above bypass host.stateCache.
410
+ host.stateCache.invalidate();
411
+ }
412
+ catch {
413
+ // Decode/upload failed — leave requested so we don't retry-loop;
414
+ // S11 stays skipped (post.skipped shows SMAA only via the plan).
415
+ state.smaa.requested = true;
416
+ }
417
+ }).catch(() => {
418
+ // The lazy chunk itself failed to load: S11 stays skipped.
419
+ });
420
+ }
421
+ return false;
422
+ }
423
+ /**
424
+ * Runs S1 → S2 → S4 → CA on the HDR frame. Returns the (possibly pooled)
425
+ * HDR target the fused present should consume. When no HDR stage is enabled
426
+ * the source passes through untouched.
427
+ */
428
+ export function runV2HdrStages(host, source, pipeline, camera,
429
+ /** PRD-03 Phase 4: the flag-on TemporalHistory bindings (C-14 camera
430
+ * matrices + velocity/history/linZ surfaces). Absent when temporal
431
+ * wasn't requested or the route's geometry is unsupported. */
432
+ temporal,
433
+ /** CCR-03-12 (Phase 6): C-13 custom-pass frame context (source/items/sceneDepth). */
434
+ frameContext) {
435
+ const wantsAo = Boolean(pipeline.ao);
436
+ const wantsGodRays = Boolean(pipeline.godRays);
437
+ const wantsCa = Boolean(pipeline.chromaticAberration && pipeline.chromaticAberration.intensity);
438
+ const wantsTaa = pipeline.antiAliasing === "taa" || Boolean(pipeline.taa);
439
+ const wantsDof = Boolean(pipeline.dof);
440
+ const wantsMb = Boolean(pipeline.motionBlur);
441
+ // Phase 6: S8 auto-exposure + C-13 HDR-domain custom passes at their §6.1
442
+ // insertion anchors (`after-tonemap` runs in the LDR tail instead).
443
+ const autoExposure = pipeline.autoExposure;
444
+ const wantsAutoExposure = autoExposure !== undefined && autoExposure !== false;
445
+ const customs = mergedCustomPasses(pipeline);
446
+ const customsAt = (anchor) => customs.filter((pass) => pass.insertAt === anchor);
447
+ const hdrCustoms = customs.filter((pass) => pass.insertAt !== "after-tonemap");
448
+ // TAA and motion blur silently degrade without temporal surfaces; the
449
+ // engine-side AA resolve already reported the coverage fallback.
450
+ const skipped = [];
451
+ const temporalOk = Boolean(temporal?.v2);
452
+ const taaActive = wantsTaa && temporalOk;
453
+ const mbActive = wantsMb && temporalOk;
454
+ beginPostStageTrace();
455
+ recordPostStage(`enter:taa=${String(wantsTaa)}:mb=${String(wantsMb)}:temporal=${String(temporalOk)}`);
456
+ if (wantsTaa && !temporalOk) {
457
+ skipped.push("TAA_VELOCITY_COVERAGE");
458
+ recordPostSkipped("TAA_VELOCITY_COVERAGE:v2-hdr-stages");
459
+ }
460
+ if (wantsMb && !temporalOk) {
461
+ skipped.push("S7_VELOCITY_UNAVAILABLE");
462
+ recordPostSkipped("S7_VELOCITY_UNAVAILABLE:v2-hdr-stages");
463
+ }
464
+ const needsLinZ = wantsAo || wantsGodRays || wantsDof || taaActive || mbActive
465
+ || hdrCustoms.some((pass) => pass.inputs.includes("depth"));
466
+ const needsVelocity = ((taaActive || mbActive) && temporalOk)
467
+ || (hdrCustoms.some((pass) => pass.inputs.includes("velocity")) && temporalOk);
468
+ if (!wantsAo && !wantsGodRays && !wantsCa && !taaActive && !wantsDof && !mbActive && !wantsAutoExposure && hdrCustoms.length === 0)
469
+ return { target: source, aoPending: false, skipped };
470
+ // T0-15: the forward HDR target is multisampled by default (`sampleCount` 4
471
+ // in `Renderer`), so its `colorHandle`/`depthTextureHandle` only contain
472
+ // resolved content once the driver has blitted the MSAA surface. The
473
+ // legacy presents resolve their source themselves; the v2 stage driver
474
+ // never did and sampled the untouched resolve textures (black HDR). This
475
+ // is a no-op when the source is single-sampled or already resolved.
476
+ host.resolveMultisampleTarget(source);
477
+ const src = asGlTarget(source);
478
+ if ((needsLinZ || needsVelocity) && !src.depthTextureHandle) {
479
+ // T0-17/FLAG-ON-4: no per-frame throw — a depth-less HDR source degrades
480
+ // the depth-gated stages to a recorded skip and the frame continues
481
+ // (the present still runs on the untouched source).
482
+ recordPostSkipped("WEBGL_LDR_POSTPROCESS_DEPTH_REQUIRED:v2-hdr-stages");
483
+ return { target: source, aoPending: false, skipped: [...skipped, "V2_DEPTH_UNAVAILABLE"] };
484
+ }
485
+ if ((wantsAo || wantsGodRays || needsVelocity) && !camera) {
486
+ recordPostSkipped("POST_GRAPH_V2_CAMERA_REQUIRED:v2-hdr-stages");
487
+ return { target: source, aoPending: false, skipped: [...skipped, "V2_CAMERA_UNAVAILABLE"] };
488
+ }
489
+ const gl = host.gl;
490
+ const state = v2State(host);
491
+ const w = source.width, h = source.height;
492
+ const hw = Math.max(1, w >> 1), hh = Math.max(1, h >> 1);
493
+ const near = camera?.near ?? pipeline.depthRange?.near ?? 0.1;
494
+ const far = camera?.far ?? pipeline.depthRange?.far ?? 1000;
495
+ const ortho = camera?.projection === "orthographic" || pipeline.depthRange?.projection === "orthographic";
496
+ // ── S1-A: linearized depth (RGBA32F .r = viewZ) ──────────────────────────
497
+ let linZFull = null;
498
+ let minmaxHalf = null;
499
+ let linZOwnedByPool = false;
500
+ if (needsLinZ) {
501
+ // Temporal frames write this frame's linear Z into the history ping-pong's
502
+ // `linZOutput` slot so commit() promotes it for next frame's disocclusion.
503
+ linZFull = temporal?.v2?.linZOutput
504
+ ?? state.pool.acquire({ width: w, height: h, format: "rgba32f", samples: 1, depth: false });
505
+ linZOwnedByPool = !temporal?.v2;
506
+ const linProg = program(state, gl, "depth-linearize", DEPTH_LINEARIZE_GLSL);
507
+ draw(host, state, linProg, asGlTarget(linZFull), [src.depthTextureHandle], (g) => {
508
+ g.uniform1i(g.getUniformLocation(linProg, "u_depth"), 0);
509
+ g.uniform1f(g.getUniformLocation(linProg, "u_near"), near);
510
+ g.uniform1f(g.getUniformLocation(linProg, "u_far"), far);
511
+ g.uniform1i(g.getUniformLocation(linProg, "u_ortho"), ortho ? 1 : 0);
512
+ });
513
+ minmaxHalf = state.pool.acquire({ width: hw, height: hh, format: "rgba32f", samples: 1, depth: false });
514
+ const mmProg = program(state, gl, "depth-minmax", DEPTH_MINMAX_HALF_GLSL);
515
+ draw(host, state, mmProg, asGlTarget(minmaxHalf), [asGlTarget(linZFull).colorHandle], (g) => {
516
+ g.uniform1i(g.getUniformLocation(mmProg, "u_linearDepth"), 0);
517
+ });
518
+ }
519
+ // ── S1-C: camera velocity (RG16F in .rg of rgba16f) — depth reprojection
520
+ // through prevVP·invUnjitteredVP. Per-object velocity lands with Q-01-2;
521
+ // this is the camera-only fallback the PRD ships first.
522
+ let dilatedVelocity = null;
523
+ if (needsVelocity && temporal?.v2) {
524
+ const camVelProg = program(state, gl, "camera-velocity", CAMERA_VELOCITY_GLSL);
525
+ // The reprojection prevVP · inv(unjitteredVP) is folded in float64 here
526
+ // and handed to the shader as `u_prevViewProjection` with an identity
527
+ // `u_invUnjitteredViewProjection` (projectively the same transform). Two
528
+ // float32 matrix products on the GPU left a static camera with a
529
+ // ~0.03 px residual velocity; TAA re-sampled history by it every frame,
530
+ // so with 0.97 feedback a 1-px line drifted ~1 px and smeared over five
531
+ // rows (prd03-taa, promote run 38201709795). Folded, a static camera is
532
+ // the identity to ~1e-12 and reprojects in place.
533
+ const invUnjittered = invertMat4(Array.from(temporal.v2.unjittered));
534
+ const reprojection = Float32Array.from(multiplyMat4(Array.from(temporal.v2.previous), invUnjittered));
535
+ {
536
+ // C-31 stage trace: how far the camera reprojection is from identity
537
+ // (static camera → 0) and this frame's sub-pixel jitter.
538
+ let dev = 0;
539
+ for (let i = 0; i < 16; i += 1)
540
+ dev = Math.max(dev, Math.abs(reprojection[i] - IDENTITY_MAT4_F32[i]));
541
+ const jx = temporal.v2.jitterClip[0] * w / 2, jy = temporal.v2.jitterClip[1] * h / 2;
542
+ recordPostStage(`S1C:reproj-dev=${dev.toExponential(2)}:jitter-px=${jx.toFixed(3)},${jy.toFixed(3)}`);
543
+ }
544
+ draw(host, state, camVelProg, asGlTarget(temporal.velocity), [src.depthTextureHandle], (g) => {
545
+ g.uniform1i(g.getUniformLocation(camVelProg, "u_depth"), 0);
546
+ g.uniform1f(g.getUniformLocation(camVelProg, "u_near"), near);
547
+ g.uniform1f(g.getUniformLocation(camVelProg, "u_far"), far);
548
+ g.uniform1i(g.getUniformLocation(camVelProg, "u_ortho"), ortho ? 1 : 0);
549
+ g.uniformMatrix4fv(g.getUniformLocation(camVelProg, "u_prevViewProjection"), false, reprojection);
550
+ g.uniformMatrix4fv(g.getUniformLocation(camVelProg, "u_invUnjitteredViewProjection"), false, IDENTITY_MAT4_F32);
551
+ });
552
+ // §8.6: closest-depth 3×3 velocity for the silhouette-correct reprojection.
553
+ dilatedVelocity = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
554
+ const dilateProg = program(state, gl, "velocity-dilate", VELOCITY_DILATE_GLSL);
555
+ draw(host, state, dilateProg, asGlTarget(dilatedVelocity), [asGlTarget(temporal.velocity).colorHandle, asGlTarget(linZFull).colorHandle], (g) => {
556
+ g.uniform1i(g.getUniformLocation(dilateProg, "u_velocity"), 0);
557
+ g.uniform1i(g.getUniformLocation(dilateProg, "u_linearDepth"), 1);
558
+ });
559
+ }
560
+ let hdr = source;
561
+ // ── §6.1 insertion "after-depth": custom HDR passes reading linZ ──────────
562
+ for (const pass of customsAt("after-depth")) {
563
+ const out = runCustomPass(host, state, pass, hdr, { linZ: linZFull, velocity: dilatedVelocity }, camera, frameContext);
564
+ if (out !== hdr) {
565
+ if (hdr !== source)
566
+ state.pool.release(hdr);
567
+ hdr = out;
568
+ }
569
+ }
570
+ // ── S2: GTAO → denoise ×2 → joint-bilateral apply onto HDR ───────────────
571
+ if (wantsAo && camera && linZFull && minmaxHalf) {
572
+ const ao = pipeline.ao;
573
+ const directions = ao.directions ?? 4;
574
+ const steps = ao.steps ?? 4;
575
+ const aoRaw = state.pool.acquire({ width: hw, height: hh, format: "rgba8", samples: 1, depth: false });
576
+ const gtaoSrc = withDefines(GTAO_GLSL, { AURA_GTAO_DIRECTIONS: directions, AURA_GTAO_STEPS: steps });
577
+ const gtaoProg = program(state, gl, `gtao-${directions}x${steps}`, gtaoSrc);
578
+ const invProj = Float32Array.from(invertMat4(camera.projectionMatrix));
579
+ draw(host, state, gtaoProg, asGlTarget(aoRaw), [asGlTarget(minmaxHalf).colorHandle], (g) => {
580
+ g.uniform1i(g.getUniformLocation(gtaoProg, "u_linearDepthHalf"), 0);
581
+ g.uniformMatrix4fv(g.getUniformLocation(gtaoProg, "u_projMatrix"), false, camera.projectionMatrix);
582
+ g.uniformMatrix4fv(g.getUniformLocation(gtaoProg, "u_invProjMatrix"), false, invProj);
583
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_near"), near);
584
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_far"), far);
585
+ g.uniform1i(g.getUniformLocation(gtaoProg, "u_ortho"), ortho ? 1 : 0);
586
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_radius"), ao.radius ?? 0.35);
587
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_intensity"), ao.intensity ?? 1);
588
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_falloff"), ao.falloff ?? 1);
589
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_distanceExponent"), 1);
590
+ g.uniform1f(g.getUniformLocation(gtaoProg, "u_thickness"), 1);
591
+ g.uniform1i(g.getUniformLocation(gtaoProg, "u_frameIndex"), state.frameIndex);
592
+ });
593
+ // Bilateral denoise: H then V (5-tap, exp depth weight).
594
+ const denoiseProg = program(state, gl, "gtao-denoise", GTAO_DENOISE_GLSL);
595
+ const aoHalf = state.pool.acquire({ width: hw, height: hh, format: "rgba8", samples: 1, depth: false });
596
+ const texel = [1 / hw, 1 / hh];
597
+ draw(host, state, denoiseProg, asGlTarget(aoHalf), [asGlTarget(aoRaw).colorHandle, asGlTarget(minmaxHalf).colorHandle], (g) => {
598
+ g.uniform1i(g.getUniformLocation(denoiseProg, "u_ao"), 0);
599
+ g.uniform1i(g.getUniformLocation(denoiseProg, "u_depthHalf"), 1);
600
+ g.uniform2f(g.getUniformLocation(denoiseProg, "u_dir"), texel[0], 0);
601
+ });
602
+ draw(host, state, denoiseProg, asGlTarget(aoRaw), [asGlTarget(aoHalf).colorHandle, asGlTarget(minmaxHalf).colorHandle], (g) => {
603
+ g.uniform1i(g.getUniformLocation(denoiseProg, "u_ao"), 0);
604
+ g.uniform1i(g.getUniformLocation(denoiseProg, "u_depthHalf"), 1);
605
+ g.uniform2f(g.getUniformLocation(denoiseProg, "u_dir"), 0, texel[1]);
606
+ });
607
+ // Apply: joint-bilateral upsample + §6.3 multi-bounce onto a pooled HDR.
608
+ const applied = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
609
+ const applyProg = program(state, gl, "gtao-apply", GTAO_APPLY_GLSL);
610
+ draw(host, state, applyProg, asGlTarget(applied), [
611
+ asGlTarget(hdr).colorHandle,
612
+ asGlTarget(aoRaw).colorHandle,
613
+ asGlTarget(linZFull).colorHandle,
614
+ asGlTarget(minmaxHalf).colorHandle
615
+ ], (g) => {
616
+ g.uniform1i(g.getUniformLocation(applyProg, "u_hdr"), 0);
617
+ g.uniform1i(g.getUniformLocation(applyProg, "u_ao"), 1);
618
+ g.uniform1i(g.getUniformLocation(applyProg, "u_depthFull"), 2);
619
+ g.uniform1i(g.getUniformLocation(applyProg, "u_depthHalf"), 3);
620
+ g.uniform1f(g.getUniformLocation(applyProg, "u_far"), far);
621
+ g.uniform1f(g.getUniformLocation(applyProg, "u_aoFallbackStrength"), aoFallbackStrength(ao.fallbackStrength));
622
+ g.uniform1i(g.getUniformLocation(applyProg, "u_aoMultiBounce"), ao.multiBounce === false ? 0 : 1);
623
+ });
624
+ hdr = applied;
625
+ state.pool.release(aoRaw);
626
+ state.pool.release(aoHalf);
627
+ void AO_RHO;
628
+ }
629
+ // ── S4: god rays, half-res radial march → additive onto HDR ─────────────
630
+ if (wantsGodRays && camera && minmaxHalf) {
631
+ const god = pipeline.godRays;
632
+ const samples = god.samples ?? 32;
633
+ const godTarget = state.pool.acquire({ width: hw, height: hh, format: "rgba16f", samples: 1, depth: false });
634
+ // Light point: authored lightWorld, else a point far along the direction
635
+ // toward the strongest directional light (bridge supplies lightDirection).
636
+ let lightWorld = god.lightWorld;
637
+ if (!lightWorld && god.lightDirection) {
638
+ const d = god.lightDirection;
639
+ const p = camera.position;
640
+ lightWorld = [p[0] + d[0] * far * 2, p[1] + d[1] * far * 2, p[2] + d[2] * far * 2];
641
+ }
642
+ if (!lightWorld)
643
+ lightWorld = [camera.position[0], camera.position[1] + far, camera.position[2]];
644
+ const vp = camera.viewProjectionMatrix;
645
+ const clip = [
646
+ vp[0] * lightWorld[0] + vp[4] * lightWorld[1] + vp[8] * lightWorld[2] + vp[12],
647
+ vp[1] * lightWorld[0] + vp[5] * lightWorld[1] + vp[9] * lightWorld[2] + vp[13],
648
+ vp[3] * lightWorld[0] + vp[7] * lightWorld[1] + vp[11] * lightWorld[2] + vp[15]
649
+ ];
650
+ const lightUv = clip[2] !== 0
651
+ ? [(clip[0] / clip[2]) * 0.5 + 0.5, (clip[1] / clip[2]) * 0.5 + 0.5]
652
+ : [0.5, 0.5];
653
+ const godSrc = withDefines(GODRAYS_GLSL, { AURA_GODRAY_SAMPLES: samples });
654
+ const godProg = program(state, gl, `godrays-${samples}`, godSrc);
655
+ draw(host, state, godProg, asGlTarget(godTarget), [asGlTarget(hdr).colorHandle, asGlTarget(minmaxHalf).colorHandle], (g) => {
656
+ g.uniform1i(g.getUniformLocation(godProg, "u_hdr"), 0);
657
+ g.uniform1i(g.getUniformLocation(godProg, "u_depthHalf"), 1);
658
+ g.uniform1f(g.getUniformLocation(godProg, "u_far"), far);
659
+ g.uniform2f(g.getUniformLocation(godProg, "u_lightUv"), lightUv[0], lightUv[1]);
660
+ g.uniform1f(g.getUniformLocation(godProg, "u_lightClipW"), clip[2]);
661
+ const c = godRayColor(god.color);
662
+ g.uniform3f(g.getUniformLocation(godProg, "u_color"), c[0], c[1], c[2]);
663
+ g.uniform1f(g.getUniformLocation(godProg, "u_intensity"), god.intensity ?? 0.7);
664
+ g.uniform1f(g.getUniformLocation(godProg, "u_decay"), god.decay ?? 0.94);
665
+ g.uniform1f(g.getUniformLocation(godProg, "u_weight"), god.weight ?? god.intensity ?? 0.7);
666
+ g.uniform1f(g.getUniformLocation(godProg, "u_diskOuter"), 0.08);
667
+ g.uniform1f(g.getUniformLocation(godProg, "u_diskInner"), 0.02);
668
+ });
669
+ // Additive blend onto the working HDR target.
670
+ const blended = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
671
+ const copyProg = program(state, gl, "v2-add", V2_ADD_GLSL);
672
+ const blendTarget = asGlTarget(blended);
673
+ gl.bindFramebuffer(gl.FRAMEBUFFER, blendTarget.framebuffer);
674
+ gl.viewport(0, 0, w, h);
675
+ gl.useProgram(copyProg);
676
+ gl.bindVertexArray(state.vao);
677
+ resetFullscreenState(gl);
678
+ gl.disable(gl.DEPTH_TEST);
679
+ gl.disable(gl.BLEND);
680
+ gl.activeTexture(gl.TEXTURE0);
681
+ gl.bindTexture(gl.TEXTURE_2D, asGlTarget(hdr).colorHandle);
682
+ gl.uniform1i(gl.getUniformLocation(copyProg, "u_source"), 0);
683
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
684
+ gl.enable(gl.BLEND);
685
+ gl.blendFunc(gl.ONE, gl.ONE);
686
+ gl.activeTexture(gl.TEXTURE0);
687
+ gl.bindTexture(gl.TEXTURE_2D, asGlTarget(godTarget).colorHandle);
688
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
689
+ gl.disable(gl.BLEND);
690
+ gl.bindTexture(gl.TEXTURE_2D, null);
691
+ gl.bindVertexArray(null);
692
+ if (hdr !== source)
693
+ state.pool.release(hdr);
694
+ state.pool.release(godTarget);
695
+ hdr = blended;
696
+ }
697
+ // ── CA: §8.12 radial 3-tap on the working HDR ────────────────────────────
698
+ if (wantsCa) {
699
+ const ca = pipeline.chromaticAberration;
700
+ const caTarget = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
701
+ const caProg = program(state, gl, "ca-pass", CA_PASS_GLSL);
702
+ draw(host, state, caProg, asGlTarget(caTarget), [asGlTarget(hdr).colorHandle], (g) => {
703
+ g.uniform1i(g.getUniformLocation(caProg, "u_hdr"), 0);
704
+ g.uniform1f(g.getUniformLocation(caProg, "u_caIntensity"), ca.intensity ?? 0.0015);
705
+ });
706
+ if (hdr !== source)
707
+ state.pool.release(hdr);
708
+ hdr = caTarget;
709
+ }
710
+ // ── §6.1 insertion "before-taa" ───────────────────────────────────────────
711
+ for (const pass of customsAt("before-taa")) {
712
+ const out = runCustomPass(host, state, pass, hdr, { linZ: linZFull, velocity: dilatedVelocity }, camera, frameContext);
713
+ if (out !== hdr) {
714
+ if (hdr !== source)
715
+ state.pool.release(hdr);
716
+ hdr = out;
717
+ }
718
+ }
719
+ // ── S5: §8.6 TAA resolve into the history ping-pong ──────────────────────
720
+ if (taaActive)
721
+ recordPostStage(temporal?.v2 && dilatedVelocity
722
+ ? `S5:${temporal.historyValid ? "history" : "seed"}:frames=${temporal.historyFrames}`
723
+ : `S5:skip:velocity=${String(Boolean(dilatedVelocity))}`);
724
+ if (taaActive && temporal?.v2 && dilatedVelocity) {
725
+ const taa = (pipeline.taa ?? {});
726
+ const taaProg = program(state, gl, "taa-resolve", TAA_RESOLVE_GLSL);
727
+ const resolved = temporal.historyOutput;
728
+ markTaaHistoryWritten();
729
+ draw(host, state, taaProg, asGlTarget(resolved), [
730
+ asGlTarget(hdr).colorHandle,
731
+ asGlTarget(temporal.history).colorHandle,
732
+ asGlTarget(dilatedVelocity).colorHandle,
733
+ asGlTarget(temporal.v2.linZ).colorHandle,
734
+ state.blankTex
735
+ ], (g) => {
736
+ g.uniform1i(g.getUniformLocation(taaProg, "u_current"), 0);
737
+ g.uniform1i(g.getUniformLocation(taaProg, "u_history"), 1);
738
+ g.uniform1i(g.getUniformLocation(taaProg, "u_velocityDilate"), 2);
739
+ g.uniform1i(g.getUniformLocation(taaProg, "u_linZPrev"), 3);
740
+ g.uniform1i(g.getUniformLocation(taaProg, "u_reactive"), 4);
741
+ g.uniform1i(g.getUniformLocation(taaProg, "u_hasReactive"), 0);
742
+ g.uniform1i(g.getUniformLocation(taaProg, "u_hasHistory"), temporal.historyValid ? 1 : 0);
743
+ g.uniform1f(g.getUniformLocation(taaProg, "u_feedbackMin"), taa.feedbackMin ?? 0.88);
744
+ g.uniform1f(g.getUniformLocation(taaProg, "u_feedbackMax"), taa.feedbackMax ?? 0.97);
745
+ g.uniform1f(g.getUniformLocation(taaProg, "u_varianceGamma"), taa.varianceGamma ?? 1.0);
746
+ });
747
+ if (hdr !== source)
748
+ state.pool.release(hdr);
749
+ // §8.6 TAAU: renderScale < 1 reconstructs at display resolution with the
750
+ // 9-tap Blackman-Harris kernel. History stays render-res (self-consistent
751
+ // reprojection); only the presented output upsamples.
752
+ const renderScale = pipeline.renderScale ?? 1;
753
+ if (renderScale < 1) {
754
+ const outW = Math.max(1, Math.round(w / renderScale));
755
+ const outH = Math.max(1, Math.round(h / renderScale));
756
+ const display = state.pool.acquire({ width: outW, height: outH, format: "rgba16f", samples: 1, depth: false });
757
+ const upProg = program(state, gl, "taa-upscale", TAA_UPSCALE_GLSL);
758
+ draw(host, state, upProg, asGlTarget(display), [asGlTarget(resolved).colorHandle], (g) => {
759
+ g.uniform1i(g.getUniformLocation(upProg, "u_resolved"), 0);
760
+ g.uniform2f(g.getUniformLocation(upProg, "u_renderSize"), w, h);
761
+ g.uniform2f(g.getUniformLocation(upProg, "u_outputSize"), outW, outH);
762
+ });
763
+ hdr = display;
764
+ // Note: downstream stages (S6/S7) then run at display res; linZ/velocity
765
+ // stays render-res — sampling is texelFetch-indexed so the sizes differ
766
+ // intentionally and DOF/MB reads scale via textureSize().
767
+ }
768
+ else {
769
+ hdr = resolved;
770
+ }
771
+ }
772
+ // ── §6.1 insertion "after-taa" (stable HDR) ───────────────────────────────
773
+ for (const pass of customsAt("after-taa")) {
774
+ const out = runCustomPass(host, state, pass, hdr, { linZ: linZFull, velocity: dilatedVelocity }, camera, frameContext);
775
+ if (out !== hdr) {
776
+ if (hdr !== source)
777
+ state.pool.release(hdr);
778
+ hdr = out;
779
+ }
780
+ }
781
+ // ── S6: §8.7 depth of field ───────────────────────────────────────────────
782
+ if (wantsDof && linZFull) {
783
+ const dof = (pipeline.dof ?? {});
784
+ const maxBlur = dof.maxBlurPx ?? 16;
785
+ const rings = 3; // High preset; tier table routes Medium → 2 via §6.5
786
+ const dw = Math.max(1, Math.round(w / 2)), dh = Math.max(1, Math.round(h / 2));
787
+ const prefilter = state.pool.acquire({ width: dw, height: dh, format: "rgba16f", samples: 1, depth: false });
788
+ const prefilterProg = program(state, gl, "dof-prefilter", DOF_PREFILTER_GLSL);
789
+ draw(host, state, prefilterProg, asGlTarget(prefilter), [asGlTarget(hdr).colorHandle, asGlTarget(linZFull).colorHandle], (g) => {
790
+ g.uniform1i(g.getUniformLocation(prefilterProg, "u_color"), 0);
791
+ g.uniform1i(g.getUniformLocation(prefilterProg, "u_linearDepth"), 1);
792
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_focusDistance"), dof.focusDistance ?? 3);
793
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_focalLengthMm"), dof.focalLengthMm ?? 50);
794
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_fStop"), dof.fStop ?? 2.8);
795
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_sensorHeightMm"), dof.sensorHeightMm ?? 24);
796
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_frameHeightPx"), h);
797
+ g.uniform1f(g.getUniformLocation(prefilterProg, "u_maxBlurPx"), maxBlur);
798
+ });
799
+ const tileW = Math.max(1, Math.ceil(dw / 8)), tileH = Math.max(1, Math.ceil(dh / 8));
800
+ const nearTile = state.pool.acquire({ width: tileW, height: tileH, format: "rgba16f", samples: 1, depth: false });
801
+ const tileProg = program(state, gl, "dof-near-tile", DOF_NEAR_TILE_GLSL);
802
+ draw(host, state, tileProg, asGlTarget(nearTile), [asGlTarget(prefilter).colorHandle], (g) => {
803
+ g.uniform1i(g.getUniformLocation(tileProg, "u_prefilter"), 0);
804
+ });
805
+ const gather = state.pool.acquire({ width: dw, height: dh, format: "rgba16f", samples: 1, depth: false });
806
+ const gatherSrc = withDefines(DOF_GATHER_GLSL, { DOF_RINGS: rings });
807
+ const gatherProg = program(state, gl, `dof-gather-${rings}`, gatherSrc);
808
+ draw(host, state, gatherProg, asGlTarget(gather), [asGlTarget(prefilter).colorHandle, asGlTarget(nearTile).colorHandle], (g) => {
809
+ g.uniform1i(g.getUniformLocation(gatherProg, "u_prefilter"), 0);
810
+ g.uniform1i(g.getUniformLocation(gatherProg, "u_nearTile"), 1);
811
+ g.uniform1f(g.getUniformLocation(gatherProg, "u_maxBlurPx"), maxBlur);
812
+ });
813
+ const comp = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
814
+ const compProg = program(state, gl, "dof-composite", DOF_COMPOSITE_GLSL);
815
+ draw(host, state, compProg, asGlTarget(comp), [asGlTarget(hdr).colorHandle, asGlTarget(gather).colorHandle], (g) => {
816
+ g.uniform1i(g.getUniformLocation(compProg, "u_color"), 0);
817
+ g.uniform1i(g.getUniformLocation(compProg, "u_blurred"), 1);
818
+ });
819
+ state.pool.release(prefilter);
820
+ state.pool.release(nearTile);
821
+ state.pool.release(gather);
822
+ if (hdr !== source)
823
+ state.pool.release(hdr);
824
+ hdr = comp;
825
+ }
826
+ // ── S7: §8.8 motion blur (McGuire tile reconstruction) ────────────────────
827
+ if (mbActive && temporal?.v2 && dilatedVelocity && linZFull) {
828
+ const mb = (pipeline.motionBlur ?? {});
829
+ const tile = mb.tileSize ?? 16;
830
+ const samples = mb.samples ?? 12;
831
+ const tw = Math.max(1, Math.ceil(w / tile)), th = Math.max(1, Math.ceil(h / tile));
832
+ const tileMax = state.pool.acquire({ width: tw, height: th, format: "rgba16f", samples: 1, depth: false });
833
+ const tileProg = program(state, gl, `mb-tile-${tile}`, withDefines(MB_TILE_MAX_GLSL, { MB_TILE_SIZE: tile }));
834
+ draw(host, state, tileProg, asGlTarget(tileMax), [asGlTarget(dilatedVelocity).colorHandle], (g) => {
835
+ g.uniform1i(g.getUniformLocation(tileProg, "u_velocity"), 0);
836
+ });
837
+ const neighbor = state.pool.acquire({ width: tw, height: th, format: "rgba16f", samples: 1, depth: false });
838
+ const neighborProg = program(state, gl, "mb-neighbor", MB_NEIGHBOR_GLSL);
839
+ draw(host, state, neighborProg, asGlTarget(neighbor), [asGlTarget(tileMax).colorHandle], (g) => {
840
+ g.uniform1i(g.getUniformLocation(neighborProg, "u_tileMax"), 0);
841
+ });
842
+ const blurred = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
843
+ const reconProg = program(state, gl, `mb-recon-${samples}-${tile}`, MB_RECONSTRUCT_GLSL);
844
+ // §8.8: shutter · (targetFrameTime / actualFrameTime). The target is the
845
+ // nominal 60 Hz frame; the actual comes from the temporal stamp (C-23
846
+ // timeScale already folded into the authored shutter by the bridge).
847
+ const frameScale = (mb.shutter ?? 0.5) * ((1 / 60) / Math.max(temporal.v2.frameTime, 1e-4));
848
+ draw(host, state, reconProg, asGlTarget(blurred), [asGlTarget(hdr).colorHandle, asGlTarget(dilatedVelocity).colorHandle, asGlTarget(neighbor).colorHandle, asGlTarget(linZFull).colorHandle], (g) => {
849
+ g.uniform1i(g.getUniformLocation(reconProg, "u_color"), 0);
850
+ g.uniform1i(g.getUniformLocation(reconProg, "u_velocity"), 1);
851
+ g.uniform1i(g.getUniformLocation(reconProg, "u_neighbor"), 2);
852
+ g.uniform1i(g.getUniformLocation(reconProg, "u_linearDepth"), 3);
853
+ g.uniform1f(g.getUniformLocation(reconProg, "u_shutter"), frameScale);
854
+ g.uniform1f(g.getUniformLocation(reconProg, "u_maxBlurPx"), mb.maxBlurPx ?? 32);
855
+ g.uniform1i(g.getUniformLocation(reconProg, "u_samples"), samples);
856
+ g.uniform1i(g.getUniformLocation(reconProg, "u_tileSize"), tile);
857
+ g.uniform1i(g.getUniformLocation(reconProg, "u_frameIndex"), state.frameIndex);
858
+ });
859
+ state.pool.release(tileMax);
860
+ state.pool.release(neighbor);
861
+ if (hdr !== source)
862
+ state.pool.release(hdr);
863
+ hdr = blurred;
864
+ }
865
+ // ── S8: §8.9 auto-exposure — log2 luma chain → 1×1 EV ping-pong → mul ─────
866
+ if (wantsAutoExposure) {
867
+ const ae = autoExposure;
868
+ const qw = Math.max(1, w >> 2), qh = Math.max(1, h >> 2);
869
+ const luma = state.pool.acquire({ width: qw, height: qh, format: "rgba16f", samples: 1, depth: false });
870
+ const lumaProg = program(state, gl, "exposure-luma", EXPOSURE_LUMA_LOG_GLSL);
871
+ draw(host, state, lumaProg, asGlTarget(luma), [asGlTarget(hdr).colorHandle], (g) => {
872
+ g.uniform1i(g.getUniformLocation(lumaProg, "u_hdr"), 0);
873
+ g.uniform2f(g.getUniformLocation(lumaProg, "u_texelSize"), 1 / w, 1 / h);
874
+ g.uniform1i(g.getUniformLocation(lumaProg, "u_centerWeighted"), (ae.meteringMask ?? "center-weighted") === "center-weighted" ? 1 : 0);
875
+ });
876
+ // 2× box-reduce chain down to 1×1.
877
+ let rw = qw, rh = qh;
878
+ let reduceSrc = luma;
879
+ let reduceTmp = null;
880
+ while (rw > 1 || rh > 1) {
881
+ rw = Math.max(1, rw >> 1);
882
+ rh = Math.max(1, rh >> 1);
883
+ const next = state.pool.acquire({ width: rw, height: rh, format: "rgba16f", samples: 1, depth: false });
884
+ const redProg = program(state, gl, "exposure-reduce", EXPOSURE_REDUCE_GLSL);
885
+ draw(host, state, redProg, asGlTarget(next), [asGlTarget(reduceSrc).colorHandle], (g) => {
886
+ g.uniform1i(g.getUniformLocation(redProg, "u_source"), 0);
887
+ g.uniform2f(g.getUniformLocation(redProg, "u_texelSize"), 1 / (rw * 2), 1 / (rh * 2));
888
+ });
889
+ if (reduceSrc !== luma)
890
+ state.pool.release(reduceSrc);
891
+ reduceTmp = next;
892
+ reduceSrc = next;
893
+ }
894
+ // 1×1 EV ping-pong, persistent across frames — created directly on the
895
+ // device because `PostResources.resize` releases every pooled "live"
896
+ // target whose (w,h) doesn't match the new render size.
897
+ if (!state.evTargets[0] || !state.evTargets[1]) {
898
+ state.evTargets = [
899
+ host.device.createRenderTarget({ width: 1, height: 1, format: "rgba32f", depth: false, label: "post.ev.a" }),
900
+ host.device.createRenderTarget({ width: 1, height: 1, format: "rgba32f", depth: false, label: "post.ev.b" })
901
+ ];
902
+ }
903
+ const evRead = state.evTargets[state.evIndex];
904
+ const evWrite = state.evTargets[1 - state.evIndex];
905
+ const adaptProg = program(state, gl, "exposure-adapt", EXPOSURE_ADAPT_GLSL);
906
+ draw(host, state, adaptProg, asGlTarget(evWrite), [
907
+ state.evValid ? asGlTarget(evRead).colorHandle : state.blankTex,
908
+ asGlTarget(reduceSrc).colorHandle
909
+ ], (g) => {
910
+ g.uniform1i(g.getUniformLocation(adaptProg, "u_prev"), 0);
911
+ g.uniform1i(g.getUniformLocation(adaptProg, "u_avg"), 1);
912
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_dt"), temporal?.v2?.frameTime ?? 1 / 60);
913
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_speedUp"), ae.speedUp ?? 3);
914
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_speedDown"), ae.speedDown ?? 1);
915
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_minEv"), ae.minEv ?? -4);
916
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_maxEv"), ae.maxEv ?? 4);
917
+ g.uniform1f(g.getUniformLocation(adaptProg, "u_compensationEv"), ae.compensationEv ?? 0);
918
+ g.uniform1i(g.getUniformLocation(adaptProg, "u_hasPrev"), state.evValid ? 1 : 0);
919
+ });
920
+ state.evIndex = (1 - state.evIndex);
921
+ state.evValid = true;
922
+ state.pool.release(luma);
923
+ if (reduceTmp)
924
+ state.pool.release(reduceTmp);
925
+ // Apply: hdr *= exp2(ev) — the composite's autoExp factor, ahead of the
926
+ // fused present's own §6.4 exposure (linear multipliers commute).
927
+ const multiplied = state.pool.acquire({ width: w, height: h, format: "rgba16f", samples: 1, depth: false });
928
+ const mulProg = program(state, gl, "exposure-mul", EXPOSURE_MUL_GLSL);
929
+ draw(host, state, mulProg, asGlTarget(multiplied), [asGlTarget(hdr).colorHandle, asGlTarget(evWrite).colorHandle], (g) => {
930
+ g.uniform1i(g.getUniformLocation(mulProg, "u_hdr"), 0);
931
+ g.uniform1i(g.getUniformLocation(mulProg, "u_ev"), 1);
932
+ });
933
+ if (hdr !== source)
934
+ state.pool.release(hdr);
935
+ hdr = multiplied;
936
+ }
937
+ // ── §6.1 insertion "before-tonemap" (linear HDR, exposure applied) ────────
938
+ for (const pass of customsAt("before-tonemap")) {
939
+ const out = runCustomPass(host, state, pass, hdr, { linZ: linZFull, velocity: dilatedVelocity }, camera, frameContext);
940
+ if (out !== hdr) {
941
+ if (hdr !== source)
942
+ state.pool.release(hdr);
943
+ hdr = out;
944
+ }
945
+ }
946
+ state.timeSeconds += temporal?.v2?.frameTime ?? 1 / 60;
947
+ if (dilatedVelocity)
948
+ state.pool.release(dilatedVelocity);
949
+ if (linZFull && linZOwnedByPool)
950
+ state.pool.release(linZFull);
951
+ if (minmaxHalf)
952
+ state.pool.release(minmaxHalf);
953
+ state.frameIndex += 1;
954
+ // T0-16: `draw()`/the stage bodies issue raw GL (bindFramebuffer,
955
+ // useProgram, bindVertexArray, texture binds) that bypasses
956
+ // `host.stateCache`, leaving its cached program/VAO/FBO/texture state
957
+ // stale — the next cached-state consumer would skip re-issuing real
958
+ // state. Invalidate so nothing downstream trusts the poisoned entries.
959
+ host.stateCache.invalidate();
960
+ // §6.3: generated-program pixels carry the tagged f_ind (alpha = 2 + f_ind,
961
+ // `prd03.indirectFraction`) and the apply multiplies only that fraction.
962
+ // `aoPending` still reports AO_INDIRECT_FRACTION_PENDING because legacy
963
+ // shaderKey/custom draws carry no f_ind and take the capped fallback.
964
+ return { target: hdr, aoPending: wantsAo, skipped };
965
+ }
966
+ /**
967
+ * §6.3 fallback cap. Pixels without the tagged f_ind (legacy shaderKey draws,
968
+ * custom shaders) cannot tell direct from indirect light, so the apply darkens
969
+ * them by `mix(1, ao, strength)`. The authored 0.6 darkened directly lit
970
+ * surfaces by 4–12% luma on the L4 games (blockfall-reactor 34.5 → 30.3);
971
+ * capped at 0.1 an open lit surface (GTAO ao ≈ 0.9) loses ≤ ~1% luma while
972
+ * creases (ao ≈ 0.3) still darken ~7%. Generated-program pixels ignore it.
973
+ */
974
+ export const AO_FALLBACK_STRENGTH_MAX = 0.1;
975
+ export function aoFallbackStrength(authored) {
976
+ const v = authored ?? AO_FALLBACK_STRENGTH_MAX;
977
+ return Math.min(Math.max(Number.isFinite(v) ? v : 0, 0), AO_FALLBACK_STRENGTH_MAX);
978
+ }
979
+ /**
980
+ * Vignette colour as a finite RGB triple. The engine post bridge emits
981
+ * `{ r, g, b }` (rgbField) while older callers pass `[r, g, b]`; indexing the
982
+ * object form gave `undefined` → NaN uniforms, and `mix(1, NaN, t)` turned the
983
+ * whole frame black whenever a scene authored `effects.vignette()`.
984
+ */
985
+ export function vignetteColorRgb(color) {
986
+ let rgb = [0, 0, 0];
987
+ if (Array.isArray(color))
988
+ rgb = [color[0], color[1], color[2]];
989
+ else if (color && typeof color === "object" && "r" in color) {
990
+ const c = color;
991
+ rgb = [c.r, c.g, c.b];
992
+ }
993
+ const finite = (v) => (typeof v === "number" && Number.isFinite(v) ? v : 0);
994
+ return [finite(rgb[0]), finite(rgb[1]), finite(rgb[2])];
995
+ }
996
+ /** True when S10b/S11/S12 need a real LDR tail after the fused present. */
997
+ export function v2NeedsLdrTail(pipeline) {
998
+ const displayCustoms = mergedCustomPasses(pipeline).some((pass) => pass.insertAt === "after-tonemap");
999
+ return Boolean(pipeline.vignette || pipeline.filmGrain || pipeline.lut
1000
+ || pipeline.antiAliasing === "smaa" || displayCustoms);
1001
+ }
1002
+ /**
1003
+ * Runs S10b/S11/S12 on the fused LDR output and writes `outTarget` (or the
1004
+ * default framebuffer when undefined). `ldr` must be an rgba8 target the
1005
+ * fused present just wrote.
1006
+ */
1007
+ export function runV2LdrTail(host, ldr, pipeline, outTarget,
1008
+ /** CCR-03-12 (Phase 6): C-13 custom-pass frame context (source/items/sceneDepth). */
1009
+ frameContext) {
1010
+ const gl = host.gl;
1011
+ const state = v2State(host);
1012
+ const ldrGl = asGlTarget(ldr);
1013
+ const w = ldr.width, h = ldr.height;
1014
+ const vignette = pipeline.vignette;
1015
+ const grain = pipeline.filmGrain;
1016
+ const aaFxaa = pipeline.antiAliasing === "fxaa";
1017
+ const aaSmaa = pipeline.antiAliasing === "smaa";
1018
+ const displayCustoms = mergedCustomPasses(pipeline).filter((pass) => pass.insertAt === "after-tonemap");
1019
+ const rcas = (pipeline.renderScale ?? 1) < 1 ? 0.2 : 0;
1020
+ // §6.1 fuse: FXAA + S10b + S12 in a single draw — only when nothing sits
1021
+ // between the stages (an after-tonemap custom pass splices S10b→S11).
1022
+ if (aaFxaa && displayCustoms.length === 0) {
1023
+ const prog = program(state, gl, "finalize-fxaa-fused", FINALIZE_FXAA_FUSED_GLSL);
1024
+ bindOut(gl, outTarget, w, h);
1025
+ gl.useProgram(prog);
1026
+ gl.bindVertexArray(state.vao);
1027
+ resetFullscreenState(gl);
1028
+ gl.disable(gl.DEPTH_TEST);
1029
+ gl.disable(gl.BLEND);
1030
+ gl.activeTexture(gl.TEXTURE0);
1031
+ gl.bindTexture(gl.TEXTURE_2D, ldrGl.colorHandle);
1032
+ gl.activeTexture(gl.TEXTURE1);
1033
+ gl.bindTexture(gl.TEXTURE_3D, state.identityLut);
1034
+ gl.uniform1i(gl.getUniformLocation(prog, "u_source"), 0);
1035
+ gl.uniform1i(gl.getUniformLocation(prog, "u_lut3d"), 1);
1036
+ gl.uniform1i(gl.getUniformLocation(prog, "u_hasLut"), 0);
1037
+ gl.uniform2f(gl.getUniformLocation(prog, "u_texelSize"), 1 / w, 1 / h);
1038
+ gl.uniform2f(gl.getUniformLocation(prog, "u_outputTexel"), 1 / w, 1 / h);
1039
+ gl.uniform1f(gl.getUniformLocation(prog, "u_frame"), state.frameIndex);
1040
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainIntensity"), grain?.intensity ?? 0);
1041
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainSize"), grain?.size ?? 1);
1042
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainLuminanceResponse"), grain?.luminanceResponse ?? 1);
1043
+ gl.uniform1f(gl.getUniformLocation(prog, "u_vignetteIntensity"), vignette?.intensity ?? 0);
1044
+ gl.uniform1f(gl.getUniformLocation(prog, "u_vignetteSmoothness"), vignette?.smoothness ?? 1);
1045
+ gl.uniform1f(gl.getUniformLocation(prog, "u_vignetteRoundness"), vignette?.roundness ?? 1);
1046
+ const vc = vignetteColorRgb(vignette?.color);
1047
+ gl.uniform3f(gl.getUniformLocation(prog, "u_vignetteColor"), vc[0], vc[1], vc[2]);
1048
+ gl.uniform2f(gl.getUniformLocation(prog, "u_resolution"), w, h);
1049
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
1050
+ gl.bindVertexArray(null);
1051
+ // T0-16: raw GL above bypassed the state cache — invalidate before the
1052
+ // next frame's first cached-state user.
1053
+ host.stateCache.invalidate();
1054
+ return;
1055
+ }
1056
+ let current = ldr;
1057
+ // S10b — display grade (vignette; the .cube LUT bakes in with S10b's real
1058
+ // bake pass — until then u_hasLut stays 0 and the identity 3D tex binds).
1059
+ if (vignette || pipeline.lut) {
1060
+ const graded = state.pool.acquire({ width: w, height: h, format: "rgba8", samples: 1, depth: false });
1061
+ const prog = program(state, gl, "display-grade", DISPLAY_GRADE_GLSL);
1062
+ draw(host, state, prog, asGlTarget(graded), [ldrGl.colorHandle], (g) => {
1063
+ g.uniform1i(g.getUniformLocation(prog, "u_source"), 0);
1064
+ gl.activeTexture(gl.TEXTURE1);
1065
+ gl.bindTexture(gl.TEXTURE_3D, state.identityLut);
1066
+ g.uniform1i(g.getUniformLocation(prog, "u_lut3d"), 1);
1067
+ g.uniform1i(g.getUniformLocation(prog, "u_hasLut"), 0);
1068
+ g.uniform1f(g.getUniformLocation(prog, "u_vignetteIntensity"), vignette?.intensity ?? 0);
1069
+ g.uniform1f(g.getUniformLocation(prog, "u_vignetteSmoothness"), vignette?.smoothness ?? 1);
1070
+ g.uniform1f(g.getUniformLocation(prog, "u_vignetteRoundness"), vignette?.roundness ?? 1);
1071
+ const vc = vignetteColorRgb(vignette?.color);
1072
+ g.uniform3f(g.getUniformLocation(prog, "u_vignetteColor"), vc[0], vc[1], vc[2]);
1073
+ g.uniform2f(g.getUniformLocation(prog, "u_resolution"), w, h);
1074
+ });
1075
+ current = graded;
1076
+ }
1077
+ // §6.1 insertion "after-tonemap" (display-referred RGBA8 customs).
1078
+ for (const pass of displayCustoms) {
1079
+ const out = runCustomPass(host, state, pass, current, {}, null, frameContext);
1080
+ if (out !== current) {
1081
+ if (current !== ldr)
1082
+ state.pool.release(current);
1083
+ current = out;
1084
+ }
1085
+ }
1086
+ // S11 — SMAA 1x three-pass (§8.14). The lazy textures warm on first use;
1087
+ // until both land, the stage skips (same first-frames window as three's
1088
+ // async Image load — never a silent FXAA substitution).
1089
+ if (aaSmaa && smaaTexturesReady(host, state)) {
1090
+ const edges = state.pool.acquire({ width: w, height: h, format: "rgba8", samples: 1, depth: false });
1091
+ const edgesProg = program(state, gl, "smaa-edges", SMAA_EDGES_GLSL);
1092
+ draw(host, state, edgesProg, asGlTarget(edges), [asGlTarget(current).colorHandle], (g) => {
1093
+ g.uniform1i(g.getUniformLocation(edgesProg, "u_color"), 0);
1094
+ g.uniform2f(g.getUniformLocation(edgesProg, "u_resolution"), 1 / w, 1 / h);
1095
+ });
1096
+ const weights = state.pool.acquire({ width: w, height: h, format: "rgba8", samples: 1, depth: false });
1097
+ const weightsProg = program(state, gl, "smaa-weights", SMAA_WEIGHTS_GLSL);
1098
+ draw(host, state, weightsProg, asGlTarget(weights), [
1099
+ asGlTarget(edges).colorHandle, state.smaa.area, state.smaa.search
1100
+ ], (g) => {
1101
+ g.uniform1i(g.getUniformLocation(weightsProg, "u_edges"), 0);
1102
+ g.uniform1i(g.getUniformLocation(weightsProg, "u_area"), 1);
1103
+ g.uniform1i(g.getUniformLocation(weightsProg, "u_search"), 2);
1104
+ g.uniform2f(g.getUniformLocation(weightsProg, "u_resolution"), 1 / w, 1 / h);
1105
+ });
1106
+ const blended = state.pool.acquire({ width: w, height: h, format: "rgba8", samples: 1, depth: false });
1107
+ const blendProg = program(state, gl, "smaa-blend", SMAA_BLEND_GLSL);
1108
+ draw(host, state, blendProg, asGlTarget(blended), [
1109
+ asGlTarget(weights).colorHandle, asGlTarget(current).colorHandle
1110
+ ], (g) => {
1111
+ g.uniform1i(g.getUniformLocation(blendProg, "u_weights"), 0);
1112
+ g.uniform1i(g.getUniformLocation(blendProg, "u_color"), 1);
1113
+ g.uniform2f(g.getUniformLocation(blendProg, "u_resolution"), 1 / w, 1 / h);
1114
+ });
1115
+ state.pool.release(edges);
1116
+ state.pool.release(weights);
1117
+ if (current !== ldr)
1118
+ state.pool.release(current);
1119
+ current = blended;
1120
+ }
1121
+ else if (aaFxaa && displayCustoms.length > 0) {
1122
+ // FXAA unfused: an after-tonemap custom already consumed the fused slot.
1123
+ const aa = state.pool.acquire({ width: w, height: h, format: "rgba8", samples: 1, depth: false });
1124
+ const fxaaProg = program(state, gl, "fxaa-standalone-nodither", FXAA_185_FRAGMENT_GLSL.replace("#version 300 es", "#version 300 es\n#define AURA_FXAA_NO_DITHER"));
1125
+ draw(host, state, fxaaProg, asGlTarget(aa), [asGlTarget(current).colorHandle], (g) => {
1126
+ g.uniform1i(g.getUniformLocation(fxaaProg, "u_source"), 0);
1127
+ g.uniform2f(g.getUniformLocation(fxaaProg, "u_texelSize"), 1 / w, 1 / h);
1128
+ g.uniform2f(g.getUniformLocation(fxaaProg, "u_outputTexel"), 1 / w, 1 / h);
1129
+ });
1130
+ if (current !== ldr)
1131
+ state.pool.release(current);
1132
+ current = aa;
1133
+ }
1134
+ // S12 — finalize: grain + RCAS + the single triangular dither.
1135
+ const prog = program(state, gl, "finalize", FINALIZE_GLSL);
1136
+ bindOut(gl, outTarget, w, h);
1137
+ gl.useProgram(prog);
1138
+ gl.bindVertexArray(state.vao);
1139
+ resetFullscreenState(gl);
1140
+ gl.disable(gl.DEPTH_TEST);
1141
+ gl.disable(gl.BLEND);
1142
+ gl.activeTexture(gl.TEXTURE0);
1143
+ gl.bindTexture(gl.TEXTURE_2D, asGlTarget(current).colorHandle);
1144
+ gl.uniform1i(gl.getUniformLocation(prog, "u_source"), 0);
1145
+ gl.uniform2f(gl.getUniformLocation(prog, "u_texelSize"), 1 / w, 1 / h);
1146
+ gl.uniform1f(gl.getUniformLocation(prog, "u_frame"), state.frameIndex);
1147
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainIntensity"), grain?.intensity ?? 0);
1148
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainSize"), grain?.size ?? 1);
1149
+ gl.uniform1f(gl.getUniformLocation(prog, "u_grainLuminanceResponse"), grain?.luminanceResponse ?? 1);
1150
+ gl.uniform1f(gl.getUniformLocation(prog, "u_rcasSharpness"), rcas);
1151
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
1152
+ gl.bindVertexArray(null);
1153
+ // T0-16: invalidate the bypassed state cache (see above) — the last v2
1154
+ // stage leaves GL nothing like the cache believes.
1155
+ host.stateCache.invalidate();
1156
+ if (current !== ldr)
1157
+ state.pool.release(current);
1158
+ }
1159
+ function bindOut(gl, outTarget, w, h) {
1160
+ if (outTarget) {
1161
+ const t = asGlTarget(outTarget);
1162
+ gl.bindFramebuffer(gl.FRAMEBUFFER, t.framebuffer);
1163
+ gl.viewport(0, 0, t.width, t.height);
1164
+ }
1165
+ else {
1166
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
1167
+ gl.viewport(0, 0, w, h);
1168
+ }
1169
+ }
1170
+ const V2_ADD_GLSL = /* glsl */ `#version 300 es
1171
+ precision highp float;
1172
+ uniform sampler2D u_source;
1173
+ in vec2 v_uv;
1174
+ out vec4 outColor;
1175
+ void main() { outColor = texture(u_source, v_uv); }
1176
+ `;
1177
+ /**
1178
+ * Releases a pooled target a stage call returned. The caller owns the
1179
+ * returned HDR/LDR target: `runV2HdrStages`'s output feeds the fused
1180
+ * present, then comes back here (or to `pool.releaseAll` at frame end).
1181
+ */
1182
+ export function releaseV2Target(host, target) {
1183
+ v2State(host).pool.release(target);
1184
+ }
1185
+ /** Acquire a pooled target from the v2 stage pool (LDR tail scratch). */
1186
+ export function acquireV2Target(host, key) {
1187
+ return v2State(host).pool.acquire({ ...key, samples: 1, depth: false });
1188
+ }
1189
+ //# sourceMappingURL=v2Stages.js.map