@aura3d/engine 4.3.7 → 4.5.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 (499) hide show
  1. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  2. package/dist/animation/AnimationTrack.js +3 -1
  3. package/dist/animation/AnimationTrack.js.map +1 -1
  4. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  5. package/dist/animation/pose/PoseMixer.js +3 -0
  6. package/dist/animation/pose/PoseMixer.js.map +1 -1
  7. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  8. package/dist/assets/GLTFAnimationRuntime.js +11 -4
  9. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  10. package/dist/assets/GLTFLoader.d.ts +2 -0
  11. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  12. package/dist/assets/GLTFLoader.js +17 -3
  13. package/dist/assets/GLTFLoader.js.map +1 -1
  14. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  15. package/dist/aura3d-cli/migrate-three/emit.js +109 -29
  16. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  17. package/dist/aura3d-cli/migrate-three/mappings.d.ts +15 -0
  18. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  19. package/dist/aura3d-cli/migrate-three/mappings.js +70 -60
  20. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  21. package/dist/aura3d-cli/migrate-three/parse.d.ts +9 -0
  22. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  23. package/dist/aura3d-cli/migrate-three/parse.js +1 -1
  24. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  25. package/dist/create-aura3d/index.js +1 -1
  26. package/dist/engine/agent-api/Clock.d.ts +4 -1
  27. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  28. package/dist/engine/agent-api/Clock.js +8 -2
  29. package/dist/engine/agent-api/Clock.js.map +1 -1
  30. package/dist/engine/agent-api/animationMask.d.ts +14 -0
  31. package/dist/engine/agent-api/animationMask.d.ts.map +1 -0
  32. package/dist/engine/agent-api/animationMask.js +23 -0
  33. package/dist/engine/agent-api/animationMask.js.map +1 -0
  34. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
  35. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  36. package/dist/engine/agent-api/app/actorAnimationHandle.js +21 -1
  37. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  38. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  39. package/dist/engine/agent-api/app/createAuraApp.js +55 -5
  40. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  41. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  42. package/dist/engine/agent-api/app/frameLoop.js +28 -6
  43. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  44. package/dist/engine/agent-api/app/mountRenderer.d.ts +6 -1
  45. package/dist/engine/agent-api/app/mountRenderer.d.ts.map +1 -1
  46. package/dist/engine/agent-api/app/mountRenderer.js +2 -2
  47. package/dist/engine/agent-api/app/mountRenderer.js.map +1 -1
  48. package/dist/engine/agent-api/app/renderPath.d.ts +57 -0
  49. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -0
  50. package/dist/engine/agent-api/app/renderPath.js +163 -0
  51. package/dist/engine/agent-api/app/renderPath.js.map +1 -0
  52. package/dist/engine/agent-api/app/rendererOptions.d.ts +7 -0
  53. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  54. package/dist/engine/agent-api/app/rendererOptions.js +20 -0
  55. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  56. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  57. package/dist/engine/agent-api/app/routeState.js +8 -3
  58. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  59. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  60. package/dist/engine/agent-api/app/runtimeNodes.js +35 -0
  61. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  62. package/dist/engine/agent-api/camera/extension.d.ts.map +1 -1
  63. package/dist/engine/agent-api/camera/extension.js +2 -2
  64. package/dist/engine/agent-api/camera/extension.js.map +1 -1
  65. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts +2 -0
  66. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts.map +1 -1
  67. package/dist/engine/agent-api/camera/rigs/fromSpec.js +11 -1
  68. package/dist/engine/agent-api/camera/rigs/fromSpec.js.map +1 -1
  69. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  70. package/dist/engine/agent-api/compiler/animation.js +2 -1
  71. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  72. package/dist/engine/agent-api/compiler/camera.d.ts.map +1 -1
  73. package/dist/engine/agent-api/compiler/camera.js +10 -0
  74. package/dist/engine/agent-api/compiler/camera.js.map +1 -1
  75. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  76. package/dist/engine/agent-api/compiler/compileScene.js +9 -2
  77. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  78. package/dist/engine/agent-api/compiler/environment.d.ts +19 -2
  79. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  80. package/dist/engine/agent-api/compiler/environment.js +81 -12
  81. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  82. package/dist/engine/agent-api/compiler/geometry.d.ts +18 -1
  83. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  84. package/dist/engine/agent-api/compiler/geometry.js +25 -5
  85. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  86. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  87. package/dist/engine/agent-api/compiler/lights.js +14 -6
  88. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  89. package/dist/engine/agent-api/compiler/observations.d.ts +9 -1
  90. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  91. package/dist/engine/agent-api/compiler/observations.js +5 -4
  92. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  93. package/dist/engine/agent-api/compiler/optionCoverage.js +17 -0
  94. package/dist/engine/agent-api/compiler/optionCoverage.js.map +1 -1
  95. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  96. package/dist/engine/agent-api/compiler/postprocess.js +2 -0
  97. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  98. package/dist/engine/agent-api/compiler/primitives.d.ts +22 -0
  99. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  100. package/dist/engine/agent-api/compiler/primitives.js +88 -3
  101. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  102. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  103. package/dist/engine/agent-api/compiler/renderInput.js +40 -4
  104. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  105. package/dist/engine/agent-api/compiler/renderer.d.ts +1 -1
  106. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  107. package/dist/engine/agent-api/compiler/renderer.js +22 -8
  108. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  109. package/dist/engine/agent-api/compiler/shadows.d.ts +32 -1
  110. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  111. package/dist/engine/agent-api/compiler/shadows.js +99 -4
  112. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  113. package/dist/engine/agent-api/diagnostics.d.ts +22 -0
  114. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  115. package/dist/engine/agent-api/diagnostics.js +53 -1
  116. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  117. package/dist/engine/agent-api/feel/extension.d.ts.map +1 -1
  118. package/dist/engine/agent-api/feel/extension.js +2 -1
  119. package/dist/engine/agent-api/feel/extension.js.map +1 -1
  120. package/dist/engine/agent-api/looks/lookFill.d.ts +4 -0
  121. package/dist/engine/agent-api/looks/lookFill.d.ts.map +1 -0
  122. package/dist/engine/agent-api/looks/lookFill.js +29 -0
  123. package/dist/engine/agent-api/looks/lookFill.js.map +1 -0
  124. package/dist/engine/agent-api/looks/lookPresets.d.ts +13 -0
  125. package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
  126. package/dist/engine/agent-api/looks/lookPresets.js +5 -0
  127. package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
  128. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  129. package/dist/engine/agent-api/looks/looks.js +6 -0
  130. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  131. package/dist/engine/agent-api/looks/structuralQA.d.ts.map +1 -1
  132. package/dist/engine/agent-api/looks/structuralQA.js +4 -2
  133. package/dist/engine/agent-api/looks/structuralQA.js.map +1 -1
  134. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +5 -4
  135. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  136. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +61 -5
  137. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  138. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  139. package/dist/engine/agent-api/nodes/groups.js +2 -1
  140. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  141. package/dist/engine/agent-api/nodes/interactions.d.ts +32 -10
  142. package/dist/engine/agent-api/nodes/interactions.d.ts.map +1 -1
  143. package/dist/engine/agent-api/nodes/interactions.js +40 -11
  144. package/dist/engine/agent-api/nodes/interactions.js.map +1 -1
  145. package/dist/engine/agent-api/nodes/model.d.ts +3 -0
  146. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  147. package/dist/engine/agent-api/nodes/model.js +4 -1
  148. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  149. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts +14 -0
  150. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts.map +1 -0
  151. package/dist/engine/agent-api/nodes/optionDiagnostics.js +34 -0
  152. package/dist/engine/agent-api/nodes/optionDiagnostics.js.map +1 -0
  153. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts +9 -0
  154. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts.map +1 -0
  155. package/dist/engine/agent-api/nodes/orbitInteraction.js +52 -0
  156. package/dist/engine/agent-api/nodes/orbitInteraction.js.map +1 -0
  157. package/dist/engine/agent-api/nodes/physics.d.ts +1 -0
  158. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  159. package/dist/engine/agent-api/nodes/physics.js +15 -3
  160. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  161. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  162. package/dist/engine/agent-api/nodes/primitives.js +23 -0
  163. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  164. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  165. package/dist/engine/agent-api/nodes/scene.js +4 -2
  166. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  167. package/dist/engine/agent-api/nodes/text3d.d.ts.map +1 -1
  168. package/dist/engine/agent-api/nodes/text3d.js +11 -2
  169. package/dist/engine/agent-api/nodes/text3d.js.map +1 -1
  170. package/dist/engine/agent-api/nodes/types/runtime.d.ts +33 -0
  171. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  172. package/dist/engine/agent-api/nodes/types.d.ts +42 -0
  173. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  174. package/dist/engine/agent-api/platform.d.ts +5 -0
  175. package/dist/engine/agent-api/platform.d.ts.map +1 -1
  176. package/dist/engine/agent-api/platform.js +15 -0
  177. package/dist/engine/agent-api/platform.js.map +1 -1
  178. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  179. package/dist/engine/agent-api/postBridge.js +5 -1
  180. package/dist/engine/agent-api/postBridge.js.map +1 -1
  181. package/dist/engine/agent-api/sceneKitDiagnostics.d.ts.map +1 -1
  182. package/dist/engine/agent-api/sceneKitDiagnostics.js +5 -2
  183. package/dist/engine/agent-api/sceneKitDiagnostics.js.map +1 -1
  184. package/dist/engine/contracts/animation.d.ts +5 -3
  185. package/dist/engine/contracts/animation.d.ts.map +1 -1
  186. package/dist/engine/contracts/animation.js.map +1 -1
  187. package/dist/engine/contracts/flags.d.ts.map +1 -1
  188. package/dist/engine/contracts/flags.js +2 -1
  189. package/dist/engine/contracts/flags.js.map +1 -1
  190. package/dist/engine/contracts/stubs/game.d.ts.map +1 -1
  191. package/dist/engine/contracts/stubs/game.js +9 -1
  192. package/dist/engine/contracts/stubs/game.js.map +1 -1
  193. package/dist/engine/contracts/urlCache.d.ts +4 -0
  194. package/dist/engine/contracts/urlCache.d.ts.map +1 -0
  195. package/dist/engine/contracts/urlCache.js +25 -0
  196. package/dist/engine/contracts/urlCache.js.map +1 -0
  197. package/dist/engine/lanes/prd01/outputSurface.d.ts.map +1 -1
  198. package/dist/engine/lanes/prd01/outputSurface.js +25 -1
  199. package/dist/engine/lanes/prd01/outputSurface.js.map +1 -1
  200. package/dist/math/SphericalHarmonics3.d.ts +6 -3
  201. package/dist/math/SphericalHarmonics3.d.ts.map +1 -1
  202. package/dist/math/SphericalHarmonics3.js +8 -5
  203. package/dist/math/SphericalHarmonics3.js.map +1 -1
  204. package/dist/math/three/Box3.d.ts +106 -0
  205. package/dist/math/three/Box3.d.ts.map +1 -0
  206. package/dist/math/three/Box3.js +348 -0
  207. package/dist/math/three/Box3.js.map +1 -0
  208. package/dist/math/three/Color.d.ts +127 -0
  209. package/dist/math/three/Color.d.ts.map +1 -0
  210. package/dist/math/three/Color.js +501 -0
  211. package/dist/math/three/Color.js.map +1 -0
  212. package/dist/math/three/Euler.d.ts +50 -0
  213. package/dist/math/three/Euler.d.ts.map +1 -0
  214. package/dist/math/three/Euler.js +210 -0
  215. package/dist/math/three/Euler.js.map +1 -0
  216. package/dist/math/three/Frustum.d.ts +59 -0
  217. package/dist/math/three/Frustum.d.ts.map +1 -0
  218. package/dist/math/three/Frustum.js +135 -0
  219. package/dist/math/three/Frustum.js.map +1 -0
  220. package/dist/math/three/Matrix3.d.ts +56 -0
  221. package/dist/math/three/Matrix3.d.ts.map +1 -0
  222. package/dist/math/three/Matrix3.js +248 -0
  223. package/dist/math/three/Matrix3.js.map +1 -0
  224. package/dist/math/three/Matrix4.d.ts +79 -0
  225. package/dist/math/three/Matrix4.d.ts.map +1 -0
  226. package/dist/math/three/Matrix4.js +708 -0
  227. package/dist/math/three/Matrix4.js.map +1 -0
  228. package/dist/math/three/Plane.d.ts +65 -0
  229. package/dist/math/three/Plane.d.ts.map +1 -0
  230. package/dist/math/three/Plane.js +135 -0
  231. package/dist/math/three/Plane.js.map +1 -0
  232. package/dist/math/three/Quaternion.d.ts +91 -0
  233. package/dist/math/three/Quaternion.d.ts.map +1 -0
  234. package/dist/math/three/Quaternion.js +444 -0
  235. package/dist/math/three/Quaternion.js.map +1 -0
  236. package/dist/math/three/Ray.d.ts +56 -0
  237. package/dist/math/three/Ray.d.ts.map +1 -0
  238. package/dist/math/three/Ray.js +340 -0
  239. package/dist/math/three/Ray.js.map +1 -0
  240. package/dist/math/three/Sphere.d.ts +58 -0
  241. package/dist/math/three/Sphere.d.ts.map +1 -0
  242. package/dist/math/three/Sphere.js +166 -0
  243. package/dist/math/three/Sphere.js.map +1 -0
  244. package/dist/math/three/Triangle.d.ts +58 -0
  245. package/dist/math/three/Triangle.d.ts.map +1 -0
  246. package/dist/math/three/Triangle.js +229 -0
  247. package/dist/math/three/Triangle.js.map +1 -0
  248. package/dist/math/three/Vector2.d.ts +88 -0
  249. package/dist/math/three/Vector2.d.ts.map +1 -0
  250. package/dist/math/three/Vector2.js +283 -0
  251. package/dist/math/three/Vector2.js.map +1 -0
  252. package/dist/math/three/Vector3.d.ts +137 -0
  253. package/dist/math/three/Vector3.d.ts.map +1 -0
  254. package/dist/math/three/Vector3.js +458 -0
  255. package/dist/math/three/Vector3.js.map +1 -0
  256. package/dist/math/three/Vector4.d.ts +100 -0
  257. package/dist/math/three/Vector4.d.ts.map +1 -0
  258. package/dist/math/three/Vector4.js +443 -0
  259. package/dist/math/three/Vector4.js.map +1 -0
  260. package/dist/math/three/index.d.ts +29 -0
  261. package/dist/math/three/index.d.ts.map +1 -0
  262. package/dist/math/three/index.js +29 -0
  263. package/dist/math/three/index.js.map +1 -0
  264. package/dist/react/index.d.ts +8 -0
  265. package/dist/react/index.d.ts.map +1 -1
  266. package/dist/react/index.js +47 -20
  267. package/dist/react/index.js.map +1 -1
  268. package/dist/rendering/DepthPass.d.ts.map +1 -1
  269. package/dist/rendering/DepthPass.js +3 -2
  270. package/dist/rendering/DepthPass.js.map +1 -1
  271. package/dist/rendering/ForwardPass.d.ts +13 -0
  272. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  273. package/dist/rendering/ForwardPass.js +64 -11
  274. package/dist/rendering/ForwardPass.js.map +1 -1
  275. package/dist/rendering/MaterialBinding.js +6 -2
  276. package/dist/rendering/MaterialBinding.js.map +1 -1
  277. package/dist/rendering/Renderer.d.ts +8 -0
  278. package/dist/rendering/Renderer.d.ts.map +1 -1
  279. package/dist/rendering/Renderer.js +37 -6
  280. package/dist/rendering/Renderer.js.map +1 -1
  281. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  282. package/dist/rendering/ShaderChunks.js +3 -1
  283. package/dist/rendering/ShaderChunks.js.map +1 -1
  284. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  285. package/dist/rendering/ShaderLibrary.js +17 -5
  286. package/dist/rendering/ShaderLibrary.js.map +1 -1
  287. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  288. package/dist/rendering/ShaderLibraryCore.js +2 -1
  289. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  290. package/dist/rendering/WebGL2Device.d.ts +16 -1
  291. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  292. package/dist/rendering/WebGL2Device.js +94 -37
  293. package/dist/rendering/WebGL2Device.js.map +1 -1
  294. package/dist/rendering/WebGL2StateCache.d.ts +22 -0
  295. package/dist/rendering/WebGL2StateCache.d.ts.map +1 -1
  296. package/dist/rendering/WebGL2StateCache.js +71 -42
  297. package/dist/rendering/WebGL2StateCache.js.map +1 -1
  298. package/dist/rendering/contracts/core.d.ts.map +1 -1
  299. package/dist/rendering/contracts/core.js +22 -2
  300. package/dist/rendering/contracts/core.js.map +1 -1
  301. package/dist/rendering/contracts/program.d.ts.map +1 -1
  302. package/dist/rendering/contracts/program.js +8 -1
  303. package/dist/rendering/contracts/program.js.map +1 -1
  304. package/dist/rendering/contracts/quality.d.ts +21 -0
  305. package/dist/rendering/contracts/quality.d.ts.map +1 -1
  306. package/dist/rendering/contracts/quality.js +5 -0
  307. package/dist/rendering/contracts/quality.js.map +1 -1
  308. package/dist/rendering/contracts/renderItem.d.ts +6 -0
  309. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  310. package/dist/rendering/contracts/structuralMemo.d.ts +23 -0
  311. package/dist/rendering/contracts/structuralMemo.d.ts.map +1 -0
  312. package/dist/rendering/contracts/structuralMemo.js +81 -0
  313. package/dist/rendering/contracts/structuralMemo.js.map +1 -0
  314. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  315. package/dist/rendering/environment/EnvironmentCache.js +6 -1
  316. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  317. package/dist/rendering/environment/FirstFrameGate.d.ts +23 -0
  318. package/dist/rendering/environment/FirstFrameGate.d.ts.map +1 -0
  319. package/dist/rendering/environment/FirstFrameGate.js +58 -0
  320. package/dist/rendering/environment/FirstFrameGate.js.map +1 -0
  321. package/dist/rendering/environment/Rgb9e5Cube.d.ts.map +1 -1
  322. package/dist/rendering/environment/Rgb9e5Cube.js +8 -4
  323. package/dist/rendering/environment/Rgb9e5Cube.js.map +1 -1
  324. package/dist/rendering/environment/probeBuild.d.ts +29 -0
  325. package/dist/rendering/environment/probeBuild.d.ts.map +1 -1
  326. package/dist/rendering/environment/probeBuild.js +124 -45
  327. package/dist/rendering/environment/probeBuild.js.map +1 -1
  328. package/dist/rendering/forward/Lighting.d.ts +11 -3
  329. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  330. package/dist/rendering/forward/Lighting.js +25 -15
  331. package/dist/rendering/forward/Lighting.js.map +1 -1
  332. package/dist/rendering/forward/contactShadowMaskStore.d.ts +41 -0
  333. package/dist/rendering/forward/contactShadowMaskStore.d.ts.map +1 -0
  334. package/dist/rendering/forward/contactShadowMaskStore.js +85 -0
  335. package/dist/rendering/forward/contactShadowMaskStore.js.map +1 -0
  336. package/dist/rendering/geometry/Shape.d.ts.map +1 -1
  337. package/dist/rendering/geometry/Shape.js +7 -2
  338. package/dist/rendering/geometry/Shape.js.map +1 -1
  339. package/dist/rendering/geometry/Support.d.ts +4 -0
  340. package/dist/rendering/geometry/Support.d.ts.map +1 -1
  341. package/dist/rendering/geometry/Support.js +3 -2
  342. package/dist/rendering/geometry/Support.js.map +1 -1
  343. package/dist/rendering/index.d.ts +6 -0
  344. package/dist/rendering/index.d.ts.map +1 -1
  345. package/dist/rendering/index.js +5 -0
  346. package/dist/rendering/index.js.map +1 -1
  347. package/dist/rendering/passes/ContactShadowPass.d.ts +40 -3
  348. package/dist/rendering/passes/ContactShadowPass.d.ts.map +1 -1
  349. package/dist/rendering/passes/ContactShadowPass.js +73 -13
  350. package/dist/rendering/passes/ContactShadowPass.js.map +1 -1
  351. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  352. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  353. package/dist/rendering/passes/Prd02ContactShadowsContributor.js +179 -28
  354. package/dist/rendering/passes/Prd02ContactShadowsContributor.js.map +1 -1
  355. package/dist/rendering/program/ProgramFeatures.d.ts +6 -0
  356. package/dist/rendering/program/ProgramFeatures.d.ts.map +1 -1
  357. package/dist/rendering/program/ProgramFeatures.js +11 -5
  358. package/dist/rendering/program/ProgramFeatures.js.map +1 -1
  359. package/dist/rendering/program/ProgramGenerator.d.ts +6 -0
  360. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  361. package/dist/rendering/program/ProgramGenerator.js +36 -1
  362. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  363. package/dist/rendering/program/ProgramKey.d.ts.map +1 -1
  364. package/dist/rendering/program/ProgramKey.js +4 -1
  365. package/dist/rendering/program/ProgramKey.js.map +1 -1
  366. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +1 -1
  367. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  368. package/dist/rendering/program/chunks/shadow_forward.glsl.js +4 -1
  369. package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
  370. package/dist/rendering/quality/DirectPath.d.ts +43 -0
  371. package/dist/rendering/quality/DirectPath.d.ts.map +1 -0
  372. package/dist/rendering/quality/DirectPath.js +42 -0
  373. package/dist/rendering/quality/DirectPath.js.map +1 -0
  374. package/dist/rendering/renderer/Background.d.ts +0 -5
  375. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  376. package/dist/rendering/renderer/Background.js +25 -2
  377. package/dist/rendering/renderer/Background.js.map +1 -1
  378. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +39 -0
  379. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -0
  380. package/dist/rendering/renderer/InstanceFrustumCull.js +127 -0
  381. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -0
  382. package/dist/rendering/renderer/ShadowOrchestration.d.ts +2 -0
  383. package/dist/rendering/renderer/ShadowOrchestration.d.ts.map +1 -1
  384. package/dist/rendering/renderer/ShadowOrchestration.js +1 -0
  385. package/dist/rendering/renderer/ShadowOrchestration.js.map +1 -1
  386. package/dist/rendering/renderer/coreOutputPostRoute.d.ts +0 -5
  387. package/dist/rendering/renderer/coreOutputPostRoute.d.ts.map +1 -1
  388. package/dist/rendering/renderer/coreOutputPostRoute.js +12 -2
  389. package/dist/rendering/renderer/coreOutputPostRoute.js.map +1 -1
  390. package/dist/rendering/resources/InstanceBuffer.d.ts +2 -0
  391. package/dist/rendering/resources/InstanceBuffer.d.ts.map +1 -1
  392. package/dist/rendering/resources/InstanceBuffer.js +23 -0
  393. package/dist/rendering/resources/InstanceBuffer.js.map +1 -1
  394. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  395. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  396. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js +41 -19
  397. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  398. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  399. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  400. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  401. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  402. package/dist/rendering/shadows/CascadeUse.d.ts +28 -0
  403. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -0
  404. package/dist/rendering/shadows/CascadeUse.js +45 -0
  405. package/dist/rendering/shadows/CascadeUse.js.map +1 -0
  406. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  407. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  408. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js +12 -3
  409. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  410. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +12 -1
  411. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  412. package/dist/rendering/shadows/Prd02ShadowBridge.js +17 -5
  413. package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
  414. package/dist/rendering/shadows/ShadowFilterTier.d.ts +51 -0
  415. package/dist/rendering/shadows/ShadowFilterTier.d.ts.map +1 -0
  416. package/dist/rendering/shadows/ShadowFilterTier.js +89 -0
  417. package/dist/rendering/shadows/ShadowFilterTier.js.map +1 -0
  418. package/dist/rendering/shadows/ShadowSystem.d.ts +15 -0
  419. package/dist/rendering/shadows/ShadowSystem.d.ts.map +1 -1
  420. package/dist/rendering/shadows/ShadowSystem.js +12 -2
  421. package/dist/rendering/shadows/ShadowSystem.js.map +1 -1
  422. package/dist/rendering/shadows/shadowLegacy.d.ts +12 -0
  423. package/dist/rendering/shadows/shadowLegacy.d.ts.map +1 -1
  424. package/dist/rendering/shadows/shadowLegacy.js +24 -0
  425. package/dist/rendering/shadows/shadowLegacy.js.map +1 -1
  426. package/dist/rendering/webgl2/BloomFusion.d.ts +31 -0
  427. package/dist/rendering/webgl2/BloomFusion.d.ts.map +1 -0
  428. package/dist/rendering/webgl2/BloomFusion.js +25 -0
  429. package/dist/rendering/webgl2/BloomFusion.js.map +1 -0
  430. package/dist/rendering/webgl2/ContextLifecycle.d.ts +14 -0
  431. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  432. package/dist/rendering/webgl2/ContextLifecycle.js +30 -3
  433. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  434. package/dist/rendering/webgl2/LegacyPost.d.ts +30 -0
  435. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  436. package/dist/rendering/webgl2/LegacyPost.js +259 -27
  437. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  438. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  439. package/dist/rendering/webgl2/MultiDraw.js +9 -1
  440. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  441. package/dist/rendering/webgl2/Samplers.d.ts +10 -1
  442. package/dist/rendering/webgl2/Samplers.d.ts.map +1 -1
  443. package/dist/rendering/webgl2/Samplers.js +24 -1
  444. package/dist/rendering/webgl2/Samplers.js.map +1 -1
  445. package/dist/rendering/webgl2/TextureFormats.d.ts +12 -0
  446. package/dist/rendering/webgl2/TextureFormats.d.ts.map +1 -1
  447. package/dist/rendering/webgl2/TextureFormats.js +16 -0
  448. package/dist/rendering/webgl2/TextureFormats.js.map +1 -1
  449. package/package.json +25 -25
  450. package/templates/cinematic-scene/package.json +2 -2
  451. package/templates/mini-game/package.json +2 -2
  452. package/templates/product-viewer/package.json +2 -2
  453. package/templates/production-asset-inspector/package.json +1 -1
  454. package/templates/production-material-studio/package.json +1 -1
  455. package/templates/production-product-configurator/package.json +1 -1
  456. package/templates/production-product-viewer/package.json +1 -1
  457. package/dist/environments/EnvironmentPreview.d.ts +0 -13
  458. package/dist/environments/EnvironmentPreview.d.ts.map +0 -1
  459. package/dist/environments/EnvironmentPreview.js +0 -16
  460. package/dist/environments/EnvironmentPreview.js.map +0 -1
  461. package/dist/environments/EnvironmentRegistry.d.ts +0 -35
  462. package/dist/environments/EnvironmentRegistry.d.ts.map +0 -1
  463. package/dist/environments/EnvironmentRegistry.js +0 -39
  464. package/dist/environments/EnvironmentRegistry.js.map +0 -1
  465. package/dist/environments/HDRIEnvironment.d.ts +0 -38
  466. package/dist/environments/HDRIEnvironment.d.ts.map +0 -1
  467. package/dist/environments/HDRIEnvironment.js +0 -34
  468. package/dist/environments/HDRIEnvironment.js.map +0 -1
  469. package/dist/environments/PMREMPreset.d.ts +0 -14
  470. package/dist/environments/PMREMPreset.d.ts.map +0 -1
  471. package/dist/environments/PMREMPreset.js +0 -16
  472. package/dist/environments/PMREMPreset.js.map +0 -1
  473. package/dist/environments/index.d.ts +0 -6
  474. package/dist/environments/index.d.ts.map +0 -1
  475. package/dist/environments/index.js +0 -3
  476. package/dist/environments/index.js.map +0 -1
  477. package/dist/environments/node.d.ts +0 -7
  478. package/dist/environments/node.d.ts.map +0 -1
  479. package/dist/environments/node.js +0 -5
  480. package/dist/environments/node.js.map +0 -1
  481. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts +0 -78
  482. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts.map +0 -1
  483. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js +0 -67
  484. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js.map +0 -1
  485. package/dist/environments/production-runtime/index.d.ts +0 -3
  486. package/dist/environments/production-runtime/index.d.ts.map +0 -1
  487. package/dist/environments/production-runtime/index.js +0 -2
  488. package/dist/environments/production-runtime/index.js.map +0 -1
  489. package/dist/environments/threejs-example-parity/index.d.ts +0 -17
  490. package/dist/environments/threejs-example-parity/index.d.ts.map +0 -1
  491. package/dist/environments/threejs-example-parity/index.js +0 -49
  492. package/dist/environments/threejs-example-parity/index.js.map +0 -1
  493. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
  494. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
  495. package/templates/cinematic-scene/test-results/.last-run.json +0 -6
  496. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
  497. package/templates/mini-game/package-lock.json +0 -1312
  498. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
  499. package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact_shadow_mask.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow_mask.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE,eAAO,MAAM,wBAAwB,saASpC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * contact_shadow_mask — forward-shading consumer of the screen-space contact-shadow
