@aura3d/engine 4.3.7 → 4.6.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 (577) hide show
  1. package/README.md +1 -0
  2. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  3. package/dist/animation/AnimationTrack.js +3 -1
  4. package/dist/animation/AnimationTrack.js.map +1 -1
  5. package/dist/animation/pose/BoneMask.d.ts +8 -0
  6. package/dist/animation/pose/BoneMask.d.ts.map +1 -1
  7. package/dist/animation/pose/BoneMask.js +18 -1
  8. package/dist/animation/pose/BoneMask.js.map +1 -1
  9. package/dist/animation/pose/PoseMixer.d.ts +18 -2
  10. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  11. package/dist/animation/pose/PoseMixer.js +55 -4
  12. package/dist/animation/pose/PoseMixer.js.map +1 -1
  13. package/dist/animation/pose/RetargetWorker.d.ts +8 -1
  14. package/dist/animation/pose/RetargetWorker.d.ts.map +1 -1
  15. package/dist/animation/pose/RetargetWorker.js +30 -2
  16. package/dist/animation/pose/RetargetWorker.js.map +1 -1
  17. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  18. package/dist/assets/GLTFAnimationRuntime.js +11 -4
  19. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  20. package/dist/assets/GLTFLoader.d.ts +2 -0
  21. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  22. package/dist/assets/GLTFLoader.js +17 -3
  23. package/dist/assets/GLTFLoader.js.map +1 -1
  24. package/dist/aura3d-cli/index.d.ts +6 -0
  25. package/dist/aura3d-cli/index.d.ts.map +1 -1
  26. package/dist/aura3d-cli/index.js +28 -0
  27. package/dist/aura3d-cli/index.js.map +1 -1
  28. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  29. package/dist/aura3d-cli/migrate-three/emit.js +109 -29
  30. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  31. package/dist/aura3d-cli/migrate-three/mappings.d.ts +15 -0
  32. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  33. package/dist/aura3d-cli/migrate-three/mappings.js +70 -60
  34. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  35. package/dist/aura3d-cli/migrate-three/parse.d.ts +9 -0
  36. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  37. package/dist/aura3d-cli/migrate-three/parse.js +1 -1
  38. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  39. package/dist/create-aura3d/cli.js +22 -2
  40. package/dist/create-aura3d/cli.js.map +1 -1
  41. package/dist/create-aura3d/index.d.ts +11 -0
  42. package/dist/create-aura3d/index.d.ts.map +1 -1
  43. package/dist/create-aura3d/index.js +9 -2
  44. package/dist/create-aura3d/index.js.map +1 -1
  45. package/dist/create-aura3d/template-assets.d.ts +53 -0
  46. package/dist/create-aura3d/template-assets.d.ts.map +1 -0
  47. package/dist/create-aura3d/template-assets.js +116 -0
  48. package/dist/create-aura3d/template-assets.js.map +1 -0
  49. package/dist/engine/agent-api/Clock.d.ts +9 -3
  50. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  51. package/dist/engine/agent-api/Clock.js +17 -6
  52. package/dist/engine/agent-api/Clock.js.map +1 -1
  53. package/dist/engine/agent-api/animationMask.d.ts +26 -0
  54. package/dist/engine/agent-api/animationMask.d.ts.map +1 -0
  55. package/dist/engine/agent-api/animationMask.js +38 -0
  56. package/dist/engine/agent-api/animationMask.js.map +1 -0
  57. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
  58. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  59. package/dist/engine/agent-api/app/actorAnimationHandle.js +26 -3
  60. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  61. package/dist/engine/agent-api/app/canvas.d.ts +21 -0
  62. package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
  63. package/dist/engine/agent-api/app/canvas.js +119 -7
  64. package/dist/engine/agent-api/app/canvas.js.map +1 -1
  65. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  66. package/dist/engine/agent-api/app/createAuraApp.js +153 -14
  67. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  68. package/dist/engine/agent-api/app/frameLoop.d.ts +13 -0
  69. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  70. package/dist/engine/agent-api/app/frameLoop.js +118 -15
  71. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  72. package/dist/engine/agent-api/app/mountRenderer.d.ts +6 -1
  73. package/dist/engine/agent-api/app/mountRenderer.d.ts.map +1 -1
  74. package/dist/engine/agent-api/app/mountRenderer.js +2 -2
  75. package/dist/engine/agent-api/app/mountRenderer.js.map +1 -1
  76. package/dist/engine/agent-api/app/parentFit.d.ts +20 -2
  77. package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -1
  78. package/dist/engine/agent-api/app/parentFit.js +13 -9
  79. package/dist/engine/agent-api/app/parentFit.js.map +1 -1
  80. package/dist/engine/agent-api/app/renderPath.d.ts +86 -0
  81. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -0
  82. package/dist/engine/agent-api/app/renderPath.js +269 -0
  83. package/dist/engine/agent-api/app/renderPath.js.map +1 -0
  84. package/dist/engine/agent-api/app/rendererOptions.d.ts +31 -1
  85. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  86. package/dist/engine/agent-api/app/rendererOptions.js +74 -7
  87. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  88. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  89. package/dist/engine/agent-api/app/routeState.js +8 -3
  90. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  91. package/dist/engine/agent-api/app/runtimeNodes.d.ts +2 -0
  92. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  93. package/dist/engine/agent-api/app/runtimeNodes.js +111 -2
  94. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  95. package/dist/engine/agent-api/camera/extension.d.ts.map +1 -1
  96. package/dist/engine/agent-api/camera/extension.js +2 -2
  97. package/dist/engine/agent-api/camera/extension.js.map +1 -1
  98. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts +2 -0
  99. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts.map +1 -1
  100. package/dist/engine/agent-api/camera/rigs/fromSpec.js +11 -1
  101. package/dist/engine/agent-api/camera/rigs/fromSpec.js.map +1 -1
  102. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  103. package/dist/engine/agent-api/compiler/animation.js +4 -2
  104. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  105. package/dist/engine/agent-api/compiler/camera.d.ts.map +1 -1
  106. package/dist/engine/agent-api/compiler/camera.js +10 -0
  107. package/dist/engine/agent-api/compiler/camera.js.map +1 -1
  108. package/dist/engine/agent-api/compiler/compileScene.d.ts +21 -5
  109. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  110. package/dist/engine/agent-api/compiler/compileScene.js +112 -13
  111. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  112. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts +14 -0
  113. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts.map +1 -0
  114. package/dist/engine/agent-api/compiler/contactShadowKey.js +66 -0
  115. package/dist/engine/agent-api/compiler/contactShadowKey.js.map +1 -0
  116. package/dist/engine/agent-api/compiler/environment.d.ts +56 -2
  117. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  118. package/dist/engine/agent-api/compiler/environment.js +202 -15
  119. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  120. package/dist/engine/agent-api/compiler/geometry.d.ts +18 -1
  121. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  122. package/dist/engine/agent-api/compiler/geometry.js +25 -5
  123. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  124. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  125. package/dist/engine/agent-api/compiler/lights.js +14 -6
  126. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  127. package/dist/engine/agent-api/compiler/mountedRoots.d.ts +6 -0
  128. package/dist/engine/agent-api/compiler/mountedRoots.d.ts.map +1 -0
  129. package/dist/engine/agent-api/compiler/mountedRoots.js +25 -0
  130. package/dist/engine/agent-api/compiler/mountedRoots.js.map +1 -0
  131. package/dist/engine/agent-api/compiler/observations.d.ts +9 -1
  132. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  133. package/dist/engine/agent-api/compiler/observations.js +5 -4
  134. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  135. package/dist/engine/agent-api/compiler/optionCoverage.js +17 -0
  136. package/dist/engine/agent-api/compiler/optionCoverage.js.map +1 -1
  137. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  138. package/dist/engine/agent-api/compiler/postprocess.js +2 -0
  139. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  140. package/dist/engine/agent-api/compiler/primitives.d.ts +34 -0
  141. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  142. package/dist/engine/agent-api/compiler/primitives.js +113 -3
  143. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  144. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  145. package/dist/engine/agent-api/compiler/renderInput.js +40 -4
  146. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  147. package/dist/engine/agent-api/compiler/renderer.d.ts +6 -4
  148. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  149. package/dist/engine/agent-api/compiler/renderer.js +54 -14
  150. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  151. package/dist/engine/agent-api/compiler/shadows.d.ts +35 -1
  152. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  153. package/dist/engine/agent-api/compiler/shadows.js +103 -4
  154. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  155. package/dist/engine/agent-api/diagnostics.d.ts +22 -0
  156. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  157. package/dist/engine/agent-api/diagnostics.js +53 -1
  158. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  159. package/dist/engine/agent-api/feel/extension.d.ts.map +1 -1
  160. package/dist/engine/agent-api/feel/extension.js +2 -1
  161. package/dist/engine/agent-api/feel/extension.js.map +1 -1
  162. package/dist/engine/agent-api/looks/lookFill.d.ts +4 -0
  163. package/dist/engine/agent-api/looks/lookFill.d.ts.map +1 -0
  164. package/dist/engine/agent-api/looks/lookFill.js +29 -0
  165. package/dist/engine/agent-api/looks/lookFill.js.map +1 -0
  166. package/dist/engine/agent-api/looks/lookPresets.d.ts +13 -0
  167. package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
  168. package/dist/engine/agent-api/looks/lookPresets.js +5 -0
  169. package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
  170. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  171. package/dist/engine/agent-api/looks/looks.js +6 -0
  172. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  173. package/dist/engine/agent-api/looks/structuralQA.d.ts.map +1 -1
  174. package/dist/engine/agent-api/looks/structuralQA.js +4 -2
  175. package/dist/engine/agent-api/looks/structuralQA.js.map +1 -1
  176. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +5 -4
  177. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  178. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +61 -5
  179. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  180. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  181. package/dist/engine/agent-api/nodes/groups.js +2 -1
  182. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  183. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  184. package/dist/engine/agent-api/nodes/instances.js +16 -4
  185. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  186. package/dist/engine/agent-api/nodes/interactions.d.ts +32 -10
  187. package/dist/engine/agent-api/nodes/interactions.d.ts.map +1 -1
  188. package/dist/engine/agent-api/nodes/interactions.js +40 -11
  189. package/dist/engine/agent-api/nodes/interactions.js.map +1 -1
  190. package/dist/engine/agent-api/nodes/model.d.ts +18 -0
  191. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  192. package/dist/engine/agent-api/nodes/model.js +41 -1
  193. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  194. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts +14 -0
  195. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts.map +1 -0
  196. package/dist/engine/agent-api/nodes/optionDiagnostics.js +34 -0
  197. package/dist/engine/agent-api/nodes/optionDiagnostics.js.map +1 -0
  198. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts +9 -0
  199. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts.map +1 -0
  200. package/dist/engine/agent-api/nodes/orbitInteraction.js +52 -0
  201. package/dist/engine/agent-api/nodes/orbitInteraction.js.map +1 -0
  202. package/dist/engine/agent-api/nodes/physics.d.ts +26 -0
  203. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  204. package/dist/engine/agent-api/nodes/physics.js +115 -7
  205. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  206. package/dist/engine/agent-api/nodes/primitives.d.ts +16 -1
  207. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  208. package/dist/engine/agent-api/nodes/primitives.js +27 -1
  209. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  210. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  211. package/dist/engine/agent-api/nodes/scene.js +4 -2
  212. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  213. package/dist/engine/agent-api/nodes/text3d.d.ts.map +1 -1
  214. package/dist/engine/agent-api/nodes/text3d.js +11 -2
  215. package/dist/engine/agent-api/nodes/text3d.js.map +1 -1
  216. package/dist/engine/agent-api/nodes/types/runtime.d.ts +38 -0
  217. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  218. package/dist/engine/agent-api/nodes/types.d.ts +44 -0
  219. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  220. package/dist/engine/agent-api/platform.d.ts +5 -0
  221. package/dist/engine/agent-api/platform.d.ts.map +1 -1
  222. package/dist/engine/agent-api/platform.js +15 -0
  223. package/dist/engine/agent-api/platform.js.map +1 -1
  224. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  225. package/dist/engine/agent-api/postBridge.js +5 -1
  226. package/dist/engine/agent-api/postBridge.js.map +1 -1
  227. package/dist/engine/agent-api/sceneKitDiagnostics.d.ts.map +1 -1
  228. package/dist/engine/agent-api/sceneKitDiagnostics.js +5 -2
  229. package/dist/engine/agent-api/sceneKitDiagnostics.js.map +1 -1
  230. package/dist/engine/contracts/animation.d.ts +5 -3
  231. package/dist/engine/contracts/animation.d.ts.map +1 -1
  232. package/dist/engine/contracts/animation.js.map +1 -1
  233. package/dist/engine/contracts/environment.d.ts +9 -0
  234. package/dist/engine/contracts/environment.d.ts.map +1 -1
  235. package/dist/engine/contracts/environment.js.map +1 -1
  236. package/dist/engine/contracts/flags.d.ts.map +1 -1
  237. package/dist/engine/contracts/flags.js +2 -1
  238. package/dist/engine/contracts/flags.js.map +1 -1
  239. package/dist/engine/contracts/lighting.d.ts +3 -0
  240. package/dist/engine/contracts/lighting.d.ts.map +1 -1
  241. package/dist/engine/contracts/lighting.js.map +1 -1
  242. package/dist/engine/contracts/stubs/game.d.ts.map +1 -1
  243. package/dist/engine/contracts/stubs/game.js +9 -1
  244. package/dist/engine/contracts/stubs/game.js.map +1 -1
  245. package/dist/engine/contracts/urlCache.d.ts +4 -0
  246. package/dist/engine/contracts/urlCache.d.ts.map +1 -0
  247. package/dist/engine/contracts/urlCache.js +25 -0
  248. package/dist/engine/contracts/urlCache.js.map +1 -0
  249. package/dist/engine/lanes/prd01/outputSurface.d.ts.map +1 -1
  250. package/dist/engine/lanes/prd01/outputSurface.js +25 -1
  251. package/dist/engine/lanes/prd01/outputSurface.js.map +1 -1
  252. package/dist/engine/lanes/prd02.d.ts +12 -4
  253. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  254. package/dist/engine/lanes/prd02.js +23 -7
  255. package/dist/engine/lanes/prd02.js.map +1 -1
  256. package/dist/game/touch/TouchControls.d.ts.map +1 -1
  257. package/dist/game/touch/TouchControls.js +48 -12
  258. package/dist/game/touch/TouchControls.js.map +1 -1
  259. package/dist/math/SphericalHarmonics3.d.ts +6 -3
  260. package/dist/math/SphericalHarmonics3.d.ts.map +1 -1
  261. package/dist/math/SphericalHarmonics3.js +8 -5
  262. package/dist/math/SphericalHarmonics3.js.map +1 -1
  263. package/dist/math/three/Box3.d.ts +106 -0
  264. package/dist/math/three/Box3.d.ts.map +1 -0
  265. package/dist/math/three/Box3.js +348 -0
  266. package/dist/math/three/Box3.js.map +1 -0
  267. package/dist/math/three/Color.d.ts +127 -0
  268. package/dist/math/three/Color.d.ts.map +1 -0
  269. package/dist/math/three/Color.js +501 -0
  270. package/dist/math/three/Color.js.map +1 -0
  271. package/dist/math/three/Euler.d.ts +50 -0
  272. package/dist/math/three/Euler.d.ts.map +1 -0
  273. package/dist/math/three/Euler.js +210 -0
  274. package/dist/math/three/Euler.js.map +1 -0
  275. package/dist/math/three/Frustum.d.ts +59 -0
  276. package/dist/math/three/Frustum.d.ts.map +1 -0
  277. package/dist/math/three/Frustum.js +135 -0
  278. package/dist/math/three/Frustum.js.map +1 -0
  279. package/dist/math/three/Matrix3.d.ts +56 -0
  280. package/dist/math/three/Matrix3.d.ts.map +1 -0
  281. package/dist/math/three/Matrix3.js +248 -0
  282. package/dist/math/three/Matrix3.js.map +1 -0
  283. package/dist/math/three/Matrix4.d.ts +79 -0
  284. package/dist/math/three/Matrix4.d.ts.map +1 -0
  285. package/dist/math/three/Matrix4.js +708 -0
  286. package/dist/math/three/Matrix4.js.map +1 -0
  287. package/dist/math/three/Plane.d.ts +65 -0
  288. package/dist/math/three/Plane.d.ts.map +1 -0
  289. package/dist/math/three/Plane.js +135 -0
  290. package/dist/math/three/Plane.js.map +1 -0
  291. package/dist/math/three/Quaternion.d.ts +91 -0
  292. package/dist/math/three/Quaternion.d.ts.map +1 -0
  293. package/dist/math/three/Quaternion.js +444 -0
  294. package/dist/math/three/Quaternion.js.map +1 -0
  295. package/dist/math/three/Ray.d.ts +56 -0
  296. package/dist/math/three/Ray.d.ts.map +1 -0
  297. package/dist/math/three/Ray.js +340 -0
  298. package/dist/math/three/Ray.js.map +1 -0
  299. package/dist/math/three/Sphere.d.ts +58 -0
  300. package/dist/math/three/Sphere.d.ts.map +1 -0
  301. package/dist/math/three/Sphere.js +166 -0
  302. package/dist/math/three/Sphere.js.map +1 -0
  303. package/dist/math/three/Triangle.d.ts +58 -0
  304. package/dist/math/three/Triangle.d.ts.map +1 -0
  305. package/dist/math/three/Triangle.js +229 -0
  306. package/dist/math/three/Triangle.js.map +1 -0
  307. package/dist/math/three/Vector2.d.ts +88 -0
  308. package/dist/math/three/Vector2.d.ts.map +1 -0
  309. package/dist/math/three/Vector2.js +283 -0
  310. package/dist/math/three/Vector2.js.map +1 -0
  311. package/dist/math/three/Vector3.d.ts +137 -0
  312. package/dist/math/three/Vector3.d.ts.map +1 -0
  313. package/dist/math/three/Vector3.js +458 -0
  314. package/dist/math/three/Vector3.js.map +1 -0
  315. package/dist/math/three/Vector4.d.ts +100 -0
  316. package/dist/math/three/Vector4.d.ts.map +1 -0
  317. package/dist/math/three/Vector4.js +443 -0
  318. package/dist/math/three/Vector4.js.map +1 -0
  319. package/dist/math/three/index.d.ts +29 -0
  320. package/dist/math/three/index.d.ts.map +1 -0
  321. package/dist/math/three/index.js +29 -0
  322. package/dist/math/three/index.js.map +1 -0
  323. package/dist/react/index.d.ts +21 -0
  324. package/dist/react/index.d.ts.map +1 -1
  325. package/dist/react/index.js +128 -21
  326. package/dist/react/index.js.map +1 -1
  327. package/dist/rendering/DepthPass.d.ts +7 -0
  328. package/dist/rendering/DepthPass.d.ts.map +1 -1
  329. package/dist/rendering/DepthPass.js +43 -6
  330. package/dist/rendering/DepthPass.js.map +1 -1
  331. package/dist/rendering/ForwardPass.d.ts +82 -5
  332. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  333. package/dist/rendering/ForwardPass.js +180 -35
  334. package/dist/rendering/ForwardPass.js.map +1 -1
  335. package/dist/rendering/MaterialBinding.js +6 -2
  336. package/dist/rendering/MaterialBinding.js.map +1 -1
  337. package/dist/rendering/RenderDevice.d.ts +5 -0
  338. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  339. package/dist/rendering/RenderDevice.js.map +1 -1
  340. package/dist/rendering/Renderer.d.ts +8 -0
  341. package/dist/rendering/Renderer.d.ts.map +1 -1
  342. package/dist/rendering/Renderer.js +37 -6
  343. package/dist/rendering/Renderer.js.map +1 -1
  344. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  345. package/dist/rendering/RendererPostprocessPlan.js +8 -1
  346. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  347. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  348. package/dist/rendering/ShaderChunks.js +3 -1
  349. package/dist/rendering/ShaderChunks.js.map +1 -1
  350. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  351. package/dist/rendering/ShaderLibrary.js +17 -5
  352. package/dist/rendering/ShaderLibrary.js.map +1 -1
  353. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  354. package/dist/rendering/ShaderLibraryCore.js +2 -1
  355. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  356. package/dist/rendering/WebGL2Device.d.ts +19 -1
  357. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  358. package/dist/rendering/WebGL2Device.js +114 -37
  359. package/dist/rendering/WebGL2Device.js.map +1 -1
  360. package/dist/rendering/WebGL2StateCache.d.ts +22 -0
  361. package/dist/rendering/WebGL2StateCache.d.ts.map +1 -1
  362. package/dist/rendering/WebGL2StateCache.js +71 -42
  363. package/dist/rendering/WebGL2StateCache.js.map +1 -1
  364. package/dist/rendering/contracts/core.d.ts.map +1 -1
  365. package/dist/rendering/contracts/core.js +22 -2
  366. package/dist/rendering/contracts/core.js.map +1 -1
  367. package/dist/rendering/contracts/program.d.ts.map +1 -1
  368. package/dist/rendering/contracts/program.js +8 -1
  369. package/dist/rendering/contracts/program.js.map +1 -1
  370. package/dist/rendering/contracts/quality.d.ts +21 -0
  371. package/dist/rendering/contracts/quality.d.ts.map +1 -1
  372. package/dist/rendering/contracts/quality.js +5 -0
  373. package/dist/rendering/contracts/quality.js.map +1 -1
  374. package/dist/rendering/contracts/renderItem.d.ts +6 -0
  375. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  376. package/dist/rendering/contracts/structuralMemo.d.ts +23 -0
  377. package/dist/rendering/contracts/structuralMemo.d.ts.map +1 -0
  378. package/dist/rendering/contracts/structuralMemo.js +81 -0
  379. package/dist/rendering/contracts/structuralMemo.js.map +1 -0
  380. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  381. package/dist/rendering/environment/EnvironmentCache.js +6 -1
  382. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  383. package/dist/rendering/environment/FirstFrameGate.d.ts +23 -0
  384. package/dist/rendering/environment/FirstFrameGate.d.ts.map +1 -0
  385. package/dist/rendering/environment/FirstFrameGate.js +58 -0
  386. package/dist/rendering/environment/FirstFrameGate.js.map +1 -0
  387. package/dist/rendering/environment/Rgb9e5Cube.d.ts.map +1 -1
  388. package/dist/rendering/environment/Rgb9e5Cube.js +8 -4
  389. package/dist/rendering/environment/Rgb9e5Cube.js.map +1 -1
  390. package/dist/rendering/environment/probeBuild.d.ts +29 -0
  391. package/dist/rendering/environment/probeBuild.d.ts.map +1 -1
  392. package/dist/rendering/environment/probeBuild.js +124 -45
  393. package/dist/rendering/environment/probeBuild.js.map +1 -1
  394. package/dist/rendering/forward/Lighting.d.ts +43 -3
  395. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  396. package/dist/rendering/forward/Lighting.js +127 -17
  397. package/dist/rendering/forward/Lighting.js.map +1 -1
  398. package/dist/rendering/forward/contactShadowMaskStore.d.ts +41 -0
  399. package/dist/rendering/forward/contactShadowMaskStore.d.ts.map +1 -0
  400. package/dist/rendering/forward/contactShadowMaskStore.js +85 -0
  401. package/dist/rendering/forward/contactShadowMaskStore.js.map +1 -0
  402. package/dist/rendering/geometry/Shape.d.ts.map +1 -1
  403. package/dist/rendering/geometry/Shape.js +7 -2
  404. package/dist/rendering/geometry/Shape.js.map +1 -1
  405. package/dist/rendering/geometry/Support.d.ts +4 -0
  406. package/dist/rendering/geometry/Support.d.ts.map +1 -1
  407. package/dist/rendering/geometry/Support.js +3 -2
  408. package/dist/rendering/geometry/Support.js.map +1 -1
  409. package/dist/rendering/index.d.ts +6 -0
  410. package/dist/rendering/index.d.ts.map +1 -1
  411. package/dist/rendering/index.js +5 -0
  412. package/dist/rendering/index.js.map +1 -1
  413. package/dist/rendering/passes/ContactShadowPass.d.ts +40 -3
  414. package/dist/rendering/passes/ContactShadowPass.d.ts.map +1 -1
  415. package/dist/rendering/passes/ContactShadowPass.js +73 -13
  416. package/dist/rendering/passes/ContactShadowPass.js.map +1 -1
  417. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  418. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  419. package/dist/rendering/passes/Prd02ContactShadowsContributor.js +179 -28
  420. package/dist/rendering/passes/Prd02ContactShadowsContributor.js.map +1 -1
  421. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  422. package/dist/rendering/post/v2Stages.js +2 -0
  423. package/dist/rendering/post/v2Stages.js.map +1 -1
  424. package/dist/rendering/program/ProgramFeatures.d.ts +6 -0
  425. package/dist/rendering/program/ProgramFeatures.d.ts.map +1 -1
  426. package/dist/rendering/program/ProgramFeatures.js +11 -5
  427. package/dist/rendering/program/ProgramFeatures.js.map +1 -1
  428. package/dist/rendering/program/ProgramGenerator.d.ts +6 -0
  429. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  430. package/dist/rendering/program/ProgramGenerator.js +36 -1
  431. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  432. package/dist/rendering/program/ProgramKey.d.ts.map +1 -1
  433. package/dist/rendering/program/ProgramKey.js +4 -1
  434. package/dist/rendering/program/ProgramKey.js.map +1 -1
  435. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +1 -1
  436. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  437. package/dist/rendering/program/chunks/shadow_forward.glsl.js +4 -1
  438. package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
  439. package/dist/rendering/quality/DirectPath.d.ts +56 -0
  440. package/dist/rendering/quality/DirectPath.d.ts.map +1 -0
  441. package/dist/rendering/quality/DirectPath.js +74 -0
  442. package/dist/rendering/quality/DirectPath.js.map +1 -0
  443. package/dist/rendering/renderer/Background.d.ts +0 -5
  444. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  445. package/dist/rendering/renderer/Background.js +56 -4
  446. package/dist/rendering/renderer/Background.js.map +1 -1
  447. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +41 -0
  448. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -0
  449. package/dist/rendering/renderer/InstanceFrustumCull.js +138 -0
  450. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -0
  451. package/dist/rendering/renderer/ShadowOrchestration.d.ts +2 -0
  452. package/dist/rendering/renderer/ShadowOrchestration.d.ts.map +1 -1
  453. package/dist/rendering/renderer/ShadowOrchestration.js +1 -0
  454. package/dist/rendering/renderer/ShadowOrchestration.js.map +1 -1
  455. package/dist/rendering/renderer/coreOutputPostRoute.d.ts +0 -5
  456. package/dist/rendering/renderer/coreOutputPostRoute.d.ts.map +1 -1
  457. package/dist/rendering/renderer/coreOutputPostRoute.js +12 -2
  458. package/dist/rendering/renderer/coreOutputPostRoute.js.map +1 -1
  459. package/dist/rendering/resources/InstanceBuffer.d.ts +2 -0
  460. package/dist/rendering/resources/InstanceBuffer.d.ts.map +1 -1
  461. package/dist/rendering/resources/InstanceBuffer.js +23 -0
  462. package/dist/rendering/resources/InstanceBuffer.js.map +1 -1
  463. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  464. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  465. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js +41 -19
  466. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  467. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  468. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  469. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  470. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  471. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  472. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  473. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js +8 -2
  474. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  475. package/dist/rendering/shadows/CascadeUse.d.ts +31 -0
  476. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -0
  477. package/dist/rendering/shadows/CascadeUse.js +60 -0
  478. package/dist/rendering/shadows/CascadeUse.js.map +1 -0
  479. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  480. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  481. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js +12 -3
  482. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  483. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +12 -1
  484. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  485. package/dist/rendering/shadows/Prd02ShadowBridge.js +17 -5
  486. package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
  487. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts +4 -0
  488. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  489. package/dist/rendering/shadows/Prd02ShadowsContributor.js +3 -1
  490. package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
  491. package/dist/rendering/shadows/ShadowFilterTier.d.ts +51 -0
  492. package/dist/rendering/shadows/ShadowFilterTier.d.ts.map +1 -0
  493. package/dist/rendering/shadows/ShadowFilterTier.js +89 -0
  494. package/dist/rendering/shadows/ShadowFilterTier.js.map +1 -0
  495. package/dist/rendering/shadows/ShadowSystem.d.ts +15 -0
  496. package/dist/rendering/shadows/ShadowSystem.d.ts.map +1 -1
  497. package/dist/rendering/shadows/ShadowSystem.js +12 -2
  498. package/dist/rendering/shadows/ShadowSystem.js.map +1 -1
  499. package/dist/rendering/shadows/shadowLegacy.d.ts +12 -0
  500. package/dist/rendering/shadows/shadowLegacy.d.ts.map +1 -1
  501. package/dist/rendering/shadows/shadowLegacy.js +24 -0
  502. package/dist/rendering/shadows/shadowLegacy.js.map +1 -1
  503. package/dist/rendering/webgl2/BloomFusion.d.ts +31 -0
  504. package/dist/rendering/webgl2/BloomFusion.d.ts.map +1 -0
  505. package/dist/rendering/webgl2/BloomFusion.js +25 -0
  506. package/dist/rendering/webgl2/BloomFusion.js.map +1 -0
  507. package/dist/rendering/webgl2/ContextLifecycle.d.ts +14 -0
  508. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  509. package/dist/rendering/webgl2/ContextLifecycle.js +44 -5
  510. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  511. package/dist/rendering/webgl2/LegacyPost.d.ts +30 -0
  512. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  513. package/dist/rendering/webgl2/LegacyPost.js +259 -27
  514. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  515. package/dist/rendering/webgl2/MultiDraw.d.ts +2 -0
  516. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  517. package/dist/rendering/webgl2/MultiDraw.js +33 -7
  518. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  519. package/dist/rendering/webgl2/Samplers.d.ts +10 -1
  520. package/dist/rendering/webgl2/Samplers.d.ts.map +1 -1
  521. package/dist/rendering/webgl2/Samplers.js +24 -1
  522. package/dist/rendering/webgl2/Samplers.js.map +1 -1
  523. package/dist/rendering/webgl2/TextureFormats.d.ts +12 -0
  524. package/dist/rendering/webgl2/TextureFormats.d.ts.map +1 -1
  525. package/dist/rendering/webgl2/TextureFormats.js +16 -0
  526. package/dist/rendering/webgl2/TextureFormats.js.map +1 -1
  527. package/package.json +25 -25
  528. package/templates/cinematic-scene/package.json +2 -2
  529. package/templates/mini-game/package.json +2 -2
  530. package/templates/product-viewer/package.json +2 -2
  531. package/templates/production-asset-inspector/package.json +1 -1
  532. package/templates/production-material-studio/package.json +1 -1
  533. package/templates/production-product-configurator/package.json +1 -1
  534. package/templates/production-product-viewer/package.json +1 -1
  535. package/dist/environments/EnvironmentPreview.d.ts +0 -13
  536. package/dist/environments/EnvironmentPreview.d.ts.map +0 -1
  537. package/dist/environments/EnvironmentPreview.js +0 -16
  538. package/dist/environments/EnvironmentPreview.js.map +0 -1
  539. package/dist/environments/EnvironmentRegistry.d.ts +0 -35
  540. package/dist/environments/EnvironmentRegistry.d.ts.map +0 -1
  541. package/dist/environments/EnvironmentRegistry.js +0 -39
  542. package/dist/environments/EnvironmentRegistry.js.map +0 -1
  543. package/dist/environments/HDRIEnvironment.d.ts +0 -38
  544. package/dist/environments/HDRIEnvironment.d.ts.map +0 -1
  545. package/dist/environments/HDRIEnvironment.js +0 -34
  546. package/dist/environments/HDRIEnvironment.js.map +0 -1
  547. package/dist/environments/PMREMPreset.d.ts +0 -14
  548. package/dist/environments/PMREMPreset.d.ts.map +0 -1
  549. package/dist/environments/PMREMPreset.js +0 -16
  550. package/dist/environments/PMREMPreset.js.map +0 -1
  551. package/dist/environments/index.d.ts +0 -6
  552. package/dist/environments/index.d.ts.map +0 -1
  553. package/dist/environments/index.js +0 -3
  554. package/dist/environments/index.js.map +0 -1
  555. package/dist/environments/node.d.ts +0 -7
  556. package/dist/environments/node.d.ts.map +0 -1
  557. package/dist/environments/node.js +0 -5
  558. package/dist/environments/node.js.map +0 -1
  559. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts +0 -78
  560. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts.map +0 -1
  561. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js +0 -67
  562. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js.map +0 -1
  563. package/dist/environments/production-runtime/index.d.ts +0 -3
  564. package/dist/environments/production-runtime/index.d.ts.map +0 -1
  565. package/dist/environments/production-runtime/index.js +0 -2
  566. package/dist/environments/production-runtime/index.js.map +0 -1
  567. package/dist/environments/threejs-example-parity/index.d.ts +0 -17
  568. package/dist/environments/threejs-example-parity/index.d.ts.map +0 -1
  569. package/dist/environments/threejs-example-parity/index.js +0 -49
  570. package/dist/environments/threejs-example-parity/index.js.map +0 -1
  571. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
  572. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
  573. package/templates/cinematic-scene/test-results/.last-run.json +0 -6
  574. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
  575. package/templates/mini-game/package-lock.json +0 -1312
  576. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
  577. package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
