@forgeax/engine-render 0.1.21 → 0.1.24

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 (584) hide show
  1. package/README.md +281 -38
  2. package/dist/assembly/backend-contract.d.ts +13 -0
  3. package/dist/assembly/backend-contract.d.ts.map +1 -1
  4. package/dist/assembly/bundler-contract.d.ts +9 -0
  5. package/dist/assembly/bundler-contract.d.ts.map +1 -0
  6. package/dist/assembly/device-feature-admission.d.ts +8 -0
  7. package/dist/assembly/device-feature-admission.d.ts.map +1 -1
  8. package/dist/assembly/extended-lighting-fallback.d.ts +13 -0
  9. package/dist/assembly/extended-lighting-fallback.d.ts.map +1 -0
  10. package/dist/assembly/factory.d.ts +7 -235
  11. package/dist/assembly/factory.d.ts.map +1 -1
  12. package/dist/assembly/host-contract.d.ts +10 -0
  13. package/dist/assembly/host-contract.d.ts.map +1 -1
  14. package/dist/assembly/material/assembly.d.ts +3 -2
  15. package/dist/assembly/material/assembly.d.ts.map +1 -1
  16. package/dist/assembly/material/standard-layer-projection.d.ts +10 -0
  17. package/dist/assembly/material/standard-layer-projection.d.ts.map +1 -0
  18. package/dist/assembly/material-shader-policy.d.ts +168 -0
  19. package/dist/assembly/material-shader-policy.d.ts.map +1 -0
  20. package/dist/assembly/material-shader-prewarm.d.ts +21 -0
  21. package/dist/assembly/material-shader-prewarm.d.ts.map +1 -0
  22. package/dist/assembly/mesh-ssbo-grow.d.ts +88 -0
  23. package/dist/assembly/mesh-ssbo-grow.d.ts.map +1 -0
  24. package/dist/assembly/recovery/device-loss-fanout.d.ts +14 -0
  25. package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -0
  26. package/dist/assembly/recovery/generation.d.ts +46 -0
  27. package/dist/assembly/recovery/generation.d.ts.map +1 -0
  28. package/dist/assembly/recovery/recovery-attempt.d.ts +63 -0
  29. package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -0
  30. package/dist/assembly/recovery/renderer-recover.d.ts +115 -0
  31. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -0
  32. package/dist/assembly/renderer-facade.d.ts +10 -0
  33. package/dist/assembly/renderer-facade.d.ts.map +1 -0
  34. package/dist/assembly/renderer-frame-transaction.d.ts +17 -0
  35. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
  36. package/dist/assembly/renderer-helpers.d.ts +19 -0
  37. package/dist/assembly/renderer-helpers.d.ts.map +1 -0
  38. package/dist/assembly/renderer-lifecycle.d.ts +34 -0
  39. package/dist/assembly/renderer-lifecycle.d.ts.map +1 -1
  40. package/dist/assembly/shader-prewarm-policy.d.ts +15 -0
  41. package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -0
  42. package/dist/assembly/webgpu-ready-contract.d.ts +9 -0
  43. package/dist/assembly/webgpu-ready-contract.d.ts.map +1 -0
  44. package/dist/assembly/webgpu-ready.d.ts +55 -0
  45. package/dist/assembly/webgpu-ready.d.ts.map +1 -0
  46. package/dist/assembly/webgpu-renderer.d.ts +152 -0
  47. package/dist/assembly/webgpu-renderer.d.ts.map +1 -0
  48. package/dist/authoring.mjs +1 -1
  49. package/dist/{chunk-PCHBPYML.mjs → chunk-GE3SDD72.mjs} +37 -5
  50. package/dist/chunk-GE3SDD72.mjs.map +1 -0
  51. package/dist/chunk-KZFTK6DO.mjs +1191 -0
  52. package/dist/chunk-KZFTK6DO.mjs.map +1 -0
  53. package/dist/{chunk-FS2KNUQH.mjs → chunk-Q752SHI5.mjs} +332 -568
  54. package/dist/chunk-Q752SHI5.mjs.map +1 -0
  55. package/dist/{chunk-6OPXDQ2E.mjs → chunk-RR5L4SRS.mjs} +33 -294
  56. package/dist/chunk-RR5L4SRS.mjs.map +1 -0
  57. package/dist/chunk-TFH5I7JJ.mjs +296 -0
  58. package/dist/chunk-TFH5I7JJ.mjs.map +1 -0
  59. package/dist/chunk-UQYS7FRM.mjs +1003 -0
  60. package/dist/chunk-UQYS7FRM.mjs.map +1 -0
  61. package/dist/chunk-YKB5DQV7.mjs +345 -0
  62. package/dist/chunk-YKB5DQV7.mjs.map +1 -0
  63. package/dist/{chunk-5YADUCA7.mjs → chunk-YRUYGA4A.mjs} +1189 -1217
  64. package/dist/chunk-YRUYGA4A.mjs.map +1 -0
  65. package/dist/chunk-Z3YYH2MB.mjs +5082 -0
  66. package/dist/chunk-Z3YYH2MB.mjs.map +1 -0
  67. package/dist/cluster-binner.d.ts +5 -0
  68. package/dist/cluster-binner.d.ts.map +1 -1
  69. package/dist/components/index.d.ts +3 -0
  70. package/dist/components/index.d.ts.map +1 -1
  71. package/dist/components/light-helpers.d.ts +4 -0
  72. package/dist/components/light-helpers.d.ts.map +1 -1
  73. package/dist/components/light-probe.d.ts +9 -0
  74. package/dist/components/light-probe.d.ts.map +1 -0
  75. package/dist/components/rect-area-light.d.ts +12 -0
  76. package/dist/components/rect-area-light.d.ts.map +1 -0
  77. package/dist/components/scene-instance.d.ts +4 -0
  78. package/dist/components/scene-instance.d.ts.map +1 -1
  79. package/dist/components/spot-light.d.ts +3 -0
  80. package/dist/components/spot-light.d.ts.map +1 -1
  81. package/dist/construct-renderer.mjs +27276 -23232
  82. package/dist/construct-renderer.mjs.map +1 -1
  83. package/dist/device/device-scope.d.ts +2 -0
  84. package/dist/device/device-scope.d.ts.map +1 -1
  85. package/dist/device/gpu-residency.d.ts +32 -5
  86. package/dist/device/gpu-residency.d.ts.map +1 -1
  87. package/dist/device/lifecycle-transaction.d.ts +2 -0
  88. package/dist/device/lifecycle-transaction.d.ts.map +1 -0
  89. package/dist/environment/frame.d.ts +5 -0
  90. package/dist/environment/frame.d.ts.map +1 -1
  91. package/dist/environment/inspection.d.ts +7 -0
  92. package/dist/environment/inspection.d.ts.map +1 -1
  93. package/dist/environment/lifecycle.d.ts +20 -2
  94. package/dist/environment/lifecycle.d.ts.map +1 -1
  95. package/dist/errors/gpu-driven.d.ts +26 -0
  96. package/dist/errors/gpu-driven.d.ts.map +1 -0
  97. package/dist/errors/index.d.ts +1 -0
  98. package/dist/errors/index.d.ts.map +1 -1
  99. package/dist/errors/recover.d.ts +67 -3
  100. package/dist/errors/recover.d.ts.map +1 -1
  101. package/dist/errors/render.d.ts +39 -1
  102. package/dist/errors/render.d.ts.map +1 -1
  103. package/dist/extract/contracts.d.ts +899 -0
  104. package/dist/extract/contracts.d.ts.map +1 -0
  105. package/dist/extract/gpu-driven.d.ts +50 -0
  106. package/dist/extract/gpu-driven.d.ts.map +1 -0
  107. package/dist/extract/visibility.d.ts.map +1 -1
  108. package/dist/features/host.d.ts +2 -0
  109. package/dist/features/host.d.ts.map +1 -1
  110. package/dist/features/prepared-gpu-work.d.ts +3 -0
  111. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  112. package/dist/features/prepared-graphics-store.d.ts +2 -0
  113. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  114. package/dist/gpu-driven/batch-topology.d.ts +34 -0
  115. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  116. package/dist/gpu-driven/prepared-draw.d.ts +63 -0
  117. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -0
  118. package/dist/gpu-driven/production-raster.d.ts +126 -2
  119. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  120. package/dist/gpu-driven/view-gpu.d.ts +64 -1
  121. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  122. package/dist/gpu-scene-schema.d.ts +14 -0
  123. package/dist/gpu-scene-schema.d.ts.map +1 -1
  124. package/dist/gpu-scene.d.ts +9 -1
  125. package/dist/gpu-scene.d.ts.map +1 -1
  126. package/dist/gpu-usage.d.ts +0 -1
  127. package/dist/gpu-usage.d.ts.map +1 -1
  128. package/dist/hdrp-buffers.d.ts +3 -3
  129. package/dist/hdrp-buffers.d.ts.map +1 -1
  130. package/dist/ibl/IblPipelineCache.d.ts +7 -6
  131. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  132. package/dist/ibl/skylight-bind-group.d.ts +7 -1
  133. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  134. package/dist/index.d.ts +13 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.mjs +90 -5
  137. package/dist/index.mjs.map +1 -1
  138. package/dist/inspection-types.d.ts +163 -1
  139. package/dist/inspection-types.d.ts.map +1 -1
  140. package/dist/internal.d.ts +9 -0
  141. package/dist/internal.d.ts.map +1 -1
  142. package/dist/internal.mjs +23 -2
  143. package/dist/internal.mjs.map +1 -1
  144. package/dist/light-buffer-layout.d.ts +60 -148
  145. package/dist/light-buffer-layout.d.ts.map +1 -1
  146. package/dist/materials.d.ts +34 -10
  147. package/dist/materials.d.ts.map +1 -1
  148. package/dist/mesh-material-bindings.d.ts +56 -0
  149. package/dist/mesh-material-bindings.d.ts.map +1 -1
  150. package/dist/occlusion-proxy.d.ts +4 -0
  151. package/dist/occlusion-proxy.d.ts.map +1 -0
  152. package/dist/pbr-pipeline.d.ts +58 -21
  153. package/dist/pbr-pipeline.d.ts.map +1 -1
  154. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  155. package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -1
  156. package/dist/pipeline/standard-lighting/light-frame.d.ts +3 -3
  157. package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -1
  158. package/dist/pipeline/standard-lighting/topology.d.ts +1 -1
  159. package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -1
  160. package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -1
  161. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  162. package/dist/pipeline-builder.d.ts +2 -0
  163. package/dist/pipeline-builder.d.ts.map +1 -1
  164. package/dist/pipeline-spec.d.ts +1 -1
  165. package/dist/pipeline-spec.d.ts.map +1 -1
  166. package/dist/plugin.d.ts.map +1 -1
  167. package/dist/points-lines/prepare.d.ts +3 -0
  168. package/dist/points-lines/prepare.d.ts.map +1 -1
  169. package/dist/points-lines/standard-owner.d.ts +33 -0
  170. package/dist/points-lines/standard-owner.d.ts.map +1 -0
  171. package/dist/prepare/extended-lighting/ltc-resources.d.ts +31 -0
  172. package/dist/prepare/extended-lighting/ltc-resources.d.ts.map +1 -0
  173. package/dist/prepare/extended-lighting/resources.d.ts +72 -0
  174. package/dist/prepare/extended-lighting/resources.d.ts.map +1 -0
  175. package/dist/prepare/extended-lighting/spot-modifiers.d.ts +42 -0
  176. package/dist/prepare/extended-lighting/spot-modifiers.d.ts.map +1 -0
  177. package/dist/prepare/extended-lighting/state.d.ts +24 -0
  178. package/dist/prepare/extended-lighting/state.d.ts.map +1 -0
  179. package/dist/record/frame-lighting.d.ts +8 -6
  180. package/dist/record/frame-lighting.d.ts.map +1 -1
  181. package/dist/record/frame-snapshot.d.ts +55 -10
  182. package/dist/record/frame-snapshot.d.ts.map +1 -1
  183. package/dist/record/frame-targets.d.ts.map +1 -1
  184. package/dist/record/frame.d.ts +21 -5
  185. package/dist/record/frame.d.ts.map +1 -1
  186. package/dist/record/gpu-timing.d.ts +19 -7
  187. package/dist/record/gpu-timing.d.ts.map +1 -1
  188. package/dist/record/helpers.d.ts +0 -20
  189. package/dist/record/helpers.d.ts.map +1 -1
  190. package/dist/record/main-pass-geometry.d.ts +20 -2
  191. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  192. package/dist/record/main-pass-material.d.ts +10 -18
  193. package/dist/record/main-pass-material.d.ts.map +1 -1
  194. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  195. package/dist/record/main-pass.d.ts.map +1 -1
  196. package/dist/record/mesh-ssbo.d.ts +11 -3
  197. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  198. package/dist/record/recovery-pipeline.d.ts +30 -0
  199. package/dist/record/recovery-pipeline.d.ts.map +1 -0
  200. package/dist/record/render-context.d.ts +82 -9
  201. package/dist/record/render-context.d.ts.map +1 -1
  202. package/dist/record/shadow-pass.d.ts.map +1 -1
  203. package/dist/record/typed-frame-graph.d.ts +49 -2
  204. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  205. package/dist/record/view-ubo.d.ts +1 -2
  206. package/dist/record/view-ubo.d.ts.map +1 -1
  207. package/dist/recovery/render-system-candidate.d.ts +65 -0
  208. package/dist/recovery/render-system-candidate.d.ts.map +1 -0
  209. package/dist/reflection/inspection.d.ts +10 -0
  210. package/dist/reflection/inspection.d.ts.map +1 -0
  211. package/dist/reflection/projection.d.ts +49 -0
  212. package/dist/reflection/projection.d.ts.map +1 -1
  213. package/dist/reflection/record-owner.d.ts +60 -0
  214. package/dist/reflection/record-owner.d.ts.map +1 -0
  215. package/dist/render-contract.d.ts +78 -15
  216. package/dist/render-contract.d.ts.map +1 -1
  217. package/dist/render-pipeline.d.ts +7 -0
  218. package/dist/render-pipeline.d.ts.map +1 -1
  219. package/dist/render-system-extract-tail.d.ts +12 -0
  220. package/dist/render-system-extract-tail.d.ts.map +1 -0
  221. package/dist/render-system-extract.d.ts +252 -30
  222. package/dist/render-system-extract.d.ts.map +1 -1
  223. package/dist/render-system.d.ts +140 -5
  224. package/dist/render-system.d.ts.map +1 -1
  225. package/dist/scene/probe-blend-record.d.ts +22 -0
  226. package/dist/scene/probe-blend-record.d.ts.map +1 -0
  227. package/dist/scene/probe-blend.d.ts +142 -0
  228. package/dist/scene/probe-blend.d.ts.map +1 -0
  229. package/dist/scene/render-scene-types.d.ts +0 -6
  230. package/dist/scene/render-scene-types.d.ts.map +1 -1
  231. package/dist/scene/render-scene.d.ts +122 -9
  232. package/dist/scene/render-scene.d.ts.map +1 -1
  233. package/dist/scene/visibility/bounds.d.ts +20 -0
  234. package/dist/scene/visibility/bounds.d.ts.map +1 -0
  235. package/dist/scene/visibility/budget.d.ts +16 -0
  236. package/dist/scene/visibility/budget.d.ts.map +1 -0
  237. package/dist/scene/visibility/facet.d.ts +73 -0
  238. package/dist/scene/visibility/facet.d.ts.map +1 -0
  239. package/dist/scene/visibility/gpu-frame-timing.d.ts +41 -0
  240. package/dist/scene/visibility/gpu-frame-timing.d.ts.map +1 -0
  241. package/dist/scene/visibility/gpu-lod.d.ts +46 -0
  242. package/dist/scene/visibility/gpu-lod.d.ts.map +1 -0
  243. package/dist/scene/visibility/inspection.d.ts +132 -0
  244. package/dist/scene/visibility/inspection.d.ts.map +1 -0
  245. package/dist/scene/visibility/lod-selector.d.ts +25 -0
  246. package/dist/scene/visibility/lod-selector.d.ts.map +1 -0
  247. package/dist/scene/visibility/occlusion-confidence.d.ts +81 -0
  248. package/dist/scene/visibility/occlusion-confidence.d.ts.map +1 -0
  249. package/dist/scene/visibility/occlusion-pass.d.ts +57 -0
  250. package/dist/scene/visibility/occlusion-pass.d.ts.map +1 -0
  251. package/dist/scene/visibility/occlusion-query-pool.d.ts +57 -0
  252. package/dist/scene/visibility/occlusion-query-pool.d.ts.map +1 -0
  253. package/dist/scene/visibility/occlusion-runtime.d.ts +96 -0
  254. package/dist/scene/visibility/occlusion-runtime.d.ts.map +1 -0
  255. package/dist/scene/visibility/types.d.ts +34 -0
  256. package/dist/scene/visibility/types.d.ts.map +1 -0
  257. package/dist/ssr/admission.d.ts +122 -0
  258. package/dist/ssr/admission.d.ts.map +1 -0
  259. package/dist/ssr/composition.d.ts +32 -0
  260. package/dist/ssr/composition.d.ts.map +1 -0
  261. package/dist/ssr/errors.d.ts +39 -0
  262. package/dist/ssr/errors.d.ts.map +1 -0
  263. package/dist/ssr/identity.d.ts +13 -0
  264. package/dist/ssr/identity.d.ts.map +1 -0
  265. package/dist/systems/skin-palette-allocator.d.ts +1 -1
  266. package/dist/temporal/frame-coordinator.d.ts +13 -0
  267. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  268. package/dist/temporal/frame.d.ts +2 -0
  269. package/dist/temporal/frame.d.ts.map +1 -1
  270. package/dist/temporal/index.mjs +6 -5
  271. package/dist/temporal/taa-history-store.d.ts +15 -1
  272. package/dist/temporal/taa-history-store.d.ts.map +1 -1
  273. package/dist/temporal/transaction.d.ts +5 -0
  274. package/dist/temporal/transaction.d.ts.map +1 -1
  275. package/dist/temporal/view.d.ts +7 -0
  276. package/dist/temporal/view.d.ts.map +1 -1
  277. package/dist/tilemap-chunk-extract-system.d.ts +1 -1
  278. package/dist/typed-render-graph-primitives.d.ts +4 -0
  279. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  280. package/dist/volume/passes.d.ts +8 -4
  281. package/dist/volume/passes.d.ts.map +1 -1
  282. package/package.json +20 -20
  283. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +5 -0
  284. package/src/__tests__/detached-inspection.integration.test.ts +6 -0
  285. package/src/__tests__/device-feature-admission.unit.test.ts +19 -1
  286. package/src/__tests__/device-loss-fanout.unit.test.ts +107 -0
  287. package/src/__tests__/device-scope-lifecycle.unit.test.ts +21 -0
  288. package/src/__tests__/direct-light-snapshot.unit.test.ts +59 -3
  289. package/src/__tests__/environment-generation.integration.test.ts +39 -0
  290. package/src/__tests__/evidence-identity.ts +13 -0
  291. package/src/__tests__/evidence-identity.unit.test.ts +24 -0
  292. package/src/__tests__/expose-renderer-errors.unit.test.ts +34 -0
  293. package/src/__tests__/extended-lighting-recovery.browser.test.ts +14 -0
  294. package/src/__tests__/extended-lighting-recovery.dawn.test.ts +14 -0
  295. package/src/__tests__/extended-lighting-recovery.integration.test.ts +81 -0
  296. package/src/__tests__/extended-lighting-resources.unit.test.ts +51 -0
  297. package/src/__tests__/extended-lighting-zero-feature.integration.test.ts +52 -0
  298. package/src/__tests__/factory-contract.integration.test.ts +154 -6
  299. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +4 -1
  300. package/src/__tests__/frame-observation.contract.test.ts +15 -0
  301. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +146 -0
  302. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +1 -0
  303. package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +1 -0
  304. package/src/__tests__/gpu-driven-production.integration.test.ts +572 -9
  305. package/src/__tests__/gpu-driven-scaling.unit.test.ts +66 -2
  306. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +26 -1
  307. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +89 -2
  308. package/src/__tests__/gpu-driven-view.browser.test.ts +3 -3
  309. package/src/__tests__/gpu-driven-view.dawn.test.ts +3 -3
  310. package/src/__tests__/gpu-driven-view.unit.test.ts +50 -0
  311. package/src/__tests__/gpu-lod-evidence.ts +188 -0
  312. package/src/__tests__/gpu-lod-fallback.integration.test.ts +10 -0
  313. package/src/__tests__/gpu-lod-indirect.integration.test.ts +40 -0
  314. package/src/__tests__/gpu-lod-parity.dawn.test.ts +29 -0
  315. package/src/__tests__/gpu-lod-readiness.integration.test.ts +52 -0
  316. package/src/__tests__/gpu-lod-schema.unit.test.ts +66 -0
  317. package/src/__tests__/gpu-lod-selector.unit.test.ts +28 -0
  318. package/src/__tests__/gpu-lod-silhouette.browser.test.ts +13 -0
  319. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +66 -1
  320. package/src/__tests__/gpu-scene.dawn.test.ts +8 -1
  321. package/src/__tests__/gpu-scene.unit.test.ts +49 -3
  322. package/src/__tests__/ibl/face-uniforms.unit.test.ts +2 -0
  323. package/src/__tests__/ibl-residency-publication.unit.test.ts +113 -0
  324. package/src/__tests__/light-buffer-layout.unit.test.ts +113 -3
  325. package/src/__tests__/light-inspection.unit.test.ts +55 -0
  326. package/src/__tests__/light-resource-error.unit.test.ts +43 -0
  327. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +109 -0
  328. package/src/__tests__/lod-bounds.unit.test.ts +42 -0
  329. package/src/__tests__/lod-cpu-lane.integration.test.ts +55 -0
  330. package/src/__tests__/lod-cpu-no-change.perf.test.ts +19 -0
  331. package/src/__tests__/lod-gpu-frame-timing.unit.test.ts +49 -0
  332. package/src/__tests__/lod-multi-view.integration.test.ts +63 -0
  333. package/src/__tests__/lod-occlusion-device-loss.integration.test.ts +27 -0
  334. package/src/__tests__/lod-occlusion-final-decision.integration.test.ts +47 -0
  335. package/src/__tests__/lod-occlusion-inspection.integration.test.ts +217 -0
  336. package/src/__tests__/lod-occlusion-inspection.schema.test-d.ts +14 -0
  337. package/src/__tests__/lod-occlusion-inspection.unit.test.ts +72 -0
  338. package/src/__tests__/lod-occlusion-visual-evidence.ts +91 -0
  339. package/src/__tests__/lod-occlusion.browser.test.ts +15 -0
  340. package/src/__tests__/lod-occlusion.dawn.test.ts +20 -0
  341. package/src/__tests__/lod-selector.profile.test.ts +35 -0
  342. package/src/__tests__/lod-selector.unit.test.ts +68 -0
  343. package/src/__tests__/lod-visibility-identity.unit.test.ts +198 -0
  344. package/src/__tests__/lod-visibility-lifecycle.integration.test.ts +132 -0
  345. package/src/__tests__/ltc-resources.unit.test.ts +32 -0
  346. package/src/__tests__/material-contract-inventory.unit.test.ts +41 -9
  347. package/src/__tests__/material-cooked-projection.unit.test.ts +19 -1
  348. package/src/__tests__/material-static-dynamic-route.unit.test.ts +29 -0
  349. package/src/__tests__/material-stride-surface.unit.test.ts +7 -3
  350. package/src/__tests__/materials-standard-contract.unit.test.ts +104 -0
  351. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +1 -1
  352. package/src/__tests__/occlusion-confidence.unit.test.ts +168 -0
  353. package/src/__tests__/occlusion-invalidation.integration.test.ts +37 -0
  354. package/src/__tests__/occlusion-pass-routing.unit.test.ts +16 -0
  355. package/src/__tests__/occlusion-pass.dawn.test.ts +20 -0
  356. package/src/__tests__/occlusion-pass.integration.test.ts +43 -0
  357. package/src/__tests__/occlusion-pass.rhi-null.test.ts +22 -0
  358. package/src/__tests__/occlusion-query-pool.rhi-null.test.ts +21 -0
  359. package/src/__tests__/occlusion-query-pool.unit.test.ts +95 -0
  360. package/src/__tests__/occlusion-query-ticket.integration.test.ts +47 -0
  361. package/src/__tests__/occlusion-query.dawn.test.ts +16 -0
  362. package/src/__tests__/occlusion-query.evidence.ts +178 -0
  363. package/src/__tests__/occlusion-query.rhi-null.test.ts +31 -0
  364. package/src/__tests__/occlusion-runtime.unit.test.ts +120 -0
  365. package/src/__tests__/physical-clearcoat.integration.test.ts +89 -0
  366. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +196 -0
  367. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +1 -1
  368. package/src/__tests__/probe-bindings.unit.test.ts +200 -0
  369. package/src/__tests__/probe-blend-numeric.unit.test.ts +67 -0
  370. package/src/__tests__/probe-blend-oracle.unit.test.ts +136 -0
  371. package/src/__tests__/probe-capacity.integration.test.ts +97 -0
  372. package/src/__tests__/probe-recovery.integration.test.ts +104 -0
  373. package/src/__tests__/probe-scene-dirty.integration.test.ts +211 -0
  374. package/src/__tests__/profiler-phase-catalog.test.ts +4 -1
  375. package/src/__tests__/profiler-phase-token.test.ts +1 -0
  376. package/src/__tests__/recover-error-policy-owner.unit.test.ts +6 -3
  377. package/src/__tests__/recovery-candidate-prepare.contract.test.ts +140 -0
  378. package/src/__tests__/rect-area-boundary.unit.test.ts +24 -0
  379. package/src/__tests__/reflection-fallback-graph.unit.test.ts +67 -0
  380. package/src/__tests__/reflection-fallback-inspection.unit.test.ts +77 -0
  381. package/src/__tests__/reflection-fallback-lifecycle.integration.test.ts +21 -0
  382. package/src/__tests__/reflection-fallback-projection.unit.test.ts +90 -0
  383. package/src/__tests__/reflection-fallback-source.unit.test.ts +32 -0
  384. package/src/__tests__/reflection-probe-owner-placement.unit.test.ts +39 -0
  385. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +120 -0
  386. package/src/__tests__/render-error-code-owner.test-d.ts +1 -0
  387. package/src/__tests__/render-feature-docs.unit.test.ts +12 -7
  388. package/src/__tests__/render-graph-fallback.integration.test.ts +24 -0
  389. package/src/__tests__/render-perf/extended-lighting.bench.test.ts +66 -0
  390. package/src/__tests__/render-scene-projection.unit.test.ts +447 -18
  391. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +160 -17
  392. package/src/__tests__/renderer-frame-generation-fence.integration.test.ts +47 -0
  393. package/src/__tests__/renderer-generation-assembly.unit.test.ts +77 -0
  394. package/src/__tests__/renderer-generation-failure.unit.test.ts +108 -0
  395. package/src/__tests__/renderer-producer-root-matrix.integration.test.ts +33 -0
  396. package/src/__tests__/renderer-recovery-capability-matrix.unit.test.ts +59 -0
  397. package/src/__tests__/renderer-recovery-contract.unit.test.ts +73 -0
  398. package/src/__tests__/renderer-recovery-lifecycle.unit.test.ts +216 -0
  399. package/src/__tests__/renderer-target-history-recovery.integration.test.ts +80 -0
  400. package/src/__tests__/shader-manifest-fixture.ts +13 -16
  401. package/src/__tests__/shader-stage-surface.unit.test.ts +1 -1
  402. package/src/__tests__/skin-motion-regression.unit.test.ts +22 -0
  403. package/src/__tests__/skinned-shadow-caster.test.ts +2 -2
  404. package/src/__tests__/spot-modifier-projection.unit.test.ts +70 -0
  405. package/src/__tests__/ssr-admission-matrix.integration.test.ts +206 -0
  406. package/src/__tests__/ssr-composition.unit.test.ts +46 -0
  407. package/src/__tests__/ssr-fallback-zero-work.bench.test.ts +94 -0
  408. package/src/__tests__/ssr-recovery-errors.unit.test.ts +58 -0
  409. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +67 -0
  410. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +7 -0
  411. package/src/__tests__/standard-layer-projection.unit.test.ts +23 -0
  412. package/src/__tests__/standard-lighting-inspection.integration.test.ts +1 -1
  413. package/src/__tests__/standard-lighting-write.unit.test.ts +66 -2
  414. package/src/__tests__/temporal-fallback-generation.integration.test.ts +16 -0
  415. package/src/__tests__/temporal-view.unit.test.ts +3 -3
  416. package/src/__tests__/transmission-prewarm.unit.test.ts +111 -32
  417. package/src/__tests__/visibility-budget.integration.test.ts +140 -0
  418. package/src/__tests__/visibility-budget.unit.test.ts +70 -0
  419. package/src/__tests__/visibility-extract.integration.test.ts +11 -6
  420. package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +6 -3
  421. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +31 -28
  422. package/src/__tests__/volumetric-fog-topology.unit.test.ts +3 -1
  423. package/src/assembly/backend-contract.ts +13 -0
  424. package/src/assembly/bundler-contract.ts +9 -0
  425. package/src/assembly/device-feature-admission.ts +26 -9
  426. package/src/assembly/extended-lighting-fallback.ts +216 -0
  427. package/src/assembly/factory.ts +81 -9634
  428. package/src/assembly/host-contract.ts +10 -0
  429. package/src/assembly/material/assembly.ts +18 -2
  430. package/src/assembly/material/standard-layer-projection.ts +16 -0
  431. package/src/assembly/material-shader-policy.ts +854 -0
  432. package/src/assembly/material-shader-prewarm.ts +88 -0
  433. package/src/assembly/mesh-ssbo-grow.ts +270 -0
  434. package/src/assembly/recovery/device-loss-fanout.ts +89 -0
  435. package/src/assembly/recovery/generation.ts +141 -0
  436. package/src/assembly/recovery/recovery-attempt.ts +800 -0
  437. package/src/assembly/recovery/renderer-recover.ts +906 -0
  438. package/src/assembly/renderer-facade.ts +342 -0
  439. package/src/assembly/renderer-frame-transaction.ts +45 -0
  440. package/src/assembly/renderer-helpers.ts +99 -0
  441. package/src/assembly/renderer-lifecycle.ts +159 -0
  442. package/src/assembly/shader-prewarm-policy.ts +157 -0
  443. package/src/assembly/webgpu-ready-contract.ts +14 -0
  444. package/src/assembly/webgpu-ready.ts +4079 -0
  445. package/src/assembly/webgpu-renderer.ts +4095 -0
  446. package/src/cluster-binner.ts +31 -0
  447. package/src/components/__tests__/lighting-authoring.unit.test.ts +39 -0
  448. package/src/components/__tests__/rect-area-light.unit.test.ts +33 -0
  449. package/src/components/camera.ts +1 -1
  450. package/src/components/index.ts +3 -0
  451. package/src/components/light-helpers.ts +52 -1
  452. package/src/components/light-probe.ts +13 -0
  453. package/src/components/rect-area-light.ts +15 -0
  454. package/src/components/scene-instance.ts +6 -0
  455. package/src/components/spot-light.ts +3 -0
  456. package/src/debug-draw-glue.ts +1 -1
  457. package/src/device/__tests__/extended-lighting-recovery.unit.test.ts +24 -0
  458. package/src/device/device-scope.ts +35 -6
  459. package/src/device/gpu-residency.ts +334 -35
  460. package/src/device/lifecycle-transaction.ts +12 -0
  461. package/src/environment/frame.ts +6 -0
  462. package/src/environment/inspection.ts +10 -0
  463. package/src/environment/lifecycle.ts +122 -9
  464. package/src/errors/gpu-driven.ts +92 -0
  465. package/src/errors/index.ts +1 -0
  466. package/src/errors/recover.ts +108 -5
  467. package/src/errors/render.ts +72 -1
  468. package/src/extract/camera.ts +3 -3
  469. package/src/extract/contracts.ts +974 -0
  470. package/src/extract/gpu-driven.ts +108 -0
  471. package/src/extract/visibility.ts +0 -23
  472. package/src/features/host.ts +16 -0
  473. package/src/features/prepared-gpu-work.ts +20 -2
  474. package/src/features/prepared-graphics-store.ts +17 -0
  475. package/src/gpu-driven/batch-topology.ts +206 -28
  476. package/src/gpu-driven/prepared-draw.ts +208 -0
  477. package/src/gpu-driven/production-raster.ts +1046 -39
  478. package/src/gpu-driven/view-gpu.ts +411 -29
  479. package/src/gpu-scene-schema.ts +13 -0
  480. package/src/gpu-scene.ts +137 -67
  481. package/src/gpu-usage.ts +0 -1
  482. package/src/hdrp-buffers.ts +6 -6
  483. package/src/ibl/IblPipelineCache.ts +134 -50
  484. package/src/ibl/skylight-bind-group.ts +26 -0
  485. package/src/index.ts +83 -1
  486. package/src/inspection-types.ts +220 -1
  487. package/src/internal.ts +38 -0
  488. package/src/light-buffer-layout.ts +157 -324
  489. package/src/materials.ts +278 -47
  490. package/src/mesh-material-bindings.ts +59 -0
  491. package/src/occlusion-proxy.ts +64 -0
  492. package/src/pbr-pipeline.ts +290 -60
  493. package/src/pipeline/standard-forward-lane.ts +47 -0
  494. package/src/pipeline/standard-lighting/graph.ts +2 -1
  495. package/src/pipeline/standard-lighting/light-frame.ts +3 -2
  496. package/src/pipeline/standard-lighting/topology.ts +1 -1
  497. package/src/pipeline/standard-lighting/transport.ts +2 -1
  498. package/src/pipeline/standard-pipeline.ts +2 -0
  499. package/src/pipeline-builder.ts +5 -2
  500. package/src/pipeline-spec.ts +12 -1
  501. package/src/plugin.ts +4 -0
  502. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +22 -0
  503. package/src/points-lines/prepare.ts +9 -0
  504. package/src/points-lines/standard-owner.ts +403 -0
  505. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +56 -0
  506. package/src/prepare/extended-lighting/ltc-resources.ts +136 -0
  507. package/src/prepare/extended-lighting/resources.ts +389 -0
  508. package/src/prepare/extended-lighting/spot-modifiers.ts +194 -0
  509. package/src/prepare/extended-lighting/state.ts +92 -0
  510. package/src/record/__tests__/frame-targets-recovery.unit.test.ts +60 -0
  511. package/src/record/__tests__/gpu-timing.unit.test.ts +177 -0
  512. package/src/record/__tests__/main-pass-geometry.unit.test.ts +26 -1
  513. package/src/record/__tests__/mesh-ssbo.unit.test.ts +38 -0
  514. package/src/record/__tests__/recovery-pipeline.unit.test.ts +124 -0
  515. package/src/record/__tests__/sprite-material-abi.unit.test.ts +28 -13
  516. package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +47 -4
  517. package/src/record/__tests__/temporal-payload.unit.test.ts +29 -28
  518. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +21 -2
  519. package/src/record/frame-lighting.ts +252 -53
  520. package/src/record/frame-snapshot.ts +72 -12
  521. package/src/record/frame-targets.ts +11 -1
  522. package/src/record/frame.ts +416 -95
  523. package/src/record/gpu-timing.ts +108 -44
  524. package/src/record/helpers.ts +1 -59
  525. package/src/record/main-pass-geometry.ts +434 -44
  526. package/src/record/main-pass-material.ts +324 -210
  527. package/src/record/main-pass-sprite-draws.ts +58 -92
  528. package/src/record/main-pass.ts +94 -6
  529. package/src/record/mesh-ssbo.ts +79 -46
  530. package/src/record/recovery-pipeline.ts +695 -0
  531. package/src/record/render-context.ts +99 -7
  532. package/src/record/shadow-pass.ts +66 -40
  533. package/src/record/typed-frame-graph.ts +270 -84
  534. package/src/record/view-ubo.ts +17 -27
  535. package/src/recovery/render-system-candidate.ts +839 -0
  536. package/src/reflection/inspection.ts +67 -0
  537. package/src/reflection/projection.ts +196 -1
  538. package/src/reflection/record-owner.ts +1283 -0
  539. package/src/render-contract.ts +82 -12
  540. package/src/render-pipeline.ts +5 -0
  541. package/src/render-system-extract-tail.ts +2983 -0
  542. package/src/render-system-extract.ts +290 -2784
  543. package/src/render-system.ts +1597 -1192
  544. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +36 -0
  545. package/src/scene/probe-blend-record.ts +54 -0
  546. package/src/scene/probe-blend.ts +813 -0
  547. package/src/scene/render-scene-types.ts +0 -7
  548. package/src/scene/render-scene.ts +972 -184
  549. package/src/scene/visibility/bounds.ts +57 -0
  550. package/src/scene/visibility/budget.ts +40 -0
  551. package/src/scene/visibility/facet.ts +400 -0
  552. package/src/scene/visibility/gpu-frame-timing.ts +101 -0
  553. package/src/scene/visibility/gpu-lod.ts +119 -0
  554. package/src/scene/visibility/inspection.ts +313 -0
  555. package/src/scene/visibility/lod-selector.ts +84 -0
  556. package/src/scene/visibility/occlusion-confidence.ts +478 -0
  557. package/src/scene/visibility/occlusion-pass.ts +165 -0
  558. package/src/scene/visibility/occlusion-query-pool.ts +178 -0
  559. package/src/scene/visibility/occlusion-runtime.ts +672 -0
  560. package/src/scene/visibility/types.ts +50 -0
  561. package/src/ssr/admission.ts +451 -0
  562. package/src/ssr/composition.ts +73 -0
  563. package/src/ssr/errors.ts +76 -0
  564. package/src/ssr/identity.ts +12 -0
  565. package/src/systems/skin-palette-allocator.ts +1 -1
  566. package/src/temporal/frame-coordinator.ts +30 -1
  567. package/src/temporal/frame.ts +14 -1
  568. package/src/temporal/taa-history-store.ts +46 -2
  569. package/src/temporal/temporal-view.ts +1 -1
  570. package/src/temporal/transaction.ts +9 -0
  571. package/src/temporal/view.ts +11 -0
  572. package/src/tilemap-chunk-extract-system.ts +5 -5
  573. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +19 -12
  574. package/src/typed-render-graph-primitives.ts +48 -0
  575. package/src/volume/passes.ts +46 -49
  576. package/dist/.tsbuildinfo +0 -1
  577. package/dist/chunk-5YADUCA7.mjs.map +0 -1
  578. package/dist/chunk-6OPXDQ2E.mjs.map +0 -1
  579. package/dist/chunk-BXBQQKFQ.mjs +0 -67
  580. package/dist/chunk-BXBQQKFQ.mjs.map +0 -1
  581. package/dist/chunk-FS2KNUQH.mjs.map +0 -1
  582. package/dist/chunk-PCHBPYML.mjs.map +0 -1
  583. package/dist/chunk-VFPLTKCU.mjs +0 -192
  584. package/dist/chunk-VFPLTKCU.mjs.map +0 -1