3
+ * mask (beat-three.js PRD-2 WP-4). `a3dContactShadowMaskFactor(kind)` is multiplied into the
4
+ * visibility of the shadow-casting DIRECTIONAL light only (`kind` 0): the mask is marched along
5
+ * that sun's direction, so applying it to a spot or point light would darken surfaces by a shadow
6
+ * unrelated to that light. Ambient and environment light never see it. Strength 0 (no mask bound)
7
+ * returns exactly 1.0 so draws without `effects.contactShadows()` are unchanged. The mask is
8
+ * sampled by fragment position over the forward target size.
9
+ */
10
+ export const CONTACT_SHADOW_MASK_CHUNK_ID = "contact_shadow_mask";
11
+ export const CONTACT_SHADOW_MASK_GLSL = /* glsl */ `
12
+ uniform sampler2D u_contactShadowMask;
13
+ uniform float u_contactShadowMaskStrength;
14
+ uniform vec2 u_contactShadowMaskViewport;
15
+ float a3dContactShadowMaskFactor(float kind) {
16
+ if (kind > 0.5 || u_contactShadowMaskStrength < 0.001) return 1.0;
17
+ float mask = texture(u_contactShadowMask, gl_FragCoord.xy / u_contactShadowMaskViewport).r;
18
+ return mix(1.0, mask, clamp(u_contactShadowMaskStrength, 0.0, 1.0));
19
+ }
20
+ `;
21
+ //# sourceMappingURL=contact_shadow_mask.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact_shadow_mask.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow_mask.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;;;;;;;;;CASlD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * PRD-2 WP-7: which sun cascades does the frame sample at all?
3
+ *
4
+ * The legacy forward path picks ONE cascade per item (`selectForwardShadowMap`): the first cascade whose far split is >= the item's world-centre
5
+ * depth, measured as view-space depth when the draw has a view matrix and as distance to the eye otherwise. A cascade that no visible item picks
6
+ * is never read, so rendering its depth map is wasted work: every cascade redraws every caster.
7
+ *
8
+ * This module evaluates that same selection per receiver, with the same expression (`forwardCascadeSelectionDepth`, shared with
9
+ * `selectForwardShadowMap`), the same item centre (`renderItemWorldCenter`) and the same camera inputs the renderer hands the forward pass
10
+ * (`resolvedCamera.viewMatrix`, `cameraPosition`). Every cascade no receiver picks is reported as unused. Because the decision is computed by the
11
+ * forward path's own function and not by a parallel formula, a skipped cascade is one the forward path cannot select for these receivers.
12
+ */
13
+ import type { RenderItem } from "../contracts/renderItem.js";
14
+ export interface CascadeUseFit {
15
+ readonly index: number;
16
+ readonly splitFar: number;
17
+ }
18
+ /** The camera inputs `ForwardPass` receives as `cameraViewMatrix` / `cameraPosition`; they decide which depth the forward path measures. */
19
+ export interface CascadeUseCamera {
20
+ readonly viewMatrix?: Float32Array | readonly number[];
21
+ readonly eye?: readonly [number, number, number];
22
+ }
23
+ /**
24
+ * Indices of cascades no receiver can select, or `undefined` when the answer cannot be given safely (fewer than two cascades, no receivers,
25
+ * neither a view matrix nor an eye, non-finite depths). `undefined` means "render every cascade".
26
+ */
27
+ export declare function unusedCascadeIndices(fits: readonly CascadeUseFit[], receivers: readonly RenderItem[], camera: CascadeUseCamera): ReadonlySet<number> | undefined;
28
+ //# sourceMappingURL=CascadeUse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeUse.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/CascadeUse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,4IAA4I;AAC5I,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,aAAa,EAAE,EAC9B,SAAS,EAAE,SAAS,UAAU,EAAE,EAChC,MAAM,EAAE,gBAAgB,GACvB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAiBjC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * PRD-2 WP-7: which sun cascades does the frame sample at all?
3
+ *
4
+ * The legacy forward path picks ONE cascade per item (`selectForwardShadowMap`): the first cascade whose far split is >= the item's world-centre
5
+ * depth, measured as view-space depth when the draw has a view matrix and as distance to the eye otherwise. A cascade that no visible item picks
6
+ * is never read, so rendering its depth map is wasted work: every cascade redraws every caster.
7
+ *
8
+ * This module evaluates that same selection per receiver, with the same expression (`forwardCascadeSelectionDepth`, shared with
9
+ * `selectForwardShadowMap`), the same item centre (`renderItemWorldCenter`) and the same camera inputs the renderer hands the forward pass
10
+ * (`resolvedCamera.viewMatrix`, `cameraPosition`). Every cascade no receiver picks is reported as unused. Because the decision is computed by the
11
+ * forward path's own function and not by a parallel formula, a skipped cascade is one the forward path cannot select for these receivers.
12
+ */
13
+ import { forwardCascadeSelectionDepth, renderItemWorldCenter } from "../forward/Lighting.js";
14
+ /**
15
+ * Indices of cascades no receiver can select, or `undefined` when the answer cannot be given safely (fewer than two cascades, no receivers,
16
+ * neither a view matrix nor an eye, non-finite depths). `undefined` means "render every cascade".
17
+ */
18
+ export function unusedCascadeIndices(fits, receivers, camera) {
19
+ if (fits.length < 2 || receivers.length === 0)
20
+ return undefined;
21
+ const hasView = camera.viewMatrix !== undefined && camera.viewMatrix.length >= 16;
22
+ if (!hasView && !camera.eye)
23
+ return undefined;
24
+ const used = new Set();
25
+ for (const item of receivers) {
26
+ const depth = forwardCascadeSelectionDepth(renderItemWorldCenter(item), camera.viewMatrix, camera.eye, fits[0].splitFar);
27
+ if (!Number.isFinite(depth))
28
+ return undefined;
29
+ // Same lookup as `cascades.find((c) => depth <= c.far) ?? last`.
30
+ let pick = fits.length - 1;
31
+ for (let i = 0; i < fits.length; i += 1)
32
+ if (depth <= fits[i].splitFar) {
33
+ pick = i;
34
+ break;
35
+ }
36
+ used.add(pick);
37
+ if (used.size === fits.length)
38
+ return undefined;
39
+ }
40
+ const unused = new Set();
41
+ fits.forEach((fit, i) => { if (!used.has(i))
42
+ unused.add(fit.index); });
43
+ return unused.size > 0 ? unused : undefined;
44
+ }
45
+ //# sourceMappingURL=CascadeUse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeUse.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/CascadeUse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAc1F;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA8B,EAC9B,SAAgC,EAChC,MAAwB;IAExB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;IAClF,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,4BAA4B,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC;QAC1H,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,iEAAiE;QACjE,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;gBAAC,IAAI,GAAG,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC7F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC"}
@@ -23,10 +23,16 @@ export declare const PRD02_DEPTH_SHADER_MARKER = "@aura3d-shader:prd02-depth";
23
23
  export declare const PRD02_DEPTH_MAX_INSTANCES = 64;