@@ -5,9 +5,12 @@
5
5
  * order-independent, includes registered feature ids/values).
6
6
  */
7
7
  import { computeProgramKey } from "../contracts/program.js";
8
+ import { StructuralMemo } from "../contracts/structuralMemo.js";
8
9
  import { normalizeProgramFeatures } from "./ProgramFeatures.js";
10
+ /** The sparse record a caller builds each frame -> its key, so a repeated record skips normalisation as well as serialisation. */
11
+ const sparseKeyMemo = new StructuralMemo(24);
9
12
  export function programKey(features) {
10
- return computeProgramKey(normalizeProgramFeatures(features));
13
+ return sparseKeyMemo.resolve(features, () => computeProgramKey(normalizeProgramFeatures(features)));
11
14
  }
12
15
  export { computeProgramKey };
13
16
  //# sourceMappingURL=ProgramKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgramKey.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/program/ProgramKey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,QAAkC;IAC3D,OAAO,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"ProgramKey.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/program/ProgramKey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,kIAAkI;AAClI,MAAM,aAAa,GAAG,IAAI,cAAc,CAAS,EAAE,CAAC,CAAC;AAErD,MAAM,UAAU,UAAU,CAAC,QAAkC;IAC3D,OAAO,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -19,5 +19,5 @@