@@ -1,126 +1,23 @@
1
1
  import { type Result, RhiError } from '@forgeax/engine-rhi';
2
- import type { PointLightSnapshot, SpotLightSnapshot } from './render-system-extract';
3
- /** Byte size of one HDRP LightSlot in std430 (16 x f32). AC-11 absolute-value lock. */
4
- export declare const BYTES_PER_LIGHT_SLOT = 64;
5
- /**
6
- * LightSlot kind discriminant — closed enum matching WGSL `KIND_POINT` / `KIND_SPOT`.
7
- * Values are u32 bit-tags (not sequential); AC-12 exhaustive switch.
8
- */
9
- export declare const LightSlotKind: {
10
- readonly POINT: 0;
11
- readonly SPOT: 1;
12
- };
13
- export type LightSlotKind = (typeof LightSlotKind)[keyof typeof LightSlotKind];
14
- /**
15
- * Byte-offset layout of one LightSlot in std430 (16 f32 = 64 B).
16
- *
17
- * Mirrors the WGSL `LightSlot` struct field order byte-for-byte.
18
- * All offsets verified by w14 lightslot-layout.test.ts.
19
- *
20
- * feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
21
- * the prior u32x3 pad lanes at byte 52..64 carry shadow-side data on the HDRP
22
- * path. `kind_and_pad.x = kind` (u32), `.y = shadow identity` (i32, sentinel
23
- * -1 = no shadow). For point lights `.z/.w` carry near/far (f32 via bitcast);
24
- * for spot lights `.z` carries shadowIntensity and `.w` carries the PCF
25
- * kernel width (f32 via bitcast). The shader reads these lanes through
26
- * `bitcast<f32>(...)` to
27
- * keep the WGSL struct as `vec4<u32>` (alignment + naga_oil unchanged).
28
- */
29
- export declare const LIGHTSLOT_LAYOUT: {
30
- readonly byteSize: 64;
31
- readonly positionOffset: 0;
32
- readonly invRangeSquaredOffset: 12;
33
- readonly colorOffset: 16;
34
- readonly cosInnerOffset: 28;
35
- readonly directionOffset: 32;
36
- readonly cosOuterOffset: 44;
37
- readonly kindOffset: 48;
38
- readonly shadowPayloadOffset: 52;
39
- readonly shadowAtlasLayerOffset: 52;
40
- readonly shadowAtlasTileOffset: 52;
41
- readonly shadowNearOffset: 56;
42
- readonly shadowFarOffset: 60;
43
- readonly spotPcfKernelSizeOffset: 60;
44
- readonly floatCount: 16;
45
- readonly vec4Count: 4;
46
- };
2
+ import type { PointLightSnapshot, RectAreaDirectLightSnapshot, SpotLightSnapshot } from './render-system-extract';
47
3
  /**
48
4
  * Minimum storage-buffer count needed by the M3 record stage.
49
5
  *
50
6
  * 1. Mesh SSBO (entity_world + normalMatrix; per-renderable dynamic
51
7
  * offset, 256 B stride).
52
- * 2. PointLight std430 array (this feat).
53
- * 3. SpotLight std430 array (this feat).
8
+ * 2. Cluster light_data SSBO.
9
+ * 3. Cluster membership grid SSBO.
10
+ * 4. Cluster light-index-list SSBO.
54
11
  *
55
- * Plan R-4 + plan-strategy section 4 risk table: assert >= 4 to keep the
56
- * head-room margin for todo-125 (cluster expansion lifts to 4-5 entries).
12
+ * Cluster needs four storage-backed resources in the Standard bind group.
13
+ * This is the complete local-light transport.
57
14
  */