24
24
  /**
25
25
  * Instances beyond the uniform array ride a per-instance vertex-attribute buffer (one draw instead of ceil(n / 64) per cascade).
26
- * Part of the 4.3.0 shadow behaviour: off in legacy mode (the default), which draws uniform-array batches exactly as 4.2.0 did.
26
+ * The 4.3.0 shadow behaviour (`__A3D_SHADOW_FIT__ = "current"`) uses it for every node above 64 instances. In the default (legacy)
27
+ * fit only nodes that the engine has already given an instanced shadow proxy (`shadowGeometry`: builtin primitive, authored by
28
+ * params not geometry, qr core path, castShadow, 1,024+ instances, proxy strictly cheaper; see `qrPrimitiveShadowGeometryFor`) use
29
+ * it. Every other instanced caster (GLB or model instancing, custom geometry, boxes, non-core paths, static-batch chunks, nodes with
30
+ * a draw range) keeps the 4.2.0 uniform-array batches exactly.
27
31
  */
28
32
  export declare function depthUsesInstanceAttributes(item: {
29
33
  readonly instanceTransforms?: ArrayLike<number> | undefined;
34
+ readonly shadowGeometry?: unknown;
35
+ readonly drawRange?: unknown;
30
36
  }): boolean;
31
37
  export declare function registerPrd02DepthShader(library: ShaderLibrary): void;