19
19
  * the receiver along its normal before the lookup; 0 keeps the legacy result.
20
20
  */
21
21
  export declare const SHADOW_FORWARD_FACTOR_GLSL = "float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection) {\n if (u_shadowMapEnabled < 0.5) return 1.0;\n vec4 lightPosition = u_shadowMapMatrix * vec4(worldPosition, 1.0);\n vec3 projected = lightPosition.xyz / max(lightPosition.w, 0.0001);\n vec2 uv = projected.xy * 0.5 + 0.5;\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return 1.0;\n vec3 receiverNormal = normalize(normal);\n vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);\n float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);\n float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);\n float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);\n float projectedDepth = clamp(projected.z * 0.5 + 0.5, 0.0, 1.0);\n float shadowed = 0.0;\n float totalWeight = 0.0;\n int sampleCount = clamp(int(u_shadowPcfSampleCount), 1, 32);\n for (int i = 0; i < 32; ++i) {\n if (i >= sampleCount) break;\n vec4 sampleData = u_shadowPcfSamples[i];\n float weight = max(sampleData.z, 0.0);\n vec2 offset = sampleData.xy * u_shadowMapTexelSize;\n float storedDepth = texture(u_shadowMapTexture, uv + offset).r;\n float sampleTexelDistance = max(1.0, length(sampleData.xy));\n float receiverDepth = projectedDepth - u_shadowMapBias - slopeTexelBias * sampleTexelDistance;\n shadowed += (receiverDepth > storedDepth ? 1.0 : 0.0) * weight;\n totalWeight += weight;\n }\n float occlusion = totalWeight > 0.0 ? shadowed / totalWeight : 0.0;\n return mix(1.0, 1.0 - occlusion, clamp(u_shadowMapStrength, 0.0, 1.0));\n}";