58
15
  export declare const STORAGE_BUFFER_MIN_REQUIRED = 4;
59
- /** Byte size of one PointLight std430 slot (vec4 * 2). */
60
- export declare const POINT_LIGHT_STD430_BYTES = 32;
61
- /**
62
- * Byte size of one SpotLight std430 slot (five 16-byte columns).
63
- *
64
- * feat-20260625-spot-light-shadow-mapping M2 / w8 (D-4) grew 48 -> 64 for
65
- * `shadowAtlasTile`; the visual-parity contract then adds a fifth column for
66
- * `shadowIntensity` rather than overloading the tile/PCF lanes.
67
- */
16
+ /** Byte size of one Point/Spot/Rect DirectLightSlot. */
17
+ export declare const BYTES_PER_DIRECT_LIGHT_SLOT = 80;
18
+ /** std430 slot aliases retained for the WebGPU ready-state sizing table. */
19
+ export declare const POINT_LIGHT_STD430_BYTES = 80;
68
20
  export declare const SPOT_LIGHT_STD430_BYTES = 80;
69
- /** Sentinel value for SpotLight slot[15] meaning "no shadow / clipped". */
70
- export declare const SPOT_LIGHT_SHADOW_TILE_SENTINEL = -1;
71
- /** Sentinel for a projector-only SpotLight with no shadow atlas tile. */
72
- export declare const SPOT_LIGHT_PROJECTOR_ONLY_SENTINEL = -2;
73
- /**
74
- * High-bit marker carried by the shared LightSlot identity lane when this
75
- * SpotLight is the one projector selected for the frame. The lower 30 bits
76
- * retain the shadow-atlas tile (0..3), or zero for projector-only lights, so
77
- * one 64-byte slot carries both shadow and projector identity without growing
78
- * the cluster UBO or inventing a second light list.
79
- */
80
- export declare const SPOT_LIGHT_PROJECTOR_FLAG = 1073741824;
81
- export declare const SPOT_LIGHT_TILE_MASK: number;
82
- /** Byte size of the array header (count u32 + 12 B pad to 16 B stride). */
83
- export declare const LIGHT_ARRAY_HEADER_BYTES = 16;
84
- /** Maximum number of slots packed in the first-slice cap layout (D-S3). */
85
- export declare const LIGHT_ARRAY_MAX_SLOTS = 4;
86
- /** Sentinel value for PointLight slot[7] / LightSlot pad meaning "no shadow". */
87
- export declare const POINT_LIGHT_SHADOW_LAYER_SENTINEL = -1;
88
- /**
89
- * Pack one PointLightSnapshot into 8 floats / 32 B byte-for-byte std430.
90
- *
91
- * Returns a fresh `Float32Array` per call; `Float32Array.byteLength === 32`
92
- * by construction (Float32Array(8).buffer.byteLength === 32). Slot 7
93
- * (byte 28..32) carries `shadowAtlasLayer: i32` (sentinel -1 = no shadow,
94
- * 0..3 = cube_array atlas layer index for shadow casters). The lane is
95
- * written through an Int32Array view of the same backing ArrayBuffer so the
96
- * shader's `i32` read at byte 28..32 of `struct PointLight` (common.wgsl)
97
- * sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
98
- */
99
- export declare function packPointLight(snap: PointLightSnapshot): Float32Array;
100
- /**
101
- * Pack one SpotLightSnapshot into 20 floats (80 B byte-for-byte std430).
102
- *
103
- * cosInner / cosOuter ride the otherwise-padding `.w` lanes of the
104
- * `color` and `direction` vec4 columns (AC-04 c + plan D-S2 16 B alignment
105
- * via packing rather than padding rows). Slot 15 carries `shadowAtlasTile: i32`
106
- * (sentinel -1 = unassigned/clipped, 0..3 = atlas tile) written through an
107
- * Int32Array view so the shader's `i32` read at byte 60..64 of struct SpotLight
108
- * (common.wgsl) sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
109
- * Slots 12..14 carry the shared receiver controls; slot 15 remains the i32
110
- * shadow tile sentinel; slot 16 carries shadowIntensity and slots 17..19 are
111
- * alignment tail padding. Surface and volume consumers therefore share one
112
- * extracted shadow configuration.
113
- */
114
- export declare function packSpotLight(snap: SpotLightSnapshot): Float32Array;
115
- /**
116
- * Pack the 16-byte std430 array header (count u32 + 12 B pad) for the
117
- * point/spot light storage buffers.
118
- *
119
- * Returns a fresh `ArrayBuffer` so callers can either re-view it as
120
- * `Uint8Array` for `queue.writeBuffer` or as `Uint32Array` for in-place
121
- * inspection.
122
- */
123
- export declare function packLightArrayHeader(count: number): ArrayBuffer;
124
21
  /**
125
22
  * Cap gate at createRenderer time: check whether the device has enough
126
23
  * storage-buffer slots for the PBR pipeline (M3 requires
@@ -136,46 +33,61 @@ export declare function packLightArrayHeader(count: number): ArrayBuffer;
136
33
  *
137
34
  * Uniform-fallback path decision (plan D-5): `cap === 0` is the wgpu
138
35
  * WebGL2 backend signal (`downlevel_webgl2_defaults().limits.
139
- * maxStorageBuffersPerShaderStage = 0`). Uniform fallback covers pointLight
140
- * + spotLight + meshes + instances + skin palette — every storage-buffer
141
- * entry in the PBR pipeline switches to `uniform`.
36
+ * maxStorageBuffersPerShaderStage = 0`). It remains a mesh/instance fallback;
37
+ * local-light frames require the single Cluster storage transport.
142
38
  */