32
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Prd02DepthShaderLibrary.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02DepthShaderLibrary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAIzE,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AACtE,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAAE,GAAG,OAAO,CAE1H;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAwErE;AA2DD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAO/C;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,SAAS,mBAAmB,EAAE,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,mBAAmB,EAAE,CAGlF;AAuBD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAStF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,sBAAsB,EAC3B,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,MAAM,CAuBR;AAOD,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,uBAAuB,EAC7B,aAAa,GAAE,SAAS,mBAAmB,EAAO,GACjD,sBAAsB,CAmCxB;AAED;;uCAEuC;AACvC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAKnE;AAED,+DAA+D;AAC/D,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,sBAAsB,EAC3B,aAAa,GAAE,SAAS,mBAAmB,EAAO,GACjD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAgBxC;AAkBD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,sBAAsB,EAC3B,QAAQ,GAAE,SAAS,mBAAmB,EAAO,GAC5C,mBAAmB,CAqBrB;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAAE,CAAC,GACvG,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"Prd02DepthShaderLibrary.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02DepthShaderLibrary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAIzE,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AACtE,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAKV;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAwErE;AA2DD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAO/C;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,SAAS,mBAAmB,EAAE,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,mBAAmB,EAAE,CAGlF;AAuBD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAStF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,sBAAsB,EAC3B,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,MAAM,CAuBR;AAOD,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,uBAAuB,EAC7B,aAAa,GAAE,SAAS,mBAAmB,EAAO,GACjD,sBAAsB,CAmCxB;AAED;;uCAEuC;AACvC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAKnE;AAED,+DAA+D;AAC/D,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,sBAAsB,EAC3B,aAAa,GAAE,SAAS,mBAAmB,EAAO,GACjD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAgBxC;AAkBD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,sBAAsB,EAC3B,QAAQ,GAAE,SAAS,mBAAmB,EAAO,GAC5C,mBAAmB,CAqBrB;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAAE,CAAC,GACvG,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -16,17 +16,26 @@ import { shaderChunk } from "../contracts/program.js";
16
16
  import { MAX_UNIFORM_SKINNING_JOINTS } from "../ShaderChunks.js";