22
- export declare const SHADOW_FORWARD_CHUNK_GLSL = "\nuniform sampler2D u_shadowMapTexture;\nuniform float u_shadowMapEnabled;\nuniform mat4 u_shadowMapMatrix;\nuniform float u_shadowMapStrength;\nuniform float u_shadowMapBias;\nuniform float u_shadowMapSlopeBias;\nuniform vec2 u_shadowMapTexelSize;\nuniform float u_shadowPcfSampleCount;\nuniform vec4 u_shadowPcfSamples[32];\nuniform float u_shadowMapNormalBias;\n\nfloat a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection) {\n if (u_shadowMapEnabled < 0.5) return 1.0;\n vec4 lightPosition = u_shadowMapMatrix * vec4(worldPosition, 1.0);\n vec3 projected = lightPosition.xyz / max(lightPosition.w, 0.0001);\n vec2 uv = projected.xy * 0.5 + 0.5;\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return 1.0;\n vec3 receiverNormal = normalize(normal);\n vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);\n float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);\n float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);\n float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);\n float projectedDepth = clamp(projected.z * 0.5 + 0.5, 0.0, 1.0);\n float shadowed = 0.0;\n float totalWeight = 0.0;\n int sampleCount = clamp(int(u_shadowPcfSampleCount), 1, 32);\n for (int i = 0; i < 32; ++i) {\n if (i >= sampleCount) break;\n vec4 sampleData = u_shadowPcfSamples[i];\n float weight = max(sampleData.z, 0.0);\n vec2 offset = sampleData.xy * u_shadowMapTexelSize;\n float storedDepth = texture(u_shadowMapTexture, uv + offset).r;\n float sampleTexelDistance = max(1.0, length(sampleData.xy));\n float receiverDepth = projectedDepth - u_shadowMapBias - slopeTexelBias * sampleTexelDistance;\n shadowed += (receiverDepth > storedDepth ? 1.0 : 0.0) * weight;\n totalWeight += weight;\n }\n float occlusion = totalWeight > 0.0 ? shadowed / totalWeight : 0.0;\n return mix(1.0, 1.0 - occlusion, clamp(u_shadowMapStrength, 0.0, 1.0));\n}\n\n// Legacy gate (ShaderLibraryCore light loop): spotShadowLayer.z marks the\n// shadow-casting light; directional (kind 0) and spot (kind 2) sample the\n// forward map, point (kind 1) and rect (> 2.5, packed z = 0) do not.\nfloat a3dForwardLightShadow(float kind, float castsShadow, vec3 worldPosition, vec3 normal, vec3 lightDirection) {\n if (castsShadow < 0.5 || (kind > 0.5 && kind < 1.5) || kind > 2.5) return 1.0;\n vec3 offsetPosition = worldPosition + normalize(normal) * u_shadowMapNormalBias;\n return a3dForwardShadowFactor(offsetPosition, normal, lightDirection);\n}\n";
22
+ export declare const SHADOW_FORWARD_CHUNK_GLSL = "\n\nuniform sampler2D u_contactShadowMask;\nuniform float u_contactShadowMaskStrength;\nuniform vec2 u_contactShadowMaskViewport;\nfloat a3dContactShadowMaskFactor(float kind) {\n if (kind > 0.5 || u_contactShadowMaskStrength < 0.001) return 1.0;\n float mask = texture(u_contactShadowMask, gl_FragCoord.xy / u_contactShadowMaskViewport).r;\n return mix(1.0, mask, clamp(u_contactShadowMaskStrength, 0.0, 1.0));\n}\n\nuniform sampler2D u_shadowMapTexture;\nuniform float u_shadowMapEnabled;\nuniform mat4 u_shadowMapMatrix;\nuniform float u_shadowMapStrength;\nuniform float u_shadowMapBias;\nuniform float u_shadowMapSlopeBias;\nuniform vec2 u_shadowMapTexelSize;\nuniform float u_shadowPcfSampleCount;\nuniform vec4 u_shadowPcfSamples[32];\nuniform float u_shadowMapNormalBias;\n\nfloat a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection) {\n if (u_shadowMapEnabled < 0.5) return 1.0;\n vec4 lightPosition = u_shadowMapMatrix * vec4(worldPosition, 1.0);\n vec3 projected = lightPosition.xyz / max(lightPosition.w, 0.0001);\n vec2 uv = projected.xy * 0.5 + 0.5;\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return 1.0;\n vec3 receiverNormal = normalize(normal);\n vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);\n float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);\n float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);\n float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);\n float projectedDepth = clamp(projected.z * 0.5 + 0.5, 0.0, 1.0);\n float shadowed = 0.0;\n float totalWeight = 0.0;\n int sampleCount = clamp(int(u_shadowPcfSampleCount), 1, 32);\n for (int i = 0; i < 32; ++i) {\n if (i >= sampleCount) break;\n vec4 sampleData = u_shadowPcfSamples[i];\n float weight = max(sampleData.z, 0.0);\n vec2 offset = sampleData.xy * u_shadowMapTexelSize;\n float storedDepth = texture(u_shadowMapTexture, uv + offset).r;\n float sampleTexelDistance = max(1.0, length(sampleData.xy));\n float receiverDepth = projectedDepth - u_shadowMapBias - slopeTexelBias * sampleTexelDistance;\n shadowed += (receiverDepth > storedDepth ? 1.0 : 0.0) * weight;\n totalWeight += weight;\n }\n float occlusion = totalWeight > 0.0 ? shadowed / totalWeight : 0.0;\n return mix(1.0, 1.0 - occlusion, clamp(u_shadowMapStrength, 0.0, 1.0));\n}\n\n// Legacy gate (ShaderLibraryCore light loop): spotShadowLayer.z marks the\n// shadow-casting light; directional (kind 0) and spot (kind 2) sample the\n// forward map, point (kind 1) and rect (> 2.5, packed z = 0) do not.\nfloat a3dForwardLightShadow(float kind, float castsShadow, vec3 worldPosition, vec3 normal, vec3 lightDirection) {\n if (castsShadow < 0.5 || (kind > 0.5 && kind < 1.5) || kind > 2.5) return 1.0;\n vec3 offsetPosition = worldPosition + normalize(normal) * u_shadowMapNormalBias;\n // WP-4: the contact-shadow mask rides the shadow-casting directional light's visibility only (kind 0).\n return a3dForwardShadowFactor(offsetPosition, normal, lightDirection) * a3dContactShadowMaskFactor(kind);\n}\n";
23
23
  //# sourceMappingURL=shadow_forward.glsl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow_forward.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/program/chunks/shadow_forward.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,0BAA0B,ksDA4BrC,CAAC;AAEH,eAAO,MAAM,yBAAyB,2nFAsBrC,CAAC"}