39
+ /** Closed direct-light kind carried by the unified five-row slot. */
40
+ export declare const DirectLightSlotKind: {
41
+ readonly POINT: 0;
42
+ readonly SPOT: 1;
43
+ readonly RECT_AREA: 2;
44
+ };
45
+ export type DirectLightSlotKind = 'point' | 'spot' | 'rect-area';
46
+ /** Metadata identity used for absent shadow, IES, and Cookie resources. */
47
+ export declare const DIRECT_LIGHT_SLOT_METADATA_SENTINEL = 4294967295;
143
48
  /**
144
- * Optional shadow info attached to a HDRP LightSlot for point lights with a
145
- * companion `PointLightShadow` component. Sentinel `layer = -1` (the default
146
- * when the snapshot has no shadow) makes the shader skip cube_array sampling
147
- * and stay on the unshadowed `evalPoint` path.
148
- *
149
- * `near` / `far` ride the otherwise-pad lanes (`kind_and_pad.zw` in the WGSL
150
- * struct, byte 56..64) and feed the depth-ref reconstruction in
151
- * `evalPointShadowed`. Spot lights (and shadow-less point lights) leave these
152
- * lanes zero per std430 init.
49
+ * SpotLight projector marker carried in the shared shadow identity word. The
50
+ * lower 30 bits retain the selected shadow tile; projector-only spots use tile
51
+ * zero because their matrix is deliberately published in View lane zero.
153
52
  */