17
17
  import { MaterialInstance } from "../MaterialInstance.js";
18
18
  import { shadowCasterVariantId } from "../contracts/shadows.js";
19
- import { shadowFitLegacy } from "./shadowLegacy.js";
19
+ import { DENSE_DEPTH_INSTANCE_MIN, denseDepthDrawsEnabled, shadowFitLegacy } from "./shadowLegacy.js";
20
20
  export const PRD02_DEPTH_SHADER_NAME = "aura3d/prd02-depth";
21
21
  export const PRD02_DEPTH_SHADER_MARKER = "@aura3d-shader:prd02-depth";
22
22
  /** Uniform-path instancing cap; larger batches split into multiple draws. */
23
23
  export const PRD02_DEPTH_MAX_INSTANCES = 64;
24
24
  /**
25
25
  * Instances beyond the uniform array ride a per-instance vertex-attribute buffer (one draw instead of ceil(n / 64) per cascade).
26
- * Part of the 4.3.0 shadow behaviour: off in legacy mode (the default), which draws uniform-array batches exactly as 4.2.0 did.
26
+ * The 4.3.0 shadow behaviour (`__A3D_SHADOW_FIT__ = "current"`) uses it for every node above 64 instances. In the default (legacy)
27
+ * fit only nodes that the engine has already given an instanced shadow proxy (`shadowGeometry`: builtin primitive, authored by
28
+ * params not geometry, qr core path, castShadow, 1,024+ instances, proxy strictly cheaper; see `qrPrimitiveShadowGeometryFor`) use
29
+ * it. Every other instanced caster (GLB or model instancing, custom geometry, boxes, non-core paths, static-batch chunks, nodes with
30
+ * a draw range) keeps the 4.2.0 uniform-array batches exactly.
27
31
  */