1
+ {"version":3,"file":"shadow_forward.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/program/chunks/shadow_forward.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,eAAO,MAAM,0BAA0B,ksDA4BrC,CAAC;AAEH,eAAO,MAAM,yBAAyB,4qGAwBrC,CAAC"}
@@ -18,6 +18,7 @@
18
18
  * `u_shadowMapNormalBias` (world units, three.js `shadow.normalBias`) offsets
19
19
  * the receiver along its normal before the lookup; 0 keeps the legacy result.
20
20
  */
21
+ import { CONTACT_SHADOW_MASK_GLSL } from "../../shaders/chunks/contact_shadow_mask.glsl.js";
21
22
  export const SHADOW_FORWARD_FACTOR_GLSL = /* glsl */ `float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection) {
22
23
  if (u_shadowMapEnabled < 0.5) return 1.0;
23
24
  vec4 lightPosition = u_shadowMapMatrix * vec4(worldPosition, 1.0);
@@ -48,6 +49,7 @@ export const SHADOW_FORWARD_FACTOR_GLSL = /* glsl */ `float a3dForwardShadowFact
48
49
  return mix(1.0, 1.0 - occlusion, clamp(u_shadowMapStrength, 0.0, 1.0));
49
50
  }`;
50
51
  export const SHADOW_FORWARD_CHUNK_GLSL = /* glsl */ `
52
+ ${CONTACT_SHADOW_MASK_GLSL}
51
53
  uniform sampler2D u_shadowMapTexture;
52
54
  uniform float u_shadowMapEnabled;
53
55
  uniform mat4 u_shadowMapMatrix;
@@ -67,7 +69,8 @@ ${SHADOW_FORWARD_FACTOR_GLSL}
67
69
  float a3dForwardLightShadow(float kind, float castsShadow, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
68
70
  if (castsShadow < 0.5 || (kind > 0.5 && kind < 1.5) || kind > 2.5) return 1.0;
69
71
  vec3 offsetPosition = worldPosition + normalize(normal) * u_shadowMapNormalBias;
70
- return a3dForwardShadowFactor(offsetPosition, normal, lightDirection);
72
+ // WP-4: the contact-shadow mask rides the shadow-casting directional light's visibility only (kind 0).
73
+ return a3dForwardShadowFactor(offsetPosition, normal, lightDirection) * a3dContactShadowMaskFactor(kind);
71
74
  }