154
- export interface PointShadowSlotInfo {
155
- readonly shadowAtlasLayer: number;
156
- readonly near: number;
157
- readonly far: number;
158
- }
53
+ export declare const DIRECT_LIGHT_SLOT_PROJECTOR_FLAG = 1073741824;
54
+ export declare const DIRECT_LIGHT_SLOT_TILE_MASK: number;
55
+ /** Byte size of the five-row Point/Spot/Rect transport slot. */
56
+ export declare const DIRECT_LIGHT_SLOT_FLOAT_COUNT: number;
57
+ /** Five vec4 rows shared by host packing and the WGSL direct-light consumer. */
58
+ export declare const DIRECT_LIGHT_SLOT_LAYOUT: {
59
+ readonly byteSize: 80;
60
+ readonly rowByteOffsets: readonly [0, 16, 32, 48, 64];
61
+ readonly positionOffset: 0;
62
+ readonly rangeOffset: 12;
63
+ readonly colorOffset: 16;
64
+ readonly firstAngleOffset: 28;
65
+ readonly primaryAxisOffset: 32;
66
+ readonly secondAngleOffset: 44;
67
+ readonly auxiliaryAxisOffset: 48;
68
+ readonly metadataByteOffset: 64;
69
+ readonly kindByteOffset: 64;
70
+ readonly shadowByteOffset: 68;
71
+ readonly iesProfileByteOffset: 72;
72
+ readonly cookieByteOffset: 76;
73
+ /** Spot-only roll angle stored in the fourth row's w lane. */
74
+ readonly rollDegByteOffset: 60;
75
+ readonly floatCount: number;
76
+ readonly vec4Count: 5;
77
+ };
78
+ type DirectLightModifierMetadata = {
79
+ readonly iesProfileSlice?: number;
80
+ readonly cookieSlice?: number;
81
+ };
82
+ export type DirectLightSnapshot = (PointLightSnapshot & DirectLightModifierMetadata) | (SpotLightSnapshot & DirectLightModifierMetadata) | (RectAreaDirectLightSnapshot & DirectLightModifierMetadata);
159
83
  /**
160
- * Pack one PointLightSnapshot or SpotLightSnapshot into a 64-byte LightSlot
161
- * (16 floats, std430). Point lights fill `cosInner=1.0`, `direction=vec3(0)`,
162
- * `cosOuter=0.0`, `kind=POINT(0)`. Spot lights fill all fields verbatim;
163
- * `direction` is already normalized by extract and this owner never repeats
164
- * that operation.
165
- *
166
- * feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
167
- * the optional point `shadow` info threads through to bytes 52..64 as
168
- * `(shadowAtlasLayer i32, near f32, far f32)`. Spot snapshots write their
169
- * `shadowAtlasTile` directly into the same identity lane, put shadowIntensity
170
- * in the `.z` lane, and the PCF kernel width in `.w`. The shader reads `near`/`far`
171
- * through `bitcast<f32>(kind_and_pad.zw)` so the WGSL struct stays
172
- * `kind_and_pad: vec4<u32>` (alignment + naga_oil compose unchanged). When
173
- * `shadow` is undefined (no PointLightShadow) the lanes default to
174
- * `(layer = -1, 0, 0)` -- shader gates on `layer >= 0` so unshadowed lights
175
- * stay on the `evaluate_point_light` path. Spot lights write their tile or -1.
84
+ * Pack one Point, Spot, or Rect snapshot into the unified five-row slot.
176
85
  *
177
- * Returns a fresh `Float32Array(16)` per call.
86
+ * Row 0 is position plus inverse range. Row 1 is color plus the first
87
+ * angular/size fact. Row 2 is the primary axis plus the second angular/size
88
+ * fact. Row 3 is the auxiliary Rect axis. Row 4 is four u32 identities.
178
89
  */