28
32
  export function depthUsesInstanceAttributes(item) {
29
- return !shadowFitLegacy() && (item.instanceTransforms?.length ?? 0) / 16 > PRD02_DEPTH_MAX_INSTANCES;
33
+ const count = (item.instanceTransforms?.length ?? 0) / 16;
34
+ if (count <= PRD02_DEPTH_MAX_INSTANCES)
35
+ return false;
36
+ if (!shadowFitLegacy())
37
+ return true;
38
+ return count >= DENSE_DEPTH_INSTANCE_MIN && item.shadowGeometry !== undefined && item.drawRange === undefined && denseDepthDrawsEnabled();
30
39
  }
31
40
  export function registerPrd02DepthShader(library) {
32
41
  library.register({
@@ -1 +1 @@
1
- {"version":3,"file":"Prd02DepthShaderLibrary.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02DepthShaderLibrary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Prd02DepthShaderLibrary.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02DepthShaderLibrary.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,11 @@ export interface Prd02BridgeInput {
85
85
  * skipped and the flag path rendered no sun shadow map at all.
86
86
  */
87
87
  readonly frameCamera?: Prd02BridgeFrameCamera;
88
+ /**
89
+ * Every visible item of the frame. With `device.skipUnusedShadowCascades` (set for `quality: "auto"` and `"cinematic"`, never `"production"`)
90
+ * a cascade that none of them can select is not redrawn.
91
+ */
92
+ readonly receivers?: readonly RenderItem[];
88
93
  readonly flags: QrFlags;
89
94
  readonly tier?: AuraQualityTierSettings;
90
95
  }
@@ -93,12 +98,18 @@ export interface Prd02BridgeFrameCamera {
93
98
  readonly viewProjectionMatrix: Float32Array | readonly number[];
94
99
  readonly near?: number;
95
100
  readonly far?: number;
101
+ /**
102
+ * The `cameraPosition` and `resolvedCamera.viewMatrix` the forward pass will receive. Together they fix the depth the forward path measures to
103
+ * pick a cascade, which is what lets the bridge skip cascades no receiver selects (`shadows/CascadeUse.ts`).
104
+ */
105
+ readonly eye?: readonly [number, number, number];
106
+ readonly viewMatrix?: Float32Array | readonly number[];
96
107
  }
97
108
  /**
98
109
  * Renderer VP + eye → bridge camera, recovering near/far from the matrix
99
110
  * (the cascade fitter lerps the VP's frustum corners by view distance).
100
111
  */
101
- export declare function shadowFrameCamera(viewProjection: Float32Array | readonly number[] | undefined, eye: readonly [number, number, number] | undefined): Prd02BridgeFrameCamera | undefined;
112
+ export declare function shadowFrameCamera(viewProjection: Float32Array | readonly number[] | undefined, eye: readonly [number, number, number] | undefined, viewMatrix?: Float32Array | readonly number[]): Prd02BridgeFrameCamera | undefined;
102
113
  /**
103
114
  * Renders the prd02 sun cascades now and returns them as legacy
104
115
  * `ForwardShadowMapOptions` (T0-26 bridge). Returns undefined — and allocates
@@ -1 +1 @@
1
- {"version":3,"file":"Prd02ShadowBridge.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02ShadowBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Prd02ShadowBridge.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02ShadowBridge.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { Sampler } from "../Sampler.js";
21
21
  import { createShadowFilterKernel } from "../ShadowMap.js";
22
+ import { isShadowPcfTapTier } from "./ShadowFilterTier.js";
22
23
  import { TextureBinding } from "../TextureBinding.js";
23
24
  import { QUALITY_TIERS } from "../contracts/quality.js";
24
25
  import { prd02SubFlagOff, readPrd02KillSwitches, SUB_FLAG_CSM } from "../passes/Prd02SubFlags.js";
@@ -70,7 +71,8 @@ export function prd02ShadowConfig(source, flags, tier, cameraFar) {
70
71
  filter,
71
72
  strength: compiled?.strength ?? options?.strength ?? 1,
72
73
  bias: compiled?.bias ?? options?.bias ?? 0,
73
- normalBias: compiled?.normalBias ?? DEFAULT_NORMAL_BIAS_TEXELS
74
+ normalBias: compiled?.normalBias ?? DEFAULT_NORMAL_BIAS_TEXELS,
75
+ ...(isShadowPcfTapTier(compiled?.pcfTapTier) ? { pcfTapTier: compiled.pcfTapTier } : {})
74
76
  };
75
77
  }
76
78
  /** Normalized direction of the first visible shadow-casting sun. */
@@ -170,11 +172,12 @@ const NEAREST_CLAMP = new Sampler({
170
172
  * Renderer VP + eye → bridge camera, recovering near/far from the matrix
171
173
  * (the cascade fitter lerps the VP's frustum corners by view distance).
172
174
  */
173
- export function shadowFrameCamera(viewProjection, eye) {
175
+ export function shadowFrameCamera(viewProjection, eye, viewMatrix) {
174
176
  if (!viewProjection || viewProjection.length < 16)
175
177
  return undefined;
176
178
  const range = eye ? clipRangeFromViewProjection(viewProjection, eye) : null;
177
- return range ? { viewProjectionMatrix: viewProjection, near: range.near, far: range.far } : { viewProjectionMatrix: viewProjection };
179
+ const extra = { ...(eye ? { eye } : {}), ...(viewMatrix ? { viewMatrix } : {}) };
180
+ return range ? { viewProjectionMatrix: viewProjection, near: range.near, far: range.far, ...extra } : { viewProjectionMatrix: viewProjection, ...extra };
178
181
  }
179
182
  /**
180
183
  * Renders the prd02 sun cascades now and returns them as legacy
@@ -214,6 +217,13 @@ export function executePrd02BridgedShadowMap(input) {
214
217
  bridgeReasons.set(input.device, "rendered");
215
218
  const system = shadowSystemForDevice(input.device, config);
216
219
  const near = camera.near ?? 0.1;
220
+ // Only the legacy per-item cascade selection is known to skip safely: a receiver on the lookup chunk picks per fragment.
221
+ const eye = input.frameCamera?.eye;
222
+ const viewMatrix = input.frameCamera?.viewMatrix;
223
+ const cascadeUse = input.device.skipUnusedShadowCascades === true
224
+ && (eye !== undefined || viewMatrix !== undefined) && input.receivers !== undefined && !prd02LookupConsumerExists(input.receivers)
225
+ ? { receivers: input.receivers, camera: { ...(eye ? { eye } : {}), ...(viewMatrix ? { viewMatrix } : {}) } }
226
+ : undefined;
217
227
  // The fitter lerps between the VP's near/far corners, so it gets the
218
228
  // camera's real clip range; `config.maxDistance` caps the cascade splits.
219
229
  const uniforms = system.update({
@@ -223,7 +233,8 @@ export function executePrd02BridgedShadowMap(input) {
223
233
  // Local (spot/point) prd02 tiles need the lookup chunk; the bridge is sun-only.
224
234
  localLights: [],
225
235
  flags: input.flags,
226
- tier
236
+ tier,
237
+ ...(cascadeUse ? { cascadeUse } : {})
227
238
  });
228
239
  const fits = system.cascadeFits();
229
240
  const maps = fits.map((fit) => {
@@ -261,7 +272,8 @@ function bridgeShadowMap(texture, lightMatrix, config, texelWorld) {
261
272
  texelSize: [texel, texel],
262
273
  filterKernel: config.filter === "hard"
263
274
  ? createShadowFilterKernel({ filter: "none" })
264
- : createShadowFilterKernel({ filter: "pcf", pcfRadius: 1, pcfSamples: 9 })
275
+ : createShadowFilterKernel({ filter: "pcf", pcfRadius: 1, pcfSamples: 9 }),
276
+ ...(config.pcfTapTier === undefined ? {} : { pcfTapTier: config.pcfTapTier })
265
277
  };
266
278
  }
267
279
  //# sourceMappingURL=Prd02ShadowBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prd02ShadowBridge.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02ShadowBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Prd02ShadowBridge.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/Prd02ShadowBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * PRD-2 WP-3 — PCF tap-count tiers (32 / 16 / 8).
3
+ *
4
+ * The forward shadow shaders loop over `u_shadowPcfSampleCount` kernel samples, so the cost of
5
+ * a shadow lookup is the kernel length. A tap tier is a cap on that length: a kernel with more
6
+ * taps than the tier is replaced by a Poisson-disk kernel of exactly `tier` taps whose RMS
7
+ * offset matches the source kernel (same penumbra width); a kernel at or below the cap is
8
+ * returned unchanged (same object), so scenes whose kernel is already within the cap render
9
+ * byte-identically.
10
+ *
11
+ * Tier selection (`resolveShadowPcfTapTier`) is opt-in at every step, so a render that asks for
12
+ * nothing keeps the authored kernel (tier 32, reason "default", a no-op for every kernel):
13
+ * - an explicit request wins;
14
+ * - `qualityDefault: true` maps the quality tier low -> 8, medium -> 16, high / ultra -> 32.
15
+ * The flag-path bridge kernel is 9 taps, so only `low` changes pixels (9 -> 8); the engine
16
+ * therefore passes it only when the author opted in (`shadowQualityTapTierEnabled`);
17
+ * - `denseDefault: true` sends dense instanced shadow casters (>= DENSE_SHADOW_CASTER_INSTANCES,
18
+ * the same threshold as the auto-cascade cap) to the lowest tier, never raising the quality
19
+ * tier's own cap (`denseShadowTapTierEnabled`).
20
+ */
21
+ import { type ShadowFilterKernel } from "../ShadowMap.js";
22
+ export type ShadowPcfTapTier = 32 | 16 | 8;
23
+ export declare const SHADOW_PCF_TAP_TIERS: readonly ShadowPcfTapTier[];
24
+ /** Shadow-casting instances at or above which a scene counts as dense (matches the auto-cascade cap in the engine). */
25
+ export declare const DENSE_SHADOW_CASTER_INSTANCES = 8192;
26
+ /** Tap-count cap per C-27 quality tier. */
27
+ export declare const QUALITY_TIER_SHADOW_PCF_TAPS: Readonly<Record<"low" | "medium" | "high" | "ultra", ShadowPcfTapTier>>;
28
+ export type ShadowPcfTapTierReason = "explicit" | "dense-instanced-casters" | "quality-tier" | "default";
29
+ export interface ShadowPcfTapTierDecision {
30
+ readonly tier: ShadowPcfTapTier;
31
+ readonly reason: ShadowPcfTapTierReason;
32
+ /** Shadow-casting instance count the decision saw (0 when not measured). */
33
+ readonly casterInstances: number;
34
+ }
35
+ export declare function isShadowPcfTapTier(value: unknown): value is ShadowPcfTapTier;
36
+ export declare function resolveShadowPcfTapTier(input?: {
37
+ readonly quality?: string;
38
+ readonly casterInstances?: number;
39
+ readonly requested?: number;
40
+ /** Apply the quality-tier cap (only when true; unset keeps the authored kernel). */
41
+ readonly qualityDefault?: boolean;
42
+ /** Apply the dense-scene cap (only when true; unset keeps the authored kernel). */
43
+ readonly denseDefault?: boolean;
44
+ }): ShadowPcfTapTierDecision;
45
+ /**
46
+ * Cap `kernel` at `tier` taps. Returns `kernel` itself when `tier` is undefined, the kernel is
47
+ * unfiltered, or it already has at most `tier` taps. Results are cached per kernel object so the
48
+ * per-draw uniform path allocates nothing after the first frame.
49
+ */
50
+ export declare function applyShadowPcfTapTier(kernel: ShadowFilterKernel, tier: ShadowPcfTapTier | undefined): ShadowFilterKernel;
51
+ //# sourceMappingURL=ShadowFilterTier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadowFilterTier.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowFilterTier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3C,eAAO,MAAM,oBAAoB,EAAE,SAAS,gBAAgB,EAAgB,CAAC;AAE7E,uHAAuH;AACvH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,EAAE,gBAAgB,CAAC,CAKhH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,yBAAyB,GAAG,cAAc,GAAG,SAAS,CAAC;AAEzG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,GAAE;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,wBAAwB,CAgBhC;AAUD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,CAqBxH"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * PRD-2 WP-3 — PCF tap-count tiers (32 / 16 / 8).
3
+ *
4
+ * The forward shadow shaders loop over `u_shadowPcfSampleCount` kernel samples, so the cost of
5
+ * a shadow lookup is the kernel length. A tap tier is a cap on that length: a kernel with more
6
+ * taps than the tier is replaced by a Poisson-disk kernel of exactly `tier` taps whose RMS
7
+ * offset matches the source kernel (same penumbra width); a kernel at or below the cap is
8
+ * returned unchanged (same object), so scenes whose kernel is already within the cap render
9
+ * byte-identically.
10
+ *
11
+ * Tier selection (`resolveShadowPcfTapTier`) is opt-in at every step, so a render that asks for
12
+ * nothing keeps the authored kernel (tier 32, reason "default", a no-op for every kernel):
13
+ * - an explicit request wins;
14
+ * - `qualityDefault: true` maps the quality tier low -> 8, medium -> 16, high / ultra -> 32.
15
+ * The flag-path bridge kernel is 9 taps, so only `low` changes pixels (9 -> 8); the engine
16
+ * therefore passes it only when the author opted in (`shadowQualityTapTierEnabled`);
17
+ * - `denseDefault: true` sends dense instanced shadow casters (>= DENSE_SHADOW_CASTER_INSTANCES,
18
+ * the same threshold as the auto-cascade cap) to the lowest tier, never raising the quality
19
+ * tier's own cap (`denseShadowTapTierEnabled`).
20
+ */
21
+ import { createPoissonDiskShadowKernel } from "../ShadowMap.js";
22
+ export const SHADOW_PCF_TAP_TIERS = [32, 16, 8];
23
+ /** Shadow-casting instances at or above which a scene counts as dense (matches the auto-cascade cap in the engine). */
24
+ export const DENSE_SHADOW_CASTER_INSTANCES = 8192;
25
+ /** Tap-count cap per C-27 quality tier. */
26
+ export const QUALITY_TIER_SHADOW_PCF_TAPS = {
27
+ low: 8,
28
+ medium: 16,
29
+ high: 32,
30
+ ultra: 32
31
+ };
32
+ export function isShadowPcfTapTier(value) {
33
+ return value === 32 || value === 16 || value === 8;
34
+ }
35
+ export function resolveShadowPcfTapTier(input = {}) {
36
+ const casterInstances = input.casterInstances !== undefined && Number.isFinite(input.casterInstances) ? Math.max(0, input.casterInstances) : 0;
37
+ if (input.requested !== undefined) {
38
+ if (!isShadowPcfTapTier(input.requested)) {
39
+ throw new RangeError(`Shadow PCF tap tier must be 32, 16 or 8, got ${String(input.requested)}`);
40
+ }
41
+ return { tier: input.requested, reason: "explicit", casterInstances };
42
+ }
43
+ const quality = input.qualityDefault === true && input.quality !== undefined && input.quality in QUALITY_TIER_SHADOW_PCF_TAPS
44
+ ? QUALITY_TIER_SHADOW_PCF_TAPS[input.quality]
45
+ : undefined;
46
+ if (input.denseDefault === true && casterInstances >= DENSE_SHADOW_CASTER_INSTANCES) {
47
+ return { tier: Math.min(quality ?? 8, 8), reason: "dense-instanced-casters", casterInstances };
48
+ }
49
+ if (quality !== undefined)
50
+ return { tier: quality, reason: "quality-tier", casterInstances };
51
+ return { tier: 32, reason: "default", casterInstances };
52
+ }
53
+ const tiered = new WeakMap();
54
+ function rmsOffset(samples) {
55
+ let sum = 0;
56
+ for (const sample of samples)
57
+ sum += sample.x * sample.x + sample.y * sample.y;
58
+ return Math.sqrt(sum / Math.max(1, samples.length));
59
+ }
60
+ /**
61
+ * Cap `kernel` at `tier` taps. Returns `kernel` itself when `tier` is undefined, the kernel is
62
+ * unfiltered, or it already has at most `tier` taps. Results are cached per kernel object so the
63
+ * per-draw uniform path allocates nothing after the first frame.
64
+ */
65
+ export function applyShadowPcfTapTier(kernel, tier) {
66
+ if (tier === undefined || kernel.mode === "none" || kernel.samples.length <= tier)
67
+ return kernel;
68
+ let byTier = tiered.get(kernel);
69
+ const cached = byTier?.get(tier);
70
+ if (cached)
71
+ return cached;
72
+ const unit = createPoissonDiskShadowKernel(tier, 1);
73
+ const unitRms = rmsOffset(unit);
74
+ const sourceRms = rmsOffset(kernel.samples);
75
+ const radius = Math.min(8, Math.max(1e-3, unitRms > 0 && sourceRms > 0 ? sourceRms / unitRms : kernel.radius));
76
+ const reduced = {
77
+ mode: kernel.mode,
78
+ distribution: "poisson",
79
+ radius,
80
+ samples: createPoissonDiskShadowKernel(tier, radius)
81
+ };
82
+ if (!byTier) {
83
+ byTier = new Map();
84
+ tiered.set(kernel, byTier);
85
+ }
86
+ byTier.set(tier, reduced);
87
+ return reduced;
88
+ }
89
+ //# sourceMappingURL=ShadowFilterTier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadowFilterTier.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowFilterTier.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  * the sampling VP (`viewProjection`, biased to [0,1]³) is what the forward
13
13
  * pass multiplies world positions by before comparing.
14
14
  */
15
+ import type { ShadowPcfTapTier } from "./ShadowFilterTier.js";
15
16
  import type { RenderDevice } from "../RenderDevice.js";
16
17
  import type { Texture } from "../Texture.js";
17
18
  import type { RenderItem } from "../contracts/renderItem.js";
@@ -20,6 +21,7 @@ import type { FrameCamera } from "../contracts/frameGraph.js";
20
21
  import type { QrFlags } from "../contracts/core.js";
21
22
  import type { AuraQualityTierSettings } from "../contracts/quality.js";
22
23
  import { type CascadeFitterCamera, type DirectionalCascadeFit } from "./DirectionalCascadeFitter.js";
24
+ import { type CascadeUseCamera } from "./CascadeUse.js";
23
25
  import type { ShaderLibrary } from "../ShaderLibraryCore.js";
24
26
  /** Structural match of the compiler's ShadowSystemConfig (engine-side type). */
25
27
  export interface ShadowSystemConfigInput {
@@ -32,6 +34,8 @@ export interface ShadowSystemConfigInput {
32
34
  readonly strength: number;
33
35
  readonly bias: number;
34
36
  readonly normalBias: number;
37
+ /** PCF tap-count cap (PRD-2 WP-3), read by Prd02ShadowBridge and passed to the forward shader; unset keeps the kernel as authored. */
38
+ readonly pcfTapTier?: ShadowPcfTapTier;
35
39
  }
36
40
  export interface ShadowSystemSun {
37
41
  readonly direction: readonly [number, number, number];
@@ -52,6 +56,15 @@ export interface ShadowSystemFrame {
52
56
  readonly localLights?: readonly ShadowSystemLocalLight[];
53
57
  readonly flags: QrFlags;
54
58
  readonly tier: AuraQualityTierSettings;
59
+ /**
60
+ * PRD-2 WP-7: the frame's receivers and eye. When present, a cascade no receiver can select (`unusedCascadeIndices`) gets its target
61
+ * allocated but is not redrawn: the legacy forward path never samples it, so no pixel changes. Absent: every cascade is rendered.
62
+ */
63
+ readonly cascadeUse?: {
64
+ readonly receivers: readonly RenderItem[];
65
+ /** What the forward pass gets as `cameraViewMatrix` / `cameraPosition` (see `CascadeUseCamera`). */
66
+ readonly camera: CascadeUseCamera;
67
+ };
55
68
  }
56
69
  /** ShadowFrameUniforms plus the extra bindings the PRD-02 forward path needs. */
57
70
  export interface Prd02ShadowFrameUniforms extends ShadowFrameUniforms {
@@ -73,6 +86,7 @@ export declare class Prd02ShadowSystem {
73
86
  private lastTiles;
74
87
  private lastVariants;
75
88
  private lastDropped;
89
+ private lastSkippedCascades;
76
90
  private readonly shaderLibrary;
77
91
  private depthFeatures;
78
92
  private precompiled;
@@ -90,6 +104,7 @@ export declare class Prd02ShadowSystem {
90
104
  readonly localLights: number;
91
105
  readonly casterVariants: readonly string[];
92
106
  readonly droppedFeatures: readonly string[];
107
+ readonly skippedCascades: readonly number[];
93
108
  };
94
109
  /**
95
110
  * GPU evidence probe (shadow-pixels investigation): min/max/mean of each