72
75
  `;
73
76
  //# sourceMappingURL=shadow_forward.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow_forward.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/program/chunks/shadow_forward.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnD,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;EAYlD,0BAA0B;;;;;;;;;;CAU3B,CAAC"}
1
+ {"version":3,"file":"shadow_forward.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/program/chunks/shadow_forward.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnD,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;EAClD,wBAAwB;;;;;;;;;;;;EAYxB,0BAA0B;;;;;;;;;;;CAW3B,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Direct render path (beat-three.js PRD, L-P1, contract 3.1).
3
+ *
4
+ * Two ways a frame reaches the canvas:
5
+ *
6
+ * - `hdr-msaa`: the scene renders into a 4x multisampled RGBA16F target and an
7
+ * OutputPass blit tone-maps it onto the canvas (`A3D_QR_CORE_OUTPUT`). Needed
8
+ * whenever the scene authors post-processing, HDR output control or
9
+ * transmission.
10
+ * - `direct`: the scene renders once into the canvas's own 8-bit MSAA
11
+ * framebuffer with the encode done in the forward shader (the same LDR route
12
+ * a post chain declining the v2 seam already takes). One pass, no offscreen
13
+ * multisampled target, no resolve blit.
14
+ *
15
+ * `resolveRenderPath` is a pure decision so it can be unit-tested without a GL
16
+ * context; `withDirectPath` applies it by pinning `A3D_QR_CORE_OUTPUT` off for
17
+ * the renderer's flags. `quality: "production"` never takes the direct path, so
18
+ * it reproduces the previous behaviour exactly.
19
+ */
20
+ import type { QrFlags } from "../contracts/core.js";
21
+ export type AuraQualityMode = "auto" | "production" | "safe-basic" | "cinematic";
22
+ export type AuraRenderPath = "direct" | "hdr-msaa";
23
+ export interface RenderPathInput {
24
+ /** Requested mode; `undefined` is `"auto"`. */
25
+ readonly quality: AuraQualityMode | undefined;
26
+ /**
27
+ * Reasons the scene needs the HDR target (authored post-processing, HDR
28
+ * output options, transmission, custom shaders, ...). Empty = eligible.
29
+ */
30
+ readonly blockers: readonly string[];
31
+ }
32
+ export interface RenderPathDecision {
33
+ readonly path: AuraRenderPath;
34
+ readonly quality: AuraQualityMode;
35
+ /** Human-readable reason, surfaced as `app.diagnostics().renderPath.reason`. */
36
+ readonly reason: string;
37
+ }
38
+ export declare const QUALITY_MODES: readonly AuraQualityMode[];
39
+ export declare function isQualityMode(value: unknown): value is AuraQualityMode;
40
+ export declare function resolveRenderPath(input: RenderPathInput): RenderPathDecision;
41
+ /** The parts of a render item {@link directPathItemBlockers} reads (structural, so no GL types are needed). */
42
+ export interface DirectPathItemLike {
43
+ readonly label?: string;
44
+ readonly material?: unknown;
45
+ }
46
+ /**
47
+ * RP-01: reasons a decoded scene needs the HDR target that the authored snapshot cannot show, read from the render items a GLB
48
+ * produced. Blending happens after the in-shader encode on the direct path (display space) but before it on the HDR path (linear),
49
+ * so a BLEND material renders differently (50% white over black: 113/255 direct against 197/255 HDR). Transmission needs the
50
+ * HDR scene-colour capture. The transmission test mirrors `itemReportsTransmissionLobe` (forward/Transmission.ts). Each reason
51
+ * appears once.
52
+ */
53
+ export declare function directPathItemBlockers(items: readonly DirectPathItemLike[]): string[];
54
+ /** The renderer flags for the direct path: the OutputPass/HDR-target route pinned off. */
55
+ export declare function withDirectPath(flags: QrFlags): QrFlags;
56
+ //# sourceMappingURL=DirectPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectPath.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/quality/DirectPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,eAAe,EAAsD,CAAC;AAE3G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAc5E;AAED,+GAA+G;AAC/G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAiBrF;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Direct render path (beat-three.js PRD, L-P1, contract 3.1).
3
+ *
4
+ * Two ways a frame reaches the canvas:
5
+ *
6
+ * - `hdr-msaa`: the scene renders into a 4x multisampled RGBA16F target and an
7
+ * OutputPass blit tone-maps it onto the canvas (`A3D_QR_CORE_OUTPUT`). Needed
8
+ * whenever the scene authors post-processing, HDR output control or
9
+ * transmission.
10
+ * - `direct`: the scene renders once into the canvas's own 8-bit MSAA
11
+ * framebuffer with the encode done in the forward shader (the same LDR route
12
+ * a post chain declining the v2 seam already takes). One pass, no offscreen
13
+ * multisampled target, no resolve blit.
14
+ *
15
+ * `resolveRenderPath` is a pure decision so it can be unit-tested without a GL
16
+ * context; `withDirectPath` applies it by pinning `A3D_QR_CORE_OUTPUT` off for
17
+ * the renderer's flags. `quality: "production"` never takes the direct path, so
18
+ * it reproduces the previous behaviour exactly.
19
+ */
20
+ import { withCoreOutputOff } from "../renderer/coreOutputPostRoute.js";
21
+ export const QUALITY_MODES = ["auto", "production", "safe-basic", "cinematic"];
22
+ export function isQualityMode(value) {
23
+ return typeof value === "string" && QUALITY_MODES.includes(value);
24
+ }
25
+ export function resolveRenderPath(input) {
26
+ const quality = input.quality ?? "auto";
27
+ if (quality === "production" || quality === "cinematic") {
28
+ return { path: "hdr-msaa", quality, reason: `quality "${quality}" always uses the HDR multisampled target` };
29
+ }
30
+ if (quality === "safe-basic") {
31
+ // RP-06: the direct path has no post chain, so whatever would have needed the HDR target is dropped; name it.
32
+ const dropped = input.blockers.length > 0 ? `; not rendered on this path: ${input.blockers.join("; ")}` : "";
33
+ return { path: "direct", quality, reason: `quality "safe-basic" always uses the direct path${dropped}` };
34
+ }
35
+ if (input.blockers.length > 0) {
36
+ return { path: "hdr-msaa", quality, reason: `scene needs the HDR target: ${input.blockers.join("; ")}` };
37
+ }
38
+ return { path: "direct", quality, reason: "scene authors no post-processing, HDR output or transmission" };
39
+ }
40
+ function numericParameter(material, name) {
41
+ const value = material.getParameter?.(name);
42
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
43
+ }
44
+ /**
45
+ * RP-01: reasons a decoded scene needs the HDR target that the authored snapshot cannot show, read from the render items a GLB
46
+ * produced. Blending happens after the in-shader encode on the direct path (display space) but before it on the HDR path (linear),
47
+ * so a BLEND material renders differently (50% white over black: 113/255 direct against 197/255 HDR). Transmission needs the
48
+ * HDR scene-colour capture. The transmission test mirrors `itemReportsTransmissionLobe` (forward/Transmission.ts). Each reason
49
+ * appears once.
50
+ */
51
+ export function directPathItemBlockers(items) {
52
+ const reasons = new Set();
53
+ for (const item of items) {
54
+ const material = item.material;
55
+ if (!material)
56
+ continue;
57
+ const base = material.baseMaterial ?? material;
58
+ if (base.renderState?.blend) {
59
+ reasons.add("decoded GLB has a transparent (BLEND) material");
60
+ continue;
61
+ }
62
+ if (numericParameter(base, "u_transmissionFactor") > 0.001
63
+ || numericParameter(base, "u_diffuseTransmissionFactor") > 0.001
64
+ || numericParameter(base, "u_volumeThicknessFactor") > 0.001) {
65
+ reasons.add("decoded GLB has a transmission material");
66
+ }
67
+ }
68
+ return [...reasons];
69
+ }
70
+ /** The renderer flags for the direct path: the OutputPass/HDR-target route pinned off. */
71
+ export function withDirectPath(flags) {
72
+ return withCoreOutputOff(flags);
73
+ }
74
+ //# sourceMappingURL=DirectPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectPath.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/quality/DirectPath.ts"],"names":[],"mappings":"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"}
@@ -26,11 +26,6 @@ export declare function isPrd02LegacyFallbackEnvironment(lighting: EnvironmentLi
26
26
  * heuristics under the flag).
27
27
  */
28
28
  export declare function resolvePrd02NeutralRoomLighting(legacy: EnvironmentLightingOptions | undefined): EnvironmentLightingOptions;
29
- /**
30
- * PRD-02 Phase 3 legacy bridge: when a C-09 probe is bound, the legacy
31
- * environment-lighting path samples a *linear HDR* mipped equirect — no
32
- * Reinhard, no RGBA8 (E5 fix). The legacy procedural map is dropped.
33
- */
34
29
  export declare function resolvePrd02EnvironmentLighting(source: RenderSource): EnvironmentLightingOptions | undefined;
35
30
  export declare function collectEnvironmentFog(source: RenderSource | Iterable<RenderItem> | Scene): ForwardEnvironmentFogOptions | false | undefined;
36
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Background.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/Background.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA8BtC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,4BAA4B,GAAG,SAAS,CAU1I;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,GACnB,4BAA4B,GAAG,SAAS,CA8C1C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,0BAA0B,GAAG,SAAS,CAgBtI;AAKD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAI1G;AAKD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,GAAG,0BAA0B,CAQ1H;AAKD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,0BAA0B,GAAG,SAAS,CAwC5G;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,4BAA4B,GAAG,KAAK,GAAG,SAAS,CAG3I;AA6CD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qCAAqC,EAAE,0BAWnD,CAAC"}
1
+ {"version":3,"file":"Background.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/Background.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA4DtC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,4BAA4B,GAAG,SAAS,CAU1I;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,GACnB,4BAA4B,GAAG,SAAS,CA8C1C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,0BAA0B,GAAG,SAAS,CAgBtI;AAKD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAI1G;AAKD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,GAAG,0BAA0B,CAQ1H;AAoBD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,0BAA0B,GAAG,SAAS,CAiE5G;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,4BAA4B,GAAG,KAAK,GAAG,SAAS,CAG3I;AA6CD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qCAAqC,EAAE,0BAWnD,CAAC"}
@@ -14,6 +14,31 @@ const PRD02_BACKGROUND_SAMPLER = new Sampler({
14
14
  addressU: "clamp-to-edge",
15
15
  addressV: "clamp-to-edge"
16
16
  });
17
+ function sameHemisphere(a, b) {
18
+ if (a === null || b === null)
19
+ return a === b;
20
+ for (let i = 0; i < 3; i += 1) {
21
+ if (a.sky[i] !== b.sky[i] || a.ground[i] !== b.ground[i] || a.direction[i] !== b.direction[i])
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ /**
27
+ * The ambient scalar every program reads, with the hemisphere's flat mean folded in (programs without the PRD-02
28
+ * chunk keep the hemisphere at its horizontal-normal value; the chunk's pack takes the mean back out).
29
+ */
30
+ function ambientWithHemisphereMean(ambient, hemisphere) {
31
+ if (!hemisphere)
32
+ return ambient;
33
+ const total = [0, 0, 0];
34
+ for (let i = 0; i < 3; i += 1) {
35
+ total[i] = (ambient ? ambient.color[i] * ambient.intensity : 0) + (hemisphere.sky[i] + hemisphere.ground[i]) / 2;
36
+ }
37
+ const peak = Math.max(total[0], total[1], total[2]);
38
+ if (!(peak > 0))
39
+ return ambient;
40
+ return { color: [total[0] / peak, total[1] / peak, total[2] / peak], intensity: peak };
41
+ }
17
42
  export function collectEnvironmentBackground(source) {
18
43
  if (source instanceof Scene || isIterable(source) || source.environmentBackground === false)
19
44
  return undefined;
@@ -144,6 +169,8 @@ const prd02ProbeEquirects = new WeakMap();
144
169
  * environment-lighting path samples a *linear HDR* mipped equirect — no
145
170
  * Reinhard, no RGBA8 (E5 fix). The legacy procedural map is dropped.
146
171
  */
172
+ /** Last result per probe: the lighting object only changes when the probe, its intensities or its ambient term do. */
173
+ const prd02LightingMemo = new WeakMap();
147
174
  export function resolvePrd02EnvironmentLighting(source) {
148
175
  const probe = source.environmentProbe;
149
176
  if (!probe)
@@ -156,8 +183,23 @@ export function resolvePrd02EnvironmentLighting(source) {
156
183
  const meta = source;
157
184
  const diffuse = meta.environmentProbeDiffuseIntensity ?? 1;
158
185
  const specular = meta.environmentProbeSpecularIntensity ?? 1;
159
- const ambient = meta.environmentProbeAmbient ?? null;
160
- return {
186
+ const hemisphere = meta.environmentProbeHemisphere ?? null;
187
+ const ambient = ambientWithHemisphereMean(meta.environmentProbeAmbient ?? null, hemisphere);
188
+ const withProbe = rendererQrFlags().on("A3D_QR_COMPILER") && rendererQrFlags().on("A3D_QR_LIGHTING");
189
+ const memo = prd02LightingMemo.get(probe);
190
+ if (memo
191
+ && memo.diffuse === diffuse
192
+ && memo.specular === specular
193
+ && memo.withProbe === withProbe
194
+ && sameHemisphere(memo.hemisphere, hemisphere)
195
+ && (memo.ambient === null
196
+ ? ambient === null
197
+ : ambient !== null
198
+ && memo.ambient[0] === ambient.color[0] && memo.ambient[1] === ambient.color[1] && memo.ambient[2] === ambient.color[2]
199
+ && memo.ambient[3] === ambient.intensity)) {
200
+ return { ...memo.result };
201
+ }
202
+ const result = {
161
203
  color: ambient?.color ?? [1, 1, 1],
162
204
  intensity: ambient?.intensity ?? 0,
163
205
  environmentMapTexture: new TextureBinding({
@@ -181,10 +223,20 @@ export function resolvePrd02EnvironmentLighting(source) {
181
223
  // E3 stage-2b: carry the probe itself (cube + SH9) to ForwardPass for
182
224
  // the PRD-02 IBL pack. Attached only under the conjunction so the
183
225
  // LIGHTING-only lighting object stays byte-identical.
184
- ...(rendererQrFlags().on("A3D_QR_COMPILER") && rendererQrFlags().on("A3D_QR_LIGHTING")
226
+ ...(withProbe
185
227
  ? { environmentProbe: probe }
186
- : {})
228
+ : {}),
229
+ ...(hemisphere ? { hemisphere: { sky: [...hemisphere.sky], ground: [...hemisphere.ground], direction: [...hemisphere.direction] } } : {})
187
230
  };
231
+ prd02LightingMemo.set(probe, {
232
+ diffuse,
233
+ specular,
234
+ withProbe,
235
+ hemisphere: hemisphere ? { sky: [...hemisphere.sky], ground: [...hemisphere.ground], direction: [...hemisphere.direction] } : null,
236
+ ambient: ambient ? [ambient.color[0], ambient.color[1], ambient.color[2], ambient.intensity] : null,
237
+ result
238
+ });
239
+ return { ...result };
188
240
  }
189
241
  export function collectEnvironmentFog(source) {
190
242
  if (source instanceof Scene || isIterable(source))
@@ -1 +1 @@
1
- {"version":3,"file":"Background.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/Background.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Background.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/Background.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Per-instance frustum culling for large instanced draws (forward pass, main camera only).
3
+ *
4
+ * A 10,000-instance forest submits every instance to the GPU even though a third of them are behind or beside the camera; on a software
5
+ * rasteriser the vertex stage alone for those instances dominates the frame. This compacts the instance matrices (and colours) to the ones
6
+ * whose bounding sphere intersects the view frustum, in draw order, so the draw is pixel-identical and cheaper. It is conservative: the
7
+ * sphere is inflated, and anything it cannot reason about (non-finite matrices, tiny draws) is left to the caller's normal path.
8
+ *
9
+ * The scan and the output are allocation-free in steady state (SI-2): the keep list and the compacted transforms and colours live in
10
+ * module scratch buffers that grow on demand and are reused, so the result arrays are views that stay valid only until the next call.
11
+ * Every consumer in the forward draw copies them synchronously (InstanceBuffer.setMatrices, the uniform pack, createBuffer with data).
12
+ * Before this a 900-slot pool with most slots parked off-screen allocated about 72 KB of fresh arrays per frame.
13
+ */
14
+ /** Below this many instances the GPU handles the draw trivially and the scan would cost more than it saves. */
15
+ export declare const MIN_CULLED_INSTANCES = 512;
16
+ export interface InstanceFrustumCullInput {
17
+ /** Column-major view-projection of the camera that rasterises this draw (GL clip space, -w..w). */
18
+ readonly viewProjection: ArrayLike<number>;
19
+ /** The item's model matrix (column-major), or undefined for identity. */
20
+ readonly modelMatrix?: ArrayLike<number> | undefined;
21
+ /** Local-space AABB of the instanced geometry. */
22
+ readonly bounds: {
23
+ readonly min: ArrayLike<number>;
24
+ readonly max: ArrayLike<number>;
25
+ };
26
+ readonly transforms: Float32Array;
27
+ /** Optional per-instance RGBA (4 floats each), compacted alongside. */
28
+ readonly colors?: Float32Array | undefined;
29
+ }
30
+ export interface InstanceFrustumCullResult {
31
+ readonly transforms: Float32Array;
32
+ readonly colors?: Float32Array;
33
+ readonly count: number;
34
+ readonly total: number;
35
+ }
36
+ /**
37
+ * Returns the visible subset (views into reused scratch, valid until the next call), or null when nothing was culled (or culling does not apply), in which case the caller keeps its originals.
38
+ * A result with `count === 0` means every instance is outside the frustum.
39
+ */
40
+ export declare function cullInstancesToFrustum(input: InstanceFrustumCullInput): InstanceFrustumCullResult | null;
41
+ //# sourceMappingURL=InstanceFrustumCull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceFrustumCull.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/InstanceFrustumCull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAIxC,MAAM,WAAW,wBAAwB;IACvC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACrD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IACtF,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAwCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,IAAI,CAoExG"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Per-instance frustum culling for large instanced draws (forward pass, main camera only).
3
+ *
4
+ * A 10,000-instance forest submits every instance to the GPU even though a third of them are behind or beside the camera; on a software
5
+ * rasteriser the vertex stage alone for those instances dominates the frame. This compacts the instance matrices (and colours) to the ones
6
+ * whose bounding sphere intersects the view frustum, in draw order, so the draw is pixel-identical and cheaper. It is conservative: the
7
+ * sphere is inflated, and anything it cannot reason about (non-finite matrices, tiny draws) is left to the caller's normal path.
8
+ *
9
+ * The scan and the output are allocation-free in steady state (SI-2): the keep list and the compacted transforms and colours live in
10
+ * module scratch buffers that grow on demand and are reused, so the result arrays are views that stay valid only until the next call.
11
+ * Every consumer in the forward draw copies them synchronously (InstanceBuffer.setMatrices, the uniform pack, createBuffer with data).
12
+ * Before this a 900-slot pool with most slots parked off-screen allocated about 72 KB of fresh arrays per frame.
13
+ */
14
+ /** Below this many instances the GPU handles the draw trivially and the scan would cost more than it saves. */
15
+ export const MIN_CULLED_INSTANCES = 512;
16
+ /** Conservative inflation of each instance's bounding sphere (covers wind sway, rounding and TAA jitter). */
17
+ const RADIUS_INFLATION = 1.15;
18
+ let keepScratch = new Uint32Array(0);
19
+ let transformScratch = new Float32Array(0);
20
+ let colorScratch = new Float32Array(0);
21
+ function grown(current, length) {
22
+ return current.length >= length ? current : new Float32Array(Math.max(length, current.length * 2));
23
+ }
24
+ const planes = new Float64Array(24);
25
+ function extractPlanes(vp) {
26
+ // Gribb-Hartmann on a column-major matrix: row i = (m[i], m[4+i], m[8+i], m[12+i]).
27
+ const r = (row, col) => vp[col * 4 + row];
28
+ const set = (index, a, b, c, d) => {
29
+ const length = Math.hypot(a, b, c);
30
+ if (!(length > 1e-12) || !Number.isFinite(d))
31
+ return false;
32
+ const o = index * 4;
33
+ planes[o] = a / length;
34
+ planes[o + 1] = b / length;
35
+ planes[o + 2] = c / length;
36
+ planes[o + 3] = d / length;
37
+ return true;
38
+ };
39
+ for (let i = 0; i < 16; i += 1)
40
+ if (!Number.isFinite(vp[i]))
41
+ return false;
42
+ return (set(0, r(3, 0) + r(0, 0), r(3, 1) + r(0, 1), r(3, 2) + r(0, 2), r(3, 3) + r(0, 3)) && // left
43
+ set(1, r(3, 0) - r(0, 0), r(3, 1) - r(0, 1), r(3, 2) - r(0, 2), r(3, 3) - r(0, 3)) && // right
44
+ set(2, r(3, 0) + r(1, 0), r(3, 1) + r(1, 1), r(3, 2) + r(1, 2), r(3, 3) + r(1, 3)) && // bottom
45
+ set(3, r(3, 0) - r(1, 0), r(3, 1) - r(1, 1), r(3, 2) - r(1, 2), r(3, 3) - r(1, 3)) && // top
46
+ set(4, r(3, 0) + r(2, 0), r(3, 1) + r(2, 1), r(3, 2) + r(2, 2), r(3, 3) + r(2, 3)) && // near (GL; looser than a 0..1 near)
47
+ set(5, r(3, 0) - r(2, 0), r(3, 1) - r(2, 1), r(3, 2) - r(2, 2), r(3, 3) - r(2, 3)) // far
48
+ );
49
+ }
50
+ function isIdentity(m) {
51
+ if (!m || m.length < 16)
52
+ return true;
53
+ for (let i = 0; i < 16; i += 1) {
54
+ if (m[i] !== ((i % 5 === 0) ? 1 : 0))
55
+ return false;
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Returns the visible subset (views into reused scratch, valid until the next call), or null when nothing was culled (or culling does not apply), in which case the caller keeps its originals.
61
+ * A result with `count === 0` means every instance is outside the frustum.
62
+ */
63
+ export function cullInstancesToFrustum(input) {
64
+ const { transforms, colors, bounds } = input;
65
+ const total = Math.floor(transforms.length / 16);
66
+ if (total < MIN_CULLED_INSTANCES || transforms.length % 16 !== 0)
67
+ return null;
68
+ if (colors !== undefined && colors.length < total * 4)
69
+ return null;
70
+ if (!extractPlanes(input.viewProjection))
71
+ return null;
72
+ const cx = (bounds.min[0] + bounds.max[0]) / 2, cy = (bounds.min[1] + bounds.max[1]) / 2, cz = (bounds.min[2] + bounds.max[2]) / 2;
73
+ const radius = Math.hypot(bounds.max[0] - bounds.min[0], bounds.max[1] - bounds.min[1], bounds.max[2] - bounds.min[2]) / 2 * RADIUS_INFLATION;
74
+ if (!Number.isFinite(radius) || !Number.isFinite(cx + cy + cz))
75
+ return null;
76
+ const model = input.modelMatrix;
77
+ const modelIdentity = isIdentity(model);
78
+ const m = model;
79
+ // Model scale bound for the sphere radius when the model matrix is not identity.
80
+ let modelScale = 1;
81
+ if (!modelIdentity) {
82
+ modelScale = Math.max(Math.hypot(m[0], m[1], m[2]), Math.hypot(m[4], m[5], m[6]), Math.hypot(m[8], m[9], m[10]));
83
+ if (!Number.isFinite(modelScale))
84
+ return null;
85
+ }
86
+ if (keepScratch.length < total)
87
+ keepScratch = new Uint32Array(total);
88
+ let kept = 0;
89
+ for (let i = 0; i < total; i += 1) {
90
+ const o = i * 16;
91
+ const a0 = transforms[o], a1 = transforms[o + 1], a2 = transforms[o + 2];
92
+ const b0 = transforms[o + 4], b1 = transforms[o + 5], b2 = transforms[o + 6];
93
+ const c0 = transforms[o + 8], c1 = transforms[o + 9], c2 = transforms[o + 10];
94
+ // Instance-space centre of the geometry, then (optionally) the model transform.
95
+ let wx = a0 * cx + b0 * cy + c0 * cz + transforms[o + 12];
96
+ let wy = a1 * cx + b1 * cy + c1 * cz + transforms[o + 13];
97
+ let wz = a2 * cx + b2 * cy + c2 * cz + transforms[o + 14];
98
+ const sx2 = a0 * a0 + a1 * a1 + a2 * a2, sy2 = b0 * b0 + b1 * b1 + b2 * b2, sz2 = c0 * c0 + c1 * c1 + c2 * c2;
99
+ let scale = Math.sqrt(sx2 > sy2 ? (sx2 > sz2 ? sx2 : sz2) : (sy2 > sz2 ? sy2 : sz2));
100
+ if (!modelIdentity) {
101
+ const tx = wx, ty = wy, tz = wz;
102
+ wx = m[0] * tx + m[4] * ty + m[8] * tz + m[12];
103
+ wy = m[1] * tx + m[5] * ty + m[9] * tz + m[13];
104
+ wz = m[2] * tx + m[6] * ty + m[10] * tz + m[14];
105
+ scale *= modelScale;
106
+ }
107
+ const r = radius * scale;
108
+ let visible = true;
109
+ // A non-finite centre fails every comparison below, so it is kept (never culled on bad data).
110
+ for (let p = 0; p < 24; p += 4) {
111
+ if (planes[p] * wx + planes[p + 1] * wy + planes[p + 2] * wz + planes[p + 3] < -r) {
112
+ visible = false;
113
+ break;
114
+ }
115
+ }
116
+ if (!visible)
117
+ continue;
118
+ keepScratch[kept] = i;
119
+ kept += 1;
120
+ }
121
+ if (kept === total)
122
+ return null;
123
+ transformScratch = grown(transformScratch, kept * 16);
124
+ const outTransforms = transformScratch.subarray(0, kept * 16);
125
+ let outColors;
126
+ if (colors !== undefined) {
127
+ colorScratch = grown(colorScratch, kept * 4);
128
+ outColors = colorScratch.subarray(0, kept * 4);
129
+ }
130
+ for (let k = 0; k < kept; k += 1) {
131
+ const i = keepScratch[k];
132
+ outTransforms.set(transforms.subarray(i * 16, i * 16 + 16), k * 16);
133
+ if (outColors !== undefined && colors !== undefined)
134
+ outColors.set(colors.subarray(i * 4, i * 4 + 4), k * 4);
135
+ }
136
+ return { transforms: outTransforms, ...(outColors ? { colors: outColors } : {}), count: kept, total };
137
+ }
138
+ //# sourceMappingURL=InstanceFrustumCull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceFrustumCull.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/InstanceFrustumCull.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export declare class RendererShadowOrchestrator {
25
25
  readonly camera?: Camera;
26
26
  /** #1141: VP + eye of the frame's (possibly structural) camera, for the prd02 bridge. */
27
27
  readonly frameCamera?: Prd02BridgeFrameCamera;
28
+ /** Every visible item of the frame (shadow receivers); lets the sun cascades skip a cascade no item selects. */
29
+ readonly receivers?: readonly RenderItem[];
28
30
  }): ForwardShadowMapOptions | undefined;
29
31
  private executeRendererCascadedShadowMap;
30
32
  private executeRendererPointShadowMap;
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowOrchestration.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,KAAK,qBAAqB,EAAuB,MAAM,aAAa,CAAC;AAK9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,EAA2B,MAAM,EAAqE,KAAK,EAAuF,MAAM,eAAe,CAAC;AAE/N,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,uBAAuB,GAAG,SAAS,CAEhI;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,qBAAqB,GAAG,SAAS,CAKnI;AA4OD,qBAAa,0BAA0B;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY;gBAAlB,IAAI,EAAE,YAAY;IAEvC,8FAA8F;IAC9F,OAAO,CAAC,uBAAuB;IAe/B,wBAAwB,CAAC,OAAO,EAAE;QAChC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,GAAG,SAAS,CAAC;QAC1D,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;QAC3C,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;QACtC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC;YAAE,OAAO,IAAI,IAAI,CAAA;SAAE,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,yFAAyF;QACzF,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;KAC/C,GAAG,uBAAuB,GAAG,SAAS;IAgGvC,OAAO,CAAC,gCAAgC;IA4ExC,OAAO,CAAC,6BAA6B;CAwFtC"}
1
+ {"version":3,"file":"ShadowOrchestration.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,KAAK,qBAAqB,EAAuB,MAAM,aAAa,CAAC;AAK9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,EAA2B,MAAM,EAAqE,KAAK,EAAuF,MAAM,eAAe,CAAC;AAE/N,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,uBAAuB,GAAG,SAAS,CAEhI;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,qBAAqB,GAAG,SAAS,CAKnI;AA4OD,qBAAa,0BAA0B;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY;gBAAlB,IAAI,EAAE,YAAY;IAEvC,8FAA8F;IAC9F,OAAO,CAAC,uBAAuB;IAe/B,wBAAwB,CAAC,OAAO,EAAE;QAChC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,GAAG,SAAS,CAAC;QAC1D,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;QAC3C,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;QACtC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC;YAAE,OAAO,IAAI,IAAI,CAAA;SAAE,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,yFAAyF;QACzF,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;QAC9C,gHAAgH;QAChH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;KAC5C,GAAG,uBAAuB,GAAG,SAAS;IAiGvC,OAAO,CAAC,gCAAgC;IA4ExC,OAAO,CAAC,6BAA6B;CAwFtC"}
@@ -258,6 +258,7 @@ export class RendererShadowOrchestrator {
258
258
  items: options.items,
259
259
  camera: options.camera,
260
260
  ...(options.frameCamera ? { frameCamera: options.frameCamera } : {}),
261
+ ...(options.receivers ? { receivers: options.receivers } : {}),
261
262
  // PRD 11: the app's live C-27 tier sizes the bridged cascades (undefined → high).
262
263
  tier: prd11LiveQualityTier(rendererQrFlags(this.host.device))?.settings,
263
264
  flags: rendererQrFlags()