179
- export declare function packLightSlot(snap: PointLightSnapshot | SpotLightSnapshot, shadow?: PointShadowSlotInfo, projectorSelected?: boolean): Float32Array;
90
+ export declare function packDirectLightSlot(snapshot: DirectLightSnapshot, projectorSelected?: boolean): Float32Array;
180
91
  export declare function assertStorageBufferCap(cap: number): Result<boolean, RhiError>;
92
+ export {};
181
93
  //# sourceMappingURL=light-buffer-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"AAsDA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA4BrF,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,yEAAyE;AACzE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,oBAAoB,QAAgC,CAAC;AAClE,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAarE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,CA6BnE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAM/D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,EAC5C,MAAM,CAAC,EAAE,mBAAmB,EAC5B,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CAmDd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAkB7E"}
1
+ {"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,KAA8B,CAAC;AACpE,eAAO,MAAM,uBAAuB,KAA8B,CAAC;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjE,2EAA2E;AAC3E,eAAO,MAAM,mCAAmC,aAAa,CAAC;AAC9D;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,aAAa,CAAC;AAC3D,eAAO,MAAM,2BAA2B,QAAuC,CAAC;AAChF,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,QACoB,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;IAenC,8DAA8D;;;;CAItD,CAAC;AAEX,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,GAClD,CAAC,iBAAiB,GAAG,2BAA2B,CAAC,GACjD,CAAC,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;AAMhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,mBAAmB,EAC7B,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CAqEd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAkB7E"}
@@ -1,4 +1,4 @@
1
- import type { MaterialAsset, MaterialColorSpace, MaterialRenderState, MaterialValue } from '@forgeax/engine-types';
1
+ import type { MaterialAsset, MaterialRenderState, MaterialValue } from '@forgeax/engine-types';
2
2
  export type MaterialTransmissionValidationReason = 'non-finite' | 'range' | 'shape' | 'blend' | 'depth-write';
3
3
  /** Structured authoring failure for the Standard transmission contract. */
4
4
  export declare class MaterialTransmissionContractError extends Error {
@@ -16,20 +16,24 @@ export declare class MaterialTransmissionContractError extends Error {
16
16
  }
17
17
  export declare const SPRITE_PREMULTIPLIED_ALPHA_BLEND: GPUBlendState;
18
18
  declare const SPRITE_MODULE = "forgeax_material::sprite";
19
+ export type MaterialColorTuple3 = readonly [number, number, number];
20
+ export type MaterialColorTuple4 = readonly [number, number, number, number];
21
+ export type MaterialColorInput3 = MaterialColorTuple3 | string | number;
22
+ export type MaterialColorInput4 = MaterialColorTuple4 | string | number;
23
+ /** Convert an explicit sRGB numeric tuple into the linear tuple factories store. */
24
+ export declare function srgb(input: MaterialColorTuple3): MaterialColorTuple3;
25
+ export declare function srgb(input: MaterialColorTuple4): MaterialColorTuple4;
19
26
  interface UnlitOpts {
20
- /** Asset-side authored color space. Defaults to sRGB. */
21
- readonly colorSpace?: MaterialColorSpace;
22
27
  readonly castShadow?: boolean;
23
28
  readonly baseColorTexture?: MaterialValue;
24
29
  readonly alphaCutoff?: number;
25
30
  readonly renderState?: MaterialRenderState;
26
31
  readonly queue?: number;
27
32
  }
28
- declare function unlit(rgba: readonly [number, number, number, number], opts?: UnlitOpts): MaterialAsset;
33
+ declare function unlit(rgba: MaterialColorInput4, opts?: UnlitOpts): MaterialAsset;
29
34
  interface StandardOpts {
30
- /** Asset-side authored color space for baseColor/emissive/specularTint. Defaults to sRGB. */
31
- readonly colorSpace?: MaterialColorSpace;
32
- readonly baseColor: readonly [number, number, number, number];
35
+ /** Numeric tuples are linear; Hex/CSS strings and numbers are sRGB inputs. */
36
+ readonly baseColor: MaterialColorInput4;
33
37
  readonly metallic?: number;
34
38
  readonly roughness?: number;
35
39
  /** Texture channel used for the metallic factor; glTF defaults to B (2). */
@@ -38,9 +42,28 @@ interface StandardOpts {
38
42
  readonly roughnessChannel?: number;
39
43
  readonly clearcoat?: number;
40
44
  readonly clearcoatRoughness?: number;
41
- readonly specularTint?: readonly [number, number, number];
42
- readonly specularTintTexture?: MaterialValue;
43
- readonly emissive?: readonly [number, number, number];
45
+ readonly clearcoatTexture?: MaterialValue;
46
+ readonly clearcoatRoughnessTexture?: MaterialValue;
47
+ readonly clearcoatNormalTexture?: MaterialValue;
48
+ readonly clearcoatNormalScale?: number;
49
+ readonly anisotropyStrength?: number;
50
+ readonly anisotropyRotation?: number;
51
+ readonly anisotropyTexture?: MaterialValue;
52
+ readonly sheenColor?: MaterialColorInput3;
53
+ readonly sheenRoughness?: number;
54
+ readonly sheenColorTexture?: MaterialValue;
55
+ readonly sheenRoughnessTexture?: MaterialValue;
56
+ readonly iridescence?: number;
57
+ readonly iridescenceIor?: number;
58
+ readonly iridescenceThicknessMinimum?: number;
59
+ readonly iridescenceThicknessMaximum?: number;
60
+ readonly iridescenceTexture?: MaterialValue;
61
+ readonly iridescenceThicknessTexture?: MaterialValue;
62
+ readonly specular?: number;
63
+ readonly specularColor?: MaterialColorInput3;
64
+ readonly specularTexture?: MaterialValue;
65
+ readonly specularColorTexture?: MaterialValue;
66
+ readonly emissive?: MaterialColorInput3;
44
67
  readonly emissiveIntensity?: number;
45
68
  readonly emissiveTexture?: MaterialValue;
46
69
  readonly baseColorTexture?: MaterialValue;
@@ -64,6 +87,7 @@ declare function standard(opts: StandardOpts): MaterialAsset;
64
87
  export declare const Materials: {
65
88
  readonly unlit: typeof unlit;
66
89
  readonly standard: typeof standard;
90
+ readonly srgb: typeof srgb;
67
91
  };
68
92
  export { SPRITE_MODULE };
69
93
  //# sourceMappingURL=materials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAGlB,mBAAmB,EACnB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,oCAAoC,GAC5C,YAAY,GACZ,OAAO,GACP,OAAO,GACP,OAAO,GACP,aAAa,CAAC;AAElB,2EAA2E;AAC3E,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,QAAQ,CAAC,IAAI,EAAG,wCAAwC,CAAU;IAClE,QAAQ,CAAC,QAAQ,gFAAgF;IACjG,QAAQ,CAAC,IAAI,sFACwE;IACrF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,wCAAwC,CAAC;QACxD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9B,QAAQ,CAAC,SAAS,EACd,cAAc,GACd,KAAK,GACL,WAAW,GACX,kBAAkB,GAClB,qBAAqB,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;QACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;gBAGA,SAAS,EAAE,CAAC,OAAO,iCAAiC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACnF,MAAM,EAAE,oCAAoC,EAC5C,MAAM,CAAC,EAAE,OAAO;CAYnB;AAED,eAAO,MAAM,gCAAgC,EAAE,aAG9C,CAAC;AAIF,QAAA,MAAM,aAAa,6BAA6B,CAAC;AAwEjD,UAAU,SAAS;IACjB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CAoB/F;AAED,UAAU,YAAY;IACpB,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,aAAa,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA0BD,iBAAS,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAiFnD;AAED,eAAO,MAAM,SAAS;;;CAA+B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,62 @@ export interface MeshMaterialBindingDiagnostic {
7
7
  /** Structured detail mirrors the renderer error for the active frame. */
8
8
  readonly detail?: Readonly<AssetErrorDetail>;
9
9
  }
10
+ /** Detached final-frame receipt for the Standard material IBL binding chain. */
11
+ export interface IblBindingResourceInspection {
12
+ readonly viewIdentity: number;
13
+ readonly samplerIdentity: number;
14
+ readonly deviceGeneration: number;
15
+ }
16
+ export interface IblBindingEntryInspection {
17
+ readonly binding: number;
18
+ readonly kind: 'textureView' | 'sampler' | 'buffer';
19
+ readonly resourceIdentity: number;
20
+ }
21
+ export interface IblBindingInspection {
22
+ readonly status: 'binding-chain-consistent' | 'binding-chain-mismatch';
23
+ readonly frameId: number;
24
+ readonly deviceGeneration: number;
25
+ readonly active: 'active' | 'fallback';
26
+ readonly cache: {
27
+ readonly identity: number;
28
+ readonly generation: number;
29
+ readonly prefilterMipCount: number;
30
+ readonly prefilterViewMipCount: number;
31
+ };
32
+ readonly sampler: {
33
+ readonly expected: {
34
+ readonly magFilter: 'linear';
35
+ readonly minFilter: 'linear';
36
+ readonly mipmapFilter: 'linear';
37
+ readonly addressModeU: 'clamp-to-edge';
38
+ readonly addressModeV: 'clamp-to-edge';
39
+ readonly addressModeW: 'clamp-to-edge';
40
+ };
41
+ readonly identities: readonly number[];
42
+ };
43
+ readonly resources: {
44
+ readonly irradiance: IblBindingResourceInspection;
45
+ readonly prefilter: IblBindingResourceInspection;
46
+ readonly brdfLut: IblBindingResourceInspection;
47
+ readonly intensityBufferIdentity: number;
48
+ };
49
+ readonly material?: {
50
+ readonly bindGroupIdentity: number;
51
+ readonly materialBglIdentity: number;
52
+ readonly cache: 'hit' | 'miss';
53
+ readonly skylightBindingStart: number;
54
+ readonly entries: readonly IblBindingEntryInspection[];
55
+ readonly reflectionBindings: readonly number[];
56
+ };
57
+ readonly pipeline?: {
58
+ readonly pipelineIdentity: number;
59
+ readonly effectiveMaterialLayoutIdentity: string | undefined;
60
+ readonly materialBglIdentity: number;
61
+ readonly bindGroupIdentity: number;
62
+ readonly drawFrameId: number;
63
+ };
64
+ readonly errors: readonly string[];
65
+ }
10
66
  export interface ResolvedMeshMaterialBinding {
11
67
  readonly handle: number;
12
68
  readonly source: MeshMaterialBindingSource;
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-material-bindings.d.ts","sourceRoot":"","sources":["../src/mesh-material-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-material-bindings.d.ts","sourceRoot":"","sources":["../src/mesh-material-bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CameraSnapshot } from './render-contract';
2
+ /** Build the camera-facing proxy geometry used by GPU occlusion queries. */
3
+ export declare function buildOcclusionProxyVertices(aabb: ArrayLike<number>, world: ArrayLike<number>, camera: CameraSnapshot): Float32Array;
4
+ //# sourceMappingURL=occlusion-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"occlusion-proxy.d.ts","sourceRoot":"","sources":["../src/occlusion-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,4EAA4E;AAC5E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,cAAc,GACrB,YAAY,CAsDd"}
@@ -1,4 +1,4 @@
1
- import type { BindGroup, BindGroupEntry, BindGroupLayout, BindGroupLayoutDescriptor, Buffer, PipelineLayout, RhiDevice, Sampler, TextureView } from '@forgeax/engine-rhi';
1
+ import type { BindGroup, BindGroupEntry, BindGroupLayout, Buffer, PipelineLayout, RhiDevice, Sampler, TextureFormat, TextureView } from '@forgeax/engine-rhi';
2
2
  import { type ShaderCatalog } from '@forgeax/engine-shader';
3
3
  import { type ParamSchemaEntry } from '@forgeax/engine-types';
4
4
  import type { PipelineSpec } from './pipeline-spec-types';
@@ -18,6 +18,10 @@ export interface PbrPipelineLayoutBundle {
18
18
  readonly meshArrayBgl: BindGroupLayout;
19
19
  /** Per-instance storage BindGroupLayout (slot 3). */
20
20
  readonly instancesBgl: BindGroupLayout;
21
+ /** Probe-enabled slot-3 BGL; aliases `instancesBgl` when probes are unavailable. */
22
+ readonly probeInstancesBgl: BindGroupLayout;
23
+ /** Same pipeline layout with the probe-enabled slot-3 BGL, when supported. */
24
+ readonly probePipelineLayout: PipelineLayout | null;
21
25
  /**
22
26
  * Same 4 layouts in slot order. Useful for assertion sites that check the
23
27
  * pipeline-layout `bindGroupLayouts` array shape (t57 (a) + (d)).
@@ -29,14 +33,18 @@ export interface PbrPipelineLayoutBundle {
29
33
  BindGroupLayout
30
34
  ];
31
35
  }
36
+ /** Derives the Standard PBR attachment list without allocating a closed path. */
37
+ export declare function standardPbrColorFormats(baseFormat: TextureFormat, fallbackDemand: boolean): readonly TextureFormat[];
32
38
  /**
33
39
  * The built-in standard-PBR material paramSchema's texture/user-region shape,
34
40
  * used as the fallback when the material BGL is built without a registry
35
- * (the caps-driven `buildPbrPipelineLayouts` seam). Declares the 8 Standard
36
- * user-region textures + a numeric UBO run; `derive()` collapses the numerics
37
- * into binding 0 and emits sampler/texture pairs at 1..6 — byte-equivalent to
38
- * the legacy fixed base-7. The shared PBR parameter contract comes from the
39
- * shader package; this module only derives the GPU layout.
41
+ * (the caps-driven `buildPbrPipelineLayouts` seam). Declares the canonical
42
+ * Standard user-region textures + a numeric UBO run; `derive()` collapses the
43
+ * numerics into binding 0 and emits one sampler/texture pair per declared
44
+ * texture. Physical map pairs stay outside this boot region and are appended
45
+ * only for an authored root that declares them. The shared PBR parameter
46
+ * contract comes from the shader package; this module only derives the GPU
47
+ * layout.
40
48
  */
41
49
  /**
42
50
  * Build the PBR material BGL **user-region** from a paramSchema via the
@@ -47,9 +55,10 @@ export interface PbrPipelineLayoutBundle {
47
55
  * custom schema (e.g. parallax + heightTexture) shifts the injection region by
48
56
  * one sampler/texture pair automatically.
49
57
  *
50
- * The built-in `default-standard-pbr` paramSchema declares exactly 8 textures,
51
- * so this derives to binding 0 UBO + 8 pairs = 17 entries. Injection is appended
52
- * after that derived region.
58
+ * The canonical `STANDARD_PIPELINE_PARAM_SCHEMA` currently declares seven
59
+ * non-physical textures, so this derives to binding 0 UBO + seven pairs = 15
60
+ * entries. IBL and transmission injection are appended after that region;
61
+ * authored physical maps are appended after the engine-owned injections.
53
62
  *
54
63
  * One material-UBO convention is layered on top of the pure `derive()` output:
55
64
  * binding 0 is patched to `{ type: 'uniform', hasDynamicOffset: true }` with
@@ -62,7 +71,7 @@ export interface PbrPipelineLayoutBundle {
62
71
  * @param paramSchema - the material shader's paramSchema (defaults to the
63
72
  * built-in standard-PBR shape when omitted, for the caps-driven seam).
64
73
  */
65
- export declare function buildPbrMaterialUserRegionEntries(paramSchema?: readonly ParamSchemaEntry[]): GPUBindGroupLayoutEntry[];
74
+ export declare function buildPbrMaterialUserRegionEntries(paramSchema?: readonly ParamSchemaEntry[], excludedTextureFields?: readonly string[]): GPUBindGroupLayoutEntry[];
66
75
  export type InjectionKind = keyof typeof INJECTION_KIND_LENGTHS;
67
76
  /**
68
77
  * Append the engine-injection BGL entries for the given `kind` after the
@@ -87,6 +96,17 @@ export declare const INJECTION_KIND_LENGTHS: {
87
96
  lightmap: number;
88
97
  transmission: number;
89
98
  };
99
+ export declare function physicalTextureFields(paramSchema: readonly ParamSchemaEntry[]): readonly string[];
100
+ export declare function appendTextureInjection(bgl: readonly GPUBindGroupLayoutEntry[], fields: readonly string[]): GPUBindGroupLayoutEntry[];
101
+ /**
102
+ * Return the stable identity of the merged material bind-group layout.
103
+ *
104
+ * This is deliberately derived from the same descriptor builder consumed by
105
+ * the device path. Callers use it to keep pipeline, bind-group, and
106
+ * frame-local lookup caches on one layout identity even when equivalent
107
+ * paramSchema arrays were allocated independently.
108
+ */
109
+ export declare function materialBindGroupLayoutIdentity(shaderId: string, paramSchema: readonly ParamSchemaEntry[]): string;
90
110
  /**
91
111
  * Caps shape consumed by the BGL factory functions for storage-buffer vs
92
112
  * uniform-buffer branching. Mirrors the two fields the engine reads from
@@ -94,13 +114,20 @@ export declare const INJECTION_KIND_LENGTHS: {
94
114
  */
95
115
  export interface PbrCaps {
96
116
  readonly storageBuffer: boolean;
117
+ /**
118
+ * Whether the selected material variant declares the optional extended
119
+ * lighting view resources. The default keeps the historical helper shape
120
+ * for callers that build the canonical full PBR layout; the renderer passes
121
+ * the device/variant decision explicitly.
122
+ */
123
+ readonly extendedLighting?: boolean;
124
+ /** Selects the optional binding(1) ProbeBlendRecord lane. */
125
+ readonly probeBlend?: boolean;
97
126
  /** Whether the device can carry the optional SpotLight projector texture. */
98
127
  readonly projectorAvailable?: boolean;
99
128
  }
100
129
  /**
101
130
  * The view BGL entry list. binding 0 = view UBO (vertex + fragment);
102
- * binding 1 = pointLights (storage or uniform, per caps);
103
- * binding 2 = spotLights (storage or uniform, per caps);
104
131
  * binding 3 = directional shadowMap atlas (texture_depth_2d, vertex+fragment).
105
132
  * feat-20260613-csm-cascaded-shadow-maps: this is the CSM atlas — N
106
133
  * cascades tiled into one 2D depth texture, sampled via per-cascade UV
@@ -140,9 +167,9 @@ export interface PbrCaps {
140
167
  * layout and consumed only by the dedicated points-lines shader).
141
168
  * Isolated here so M4 round-4 tests can recreate the layout.
142
169
  *
143
- * feat-20260526-pbr-uniform-fallback-no-storage-buffer M3 / w9:
144
- * caps.storageBuffer===false switches bindings 1+2 from
145
- * 'read-only-storage' to 'uniform'.
170
+ * Local lights are not part of the view group. Standard material variants
171
+ * consume the one Cluster payload in group(2), while this group retains only
172
+ * camera and shadow resources.
146
173
  */
147
174
  export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayoutEntry[];
148
175
  /**
@@ -150,8 +177,8 @@ export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayou
150
177
  * material, mesh-array, instances]`; the material BGL is derived from the
151
178
  * standard material schema and engine injection chain.
152
179
  *
153
- * `caps.storageBuffer===false` switches every storage-buffer BGL entry
154
- * (view bindings 1+2, mesh-array, instances) to `uniform`.
180
+ * `caps.storageBuffer===false` switches the mesh-array and instances entries
181
+ * to `uniform`; local-light resources are never part of this view group.
155
182
  *
156
183
  * Throws on each `createBindGroupLayout` / `createPipelineLayout` Result
157
184
  * failure -- the engine bootstrap path (createRenderer) wraps the call in
@@ -169,6 +196,7 @@ export declare function buildPbrPipelineLayouts(device: PbrPipelineDevice, caps:
169
196
  */
170
197
  export declare const SKIN_MATERIAL_SHADER_ID: "forgeax::pbr-skin";
171
198
  export declare const SHADOW_CASTER_SHADER_ID: "forgeax::default-shadow-caster";
199
+ export declare function isStandardPbrSkinMaterialShader(shaderId: string | undefined): boolean;
172
200
  export declare function shadowCasterVariantSet(storageBuffer: boolean, skinned: boolean): string;
173
201
  export declare function isSkinnedShadowCasterVariant(materialShaderId: string | undefined, variantSet: string | undefined): boolean;
174
202
  export type PipelineGroup2Contract = 'mesh' | 'skin' | 'cluster' | 'skin-cluster';
@@ -176,6 +204,14 @@ export type PipelineGroup2Contract = 'mesh' | 'skin' | 'cluster' | 'skin-cluster
176
204
  export declare function resolvePipelineGroup2Contract(source: string): PipelineGroup2Contract;
177
205
  /** Returns true for the engine-shipped standard-PBR material shader family. */
178
206
  export declare function isStandardPbrMaterialShader(shaderId: string | undefined): boolean;
207
+ /**
208
+ * Return true only for the two engine-owned Standard roots. Authored Standard
209
+ * aliases intentionally remain outside this set: their cooked root schema may
210
+ * omit transmission or other optional resources, so their compact user-region
211
+ * layout must be derived from that artifact instead of borrowing the boot
212
+ * layout's reserved slots.
213
+ */
214
+ export declare function isCanonicalStandardPbrMaterialShader(shaderId: string | undefined): boolean;
179
215
  /**
180
216
  * Build the PBR skin pipeline layout (4 slots `[view, material,
181
217
  * mesh-array(3-entry), instances]`). View / material / instances BGLs are
@@ -261,8 +297,9 @@ export declare const SPRITE_PASS_PER_INSTANCE_REGION_VARIANT_SET = "";
261
297
  * - `'unlit-material'` — 7 entries: base PBR material only (no inject)
262
298
  * - `'hdrp-7-slot'` — 7 entries (binding 0 + 3..8): HDRP cluster + SSAO group(2) BGL
263
299
  * 2. Caps-driven literal shapes (no shader):
264
- * - `'pbr-view'` — 12 entries: view UBO + lights + shadow bindings,
265
- * projector texture/sampler (11/12), and the Points/Lines UBO (10)
300
+ * - `'pbr-view'` — camera/shadow bindings, optional projector
301
+ * texture/sampler (11/12), and the Points/Lines UBO (10). Local lights
302
+ * are carried exclusively by the Standard Cluster group(2).
266
303
  * (directional 3/4, point 5/6, cascade 7, spot atlas 8; the former
267
304
  * spot lightViewProj matrices moved into the View UBO)
268
305
  * - `'pbr-mesh-array'` — 1 entry: per-entity mesh SSBO (dynamic-offset)
@@ -297,9 +334,9 @@ export interface BindGroupLayoutDescriptorOutput {
297
334
  readonly entries: GPUBindGroupLayoutEntry[];
298
335
  }
299
336
  /** Build the canonical HDRP group(2) bind-group layout. */
300
- export declare function createHdrpBindGroupLayoutDescriptor(): BindGroupLayoutDescriptor;
337
+ export declare function createHdrpBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
301
338
  /** Build the HDRP group(2) layout for the clustered skin variant. */
302
- export declare function createHdrpSkinBindGroupLayoutDescriptor(): BindGroupLayoutDescriptor;
339
+ export declare function createHdrpSkinBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
303
340
  export declare function buildBindGroupLayoutDescriptor(spec: PipelineSpec, options: {
304
341
  kind: BglKind;
305
342
  registry?: ShaderCatalog;
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}