@aura3d/rendering 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 (182) hide show
  1. package/dist/DepthPass.d.ts.map +1 -1
  2. package/dist/DepthPass.js +3 -2
  3. package/dist/DepthPass.js.map +1 -1
  4. package/dist/ForwardPass.d.ts +13 -0
  5. package/dist/ForwardPass.d.ts.map +1 -1
  6. package/dist/ForwardPass.js +64 -11
  7. package/dist/ForwardPass.js.map +1 -1
  8. package/dist/MaterialBinding.js +6 -2
  9. package/dist/MaterialBinding.js.map +1 -1
  10. package/dist/Renderer.d.ts +8 -0
  11. package/dist/Renderer.d.ts.map +1 -1
  12. package/dist/Renderer.js +37 -6
  13. package/dist/Renderer.js.map +1 -1
  14. package/dist/ShaderChunks.d.ts.map +1 -1
  15. package/dist/ShaderChunks.js +3 -1
  16. package/dist/ShaderChunks.js.map +1 -1
  17. package/dist/ShaderLibrary.d.ts.map +1 -1
  18. package/dist/ShaderLibrary.js +17 -5
  19. package/dist/ShaderLibrary.js.map +1 -1
  20. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  21. package/dist/ShaderLibraryCore.js +2 -1
  22. package/dist/ShaderLibraryCore.js.map +1 -1
  23. package/dist/WebGL2Device.d.ts +16 -1
  24. package/dist/WebGL2Device.d.ts.map +1 -1
  25. package/dist/WebGL2Device.js +94 -37
  26. package/dist/WebGL2Device.js.map +1 -1
  27. package/dist/WebGL2StateCache.d.ts +22 -0
  28. package/dist/WebGL2StateCache.d.ts.map +1 -1
  29. package/dist/WebGL2StateCache.js +71 -42
  30. package/dist/WebGL2StateCache.js.map +1 -1
  31. package/dist/contracts/core.d.ts.map +1 -1
  32. package/dist/contracts/core.js +22 -2
  33. package/dist/contracts/core.js.map +1 -1
  34. package/dist/contracts/program.d.ts.map +1 -1
  35. package/dist/contracts/program.js +8 -1
  36. package/dist/contracts/program.js.map +1 -1
  37. package/dist/contracts/quality.d.ts +21 -0
  38. package/dist/contracts/quality.d.ts.map +1 -1
  39. package/dist/contracts/quality.js +5 -0
  40. package/dist/contracts/quality.js.map +1 -1
  41. package/dist/contracts/renderItem.d.ts +6 -0
  42. package/dist/contracts/renderItem.d.ts.map +1 -1
  43. package/dist/contracts/structuralMemo.d.ts +23 -0
  44. package/dist/contracts/structuralMemo.d.ts.map +1 -0
  45. package/dist/contracts/structuralMemo.js +81 -0
  46. package/dist/contracts/structuralMemo.js.map +1 -0
  47. package/dist/environment/EnvironmentCache.d.ts.map +1 -1
  48. package/dist/environment/EnvironmentCache.js +6 -1
  49. package/dist/environment/EnvironmentCache.js.map +1 -1
  50. package/dist/environment/FirstFrameGate.d.ts +23 -0
  51. package/dist/environment/FirstFrameGate.d.ts.map +1 -0
  52. package/dist/environment/FirstFrameGate.js +58 -0
  53. package/dist/environment/FirstFrameGate.js.map +1 -0
  54. package/dist/environment/Rgb9e5Cube.d.ts.map +1 -1
  55. package/dist/environment/Rgb9e5Cube.js +8 -4
  56. package/dist/environment/Rgb9e5Cube.js.map +1 -1
  57. package/dist/environment/probeBuild.d.ts +29 -0
  58. package/dist/environment/probeBuild.d.ts.map +1 -1
  59. package/dist/environment/probeBuild.js +124 -45
  60. package/dist/environment/probeBuild.js.map +1 -1
  61. package/dist/forward/Lighting.d.ts +11 -3
  62. package/dist/forward/Lighting.d.ts.map +1 -1
  63. package/dist/forward/Lighting.js +25 -15
  64. package/dist/forward/Lighting.js.map +1 -1
  65. package/dist/forward/contactShadowMaskStore.d.ts +41 -0
  66. package/dist/forward/contactShadowMaskStore.d.ts.map +1 -0
  67. package/dist/forward/contactShadowMaskStore.js +85 -0
  68. package/dist/forward/contactShadowMaskStore.js.map +1 -0
  69. package/dist/geometry/Shape.d.ts.map +1 -1
  70. package/dist/geometry/Shape.js +7 -2
  71. package/dist/geometry/Shape.js.map +1 -1
  72. package/dist/geometry/Support.d.ts +4 -0
  73. package/dist/geometry/Support.d.ts.map +1 -1
  74. package/dist/geometry/Support.js +3 -2
  75. package/dist/geometry/Support.js.map +1 -1
  76. package/dist/index.d.ts +6 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +5 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/passes/ContactShadowPass.d.ts +40 -3
  81. package/dist/passes/ContactShadowPass.d.ts.map +1 -1
  82. package/dist/passes/ContactShadowPass.js +73 -13
  83. package/dist/passes/ContactShadowPass.js.map +1 -1
  84. package/dist/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  85. package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  86. package/dist/passes/Prd02ContactShadowsContributor.js +179 -28
  87. package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -1
  88. package/dist/program/ProgramFeatures.d.ts +6 -0
  89. package/dist/program/ProgramFeatures.d.ts.map +1 -1
  90. package/dist/program/ProgramFeatures.js +11 -5
  91. package/dist/program/ProgramFeatures.js.map +1 -1
  92. package/dist/program/ProgramGenerator.d.ts +6 -0
  93. package/dist/program/ProgramGenerator.d.ts.map +1 -1
  94. package/dist/program/ProgramGenerator.js +36 -1
  95. package/dist/program/ProgramGenerator.js.map +1 -1
  96. package/dist/program/ProgramKey.d.ts.map +1 -1
  97. package/dist/program/ProgramKey.js +4 -1
  98. package/dist/program/ProgramKey.js.map +1 -1
  99. package/dist/program/chunks/shadow_forward.glsl.d.ts +1 -1
  100. package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  101. package/dist/program/chunks/shadow_forward.glsl.js +4 -1
  102. package/dist/program/chunks/shadow_forward.glsl.js.map +1 -1
  103. package/dist/quality/DirectPath.d.ts +43 -0
  104. package/dist/quality/DirectPath.d.ts.map +1 -0
  105. package/dist/quality/DirectPath.js +42 -0
  106. package/dist/quality/DirectPath.js.map +1 -0
  107. package/dist/renderer/Background.d.ts +0 -5
  108. package/dist/renderer/Background.d.ts.map +1 -1
  109. package/dist/renderer/Background.js +25 -2
  110. package/dist/renderer/Background.js.map +1 -1
  111. package/dist/renderer/InstanceFrustumCull.d.ts +39 -0
  112. package/dist/renderer/InstanceFrustumCull.d.ts.map +1 -0
  113. package/dist/renderer/InstanceFrustumCull.js +127 -0
  114. package/dist/renderer/InstanceFrustumCull.js.map +1 -0
  115. package/dist/renderer/ShadowOrchestration.d.ts +2 -0
  116. package/dist/renderer/ShadowOrchestration.d.ts.map +1 -1
  117. package/dist/renderer/ShadowOrchestration.js +1 -0
  118. package/dist/renderer/ShadowOrchestration.js.map +1 -1
  119. package/dist/renderer/coreOutputPostRoute.d.ts +0 -5
  120. package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -1
  121. package/dist/renderer/coreOutputPostRoute.js +12 -2
  122. package/dist/renderer/coreOutputPostRoute.js.map +1 -1
  123. package/dist/resources/InstanceBuffer.d.ts +2 -0
  124. package/dist/resources/InstanceBuffer.d.ts.map +1 -1
  125. package/dist/resources/InstanceBuffer.js +23 -0
  126. package/dist/resources/InstanceBuffer.js.map +1 -1
  127. package/dist/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  128. package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  129. package/dist/shaders/chunks/contact_shadow.glsl.js +41 -19
  130. package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  131. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  132. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  133. package/dist/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  134. package/dist/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  135. package/dist/shadows/CascadeUse.d.ts +28 -0
  136. package/dist/shadows/CascadeUse.d.ts.map +1 -0
  137. package/dist/shadows/CascadeUse.js +45 -0
  138. package/dist/shadows/CascadeUse.js.map +1 -0
  139. package/dist/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  140. package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  141. package/dist/shadows/Prd02DepthShaderLibrary.js +12 -3
  142. package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  143. package/dist/shadows/Prd02ShadowBridge.d.ts +12 -1
  144. package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  145. package/dist/shadows/Prd02ShadowBridge.js +17 -5
  146. package/dist/shadows/Prd02ShadowBridge.js.map +1 -1
  147. package/dist/shadows/ShadowFilterTier.d.ts +51 -0
  148. package/dist/shadows/ShadowFilterTier.d.ts.map +1 -0
  149. package/dist/shadows/ShadowFilterTier.js +89 -0
  150. package/dist/shadows/ShadowFilterTier.js.map +1 -0
  151. package/dist/shadows/ShadowSystem.d.ts +15 -0
  152. package/dist/shadows/ShadowSystem.d.ts.map +1 -1
  153. package/dist/shadows/ShadowSystem.js +12 -2
  154. package/dist/shadows/ShadowSystem.js.map +1 -1
  155. package/dist/shadows/shadowLegacy.d.ts +12 -0
  156. package/dist/shadows/shadowLegacy.d.ts.map +1 -1
  157. package/dist/shadows/shadowLegacy.js +24 -0
  158. package/dist/shadows/shadowLegacy.js.map +1 -1
  159. package/dist/webgl2/BloomFusion.d.ts +31 -0
  160. package/dist/webgl2/BloomFusion.d.ts.map +1 -0
  161. package/dist/webgl2/BloomFusion.js +25 -0
  162. package/dist/webgl2/BloomFusion.js.map +1 -0
  163. package/dist/webgl2/ContextLifecycle.d.ts +14 -0
  164. package/dist/webgl2/ContextLifecycle.d.ts.map +1 -1
  165. package/dist/webgl2/ContextLifecycle.js +30 -3
  166. package/dist/webgl2/ContextLifecycle.js.map +1 -1
  167. package/dist/webgl2/LegacyPost.d.ts +30 -0
  168. package/dist/webgl2/LegacyPost.d.ts.map +1 -1
  169. package/dist/webgl2/LegacyPost.js +259 -27
  170. package/dist/webgl2/LegacyPost.js.map +1 -1
  171. package/dist/webgl2/MultiDraw.d.ts.map +1 -1
  172. package/dist/webgl2/MultiDraw.js +9 -1
  173. package/dist/webgl2/MultiDraw.js.map +1 -1
  174. package/dist/webgl2/Samplers.d.ts +10 -1
  175. package/dist/webgl2/Samplers.d.ts.map +1 -1
  176. package/dist/webgl2/Samplers.js +24 -1
  177. package/dist/webgl2/Samplers.js.map +1 -1
  178. package/dist/webgl2/TextureFormats.d.ts +12 -0
  179. package/dist/webgl2/TextureFormats.d.ts.map +1 -1
  180. package/dist/webgl2/TextureFormats.js +16 -0
  181. package/dist/webgl2/TextureFormats.js.map +1 -1
  182. package/package.json +3 -3
@@ -0,0 +1,127 @@
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 itself is allocation-free (module scratch for the keep list); only the compacted output arrays are allocated, and only when
10
+ * something was culled.
11
+ */
12
+ /** Below this many instances the GPU handles the draw trivially and the scan would cost more than it saves. */
13
+ export const MIN_CULLED_INSTANCES = 512;
14
+ /** Conservative inflation of each instance's bounding sphere (covers wind sway, rounding and TAA jitter). */
15
+ const RADIUS_INFLATION = 1.15;
16
+ let keepScratch = new Uint32Array(0);
17
+ const planes = new Float64Array(24);
18
+ function extractPlanes(vp) {
19
+ // Gribb-Hartmann on a column-major matrix: row i = (m[i], m[4+i], m[8+i], m[12+i]).
20
+ const r = (row, col) => vp[col * 4 + row];
21
+ const set = (index, a, b, c, d) => {
22
+ const length = Math.hypot(a, b, c);
23
+ if (!(length > 1e-12) || !Number.isFinite(d))
24
+ return false;
25
+ const o = index * 4;
26
+ planes[o] = a / length;
27
+ planes[o + 1] = b / length;
28
+ planes[o + 2] = c / length;
29
+ planes[o + 3] = d / length;
30
+ return true;
31
+ };
32
+ for (let i = 0; i < 16; i += 1)
33
+ if (!Number.isFinite(vp[i]))
34
+ return false;
35
+ 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
36
+ 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
37
+ 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
38
+ 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
39
+ 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)
40
+ 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
41
+ );
42
+ }
43
+ function isIdentity(m) {
44
+ if (!m || m.length < 16)
45
+ return true;
46
+ for (let i = 0; i < 16; i += 1) {
47
+ if (m[i] !== ((i % 5 === 0) ? 1 : 0))
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ /**
53
+ * Returns the visible subset, or null when nothing was culled (or culling does not apply), in which case the caller keeps its originals.
54
+ * A result with `count === 0` means every instance is outside the frustum.
55
+ */
56
+ export function cullInstancesToFrustum(input) {
57
+ const { transforms, colors, bounds } = input;
58
+ const total = Math.floor(transforms.length / 16);
59
+ if (total < MIN_CULLED_INSTANCES || transforms.length % 16 !== 0)
60
+ return null;
61
+ if (colors !== undefined && colors.length < total * 4)
62
+ return null;
63
+ if (!extractPlanes(input.viewProjection))
64
+ return null;
65
+ 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;
66
+ 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;
67
+ if (!Number.isFinite(radius) || !Number.isFinite(cx + cy + cz))
68
+ return null;
69
+ const model = input.modelMatrix;
70
+ const modelIdentity = isIdentity(model);
71
+ const m = model;
72
+ // Model scale bound for the sphere radius when the model matrix is not identity.
73
+ let modelScale = 1;
74
+ if (!modelIdentity) {
75
+ 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]));
76
+ if (!Number.isFinite(modelScale))
77
+ return null;
78
+ }
79
+ if (keepScratch.length < total)
80
+ keepScratch = new Uint32Array(total);
81
+ let kept = 0;
82
+ for (let i = 0; i < total; i += 1) {
83
+ const o = i * 16;
84
+ const a0 = transforms[o], a1 = transforms[o + 1], a2 = transforms[o + 2];
85
+ const b0 = transforms[o + 4], b1 = transforms[o + 5], b2 = transforms[o + 6];
86
+ const c0 = transforms[o + 8], c1 = transforms[o + 9], c2 = transforms[o + 10];
87
+ // Instance-space centre of the geometry, then (optionally) the model transform.
88
+ let wx = a0 * cx + b0 * cy + c0 * cz + transforms[o + 12];
89
+ let wy = a1 * cx + b1 * cy + c1 * cz + transforms[o + 13];
90
+ let wz = a2 * cx + b2 * cy + c2 * cz + transforms[o + 14];
91
+ const sx2 = a0 * a0 + a1 * a1 + a2 * a2, sy2 = b0 * b0 + b1 * b1 + b2 * b2, sz2 = c0 * c0 + c1 * c1 + c2 * c2;
92
+ let scale = Math.sqrt(sx2 > sy2 ? (sx2 > sz2 ? sx2 : sz2) : (sy2 > sz2 ? sy2 : sz2));
93
+ if (!modelIdentity) {
94
+ const tx = wx, ty = wy, tz = wz;
95
+ wx = m[0] * tx + m[4] * ty + m[8] * tz + m[12];
96
+ wy = m[1] * tx + m[5] * ty + m[9] * tz + m[13];
97
+ wz = m[2] * tx + m[6] * ty + m[10] * tz + m[14];
98
+ scale *= modelScale;
99
+ }
100
+ const r = radius * scale;
101
+ let visible = true;
102
+ // A non-finite centre fails every comparison below, so it is kept (never culled on bad data).
103
+ for (let p = 0; p < 24; p += 4) {
104
+ if (planes[p] * wx + planes[p + 1] * wy + planes[p + 2] * wz + planes[p + 3] < -r) {
105
+ visible = false;
106
+ break;
107
+ }
108
+ }
109
+ if (!visible)
110
+ continue;
111
+ keepScratch[kept] = i;
112
+ kept += 1;
113
+ }
114
+ if (kept === total)
115
+ return null;
116
+ // Fresh arrays: the draw (and any deferred multi-draw bookkeeping) may hold them past this call.
117
+ const outTransforms = new Float32Array(kept * 16);
118
+ const outColors = colors !== undefined ? new Float32Array(kept * 4) : undefined;
119
+ for (let k = 0; k < kept; k += 1) {
120
+ const i = keepScratch[k];
121
+ outTransforms.set(transforms.subarray(i * 16, i * 16 + 16), k * 16);
122
+ if (outColors !== undefined && colors !== undefined)
123
+ outColors.set(colors.subarray(i * 4, i * 4 + 4), k * 4);
124
+ }
125
+ return { transforms: outTransforms, ...(outColors ? { colors: outColors } : {}), count: kept, total };
126
+ }
127
+ //# 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()
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowOrchestration.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShadowOrchestration.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"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"}
@@ -39,10 +39,5 @@ export declare function legacyPostEffects(postprocess: object): readonly string[
39
39
  * executor uses.
40
40
  */
41
41
  export declare function resolveCoreOutputPostRoute(coreOutputOn: boolean, postprocess: object | undefined, v2DeclineReason?: string | null): CoreOutputPostRoute;
42
- /**
43
- * The frame's flags with `A3D_QR_CORE_OUTPUT` explicitly off, so frame
44
- * contributors (lane 07 vfx, transmission capture) pick the legacy `color`
45
- * resource the legacy-routed graph actually writes.
46
- */
47
42
  export declare function withCoreOutputOff(flags: QrFlags): QrFlags;
48
43
  //# sourceMappingURL=coreOutputPostRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreOutputPostRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gJAAgJ;IAChJ,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,+BAA+B,uIAC0F,CAAC;AAEvI,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,GAAE,MAAM,GAAG,IAAW,GACpC,mBAAmB,CASrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKzD"}
1
+ {"version":3,"file":"coreOutputPostRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gJAAgJ;IAChJ,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,+BAA+B,uIAC0F,CAAC;AAEvI,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,GAAE,MAAM,GAAG,IAAW,GACpC,mBAAmB,CASrB;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYzD"}
@@ -46,10 +46,20 @@ export function resolveCoreOutputPostRoute(coreOutputOn, postprocess, v2DeclineR
46
46
  * contributors (lane 07 vfx, transmission capture) pick the legacy `color`
47
47
  * resource the legacy-routed graph actually writes.
48
48
  */
49
+ const coreOutputOffCache = new WeakMap();
49
50
  export function withCoreOutputOff(flags) {
50
- return {
51
- values: { ...flags.values, A3D_QR_CORE_OUTPUT: false },
51
+ // Asked for every frame of the direct path with the same app flags: one derived (frozen) object per input, so the
52
+ // registries' per-flags memo keeps hitting instead of seeing a new flags object each frame.
53
+ const cached = coreOutputOffCache.get(flags);
54
+ if (cached !== undefined)
55
+ return cached;
56
+ const derived = {
57
+ values: Object.freeze({ ...flags.values, A3D_QR_CORE_OUTPUT: false }),
52
58
  on: (name) => (name === "A3D_QR_CORE_OUTPUT" ? false : flags.on(name))
53
59
  };
60
+ // Only a flags object whose own `values` are frozen is immutable, so only then is the derived one safe to reuse.
61
+ if (Object.isFrozen(flags.values))
62
+ coreOutputOffCache.set(flags, derived);
63
+ return derived;
54
64
  }
55
65
  //# sourceMappingURL=coreOutputPostRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreOutputPostRoute.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmBH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oIAAoI,CAAC;AAEvI,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,WAAsC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;SAC3I,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAqB,EACrB,WAA+B,EAC/B,kBAAiC,IAAI;IAErC,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5F,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,+BAA+B,KAAK,eAAe,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE;KACnJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE;QACtD,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"coreOutputPostRoute.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmBH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oIAAoI,CAAC;AAEvI,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,WAAsC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;SAC3I,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAqB,EACrB,WAA+B,EAC/B,kBAAiC,IAAI;IAErC,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5F,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,+BAA+B,KAAK,eAAe,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE;KACnJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAoB,CAAC;AAE3D,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,kHAAkH;IAClH,4FAA4F;IAC5F,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,OAAO,GAAY;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;QACrE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;KACvE,CAAC;IACF,iHAAiH;IACjH,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -18,6 +18,8 @@ export declare class InstanceBuffer implements InstanceBufferLike {
18
18
  private allocated;
19
19
  count: number;
20
20
  version: number;
21
+ private matricesNeedUpload;
22
+ private colorsNeedUpload;
21
23
  constructor(device: RenderDevice, capacity: number, options?: {
22
24
  colors?: boolean;
23
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceBuffer.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAKhE,qBAAa,cAAe,YAAW,kBAAkB;IAUrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAS;IACnB,KAAK,SAAK;IACV,OAAO,SAAK;gBAGA,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAchC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,UAAU;IAUlB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAUlD,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAWhC,IAAI,IAAI;QAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAA;KAAE;IAMpF,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"InstanceBuffer.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAahE,qBAAa,cAAe,YAAW,kBAAkB;IAarD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAS;IACnB,KAAK,SAAK;IACV,OAAO,SAAK;IAEnB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,gBAAgB,CAAQ;gBAGb,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAchC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,UAAU;IAWlB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAclD,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAahC,IAAI,IAAI;QAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAA;KAAE;IAMpF,OAAO,IAAI,IAAI;CAIhB"}
@@ -8,6 +8,16 @@
8
8
  */
9
9
  import {} from "../RenderDevice.js";
10
10
  const MIN_CAPACITY = 16;
11
+ /** True when the first `length` scalars of `stored` already equal `incoming` (stops at the first difference). */
12
+ const sameScalars = (stored, incoming, length) => {
13
+ if (incoming.length < length || stored.length < length)
14
+ return false;
15
+ for (let i = 0; i < length; i += 1) {
16
+ if (stored[i] !== incoming[i])
17
+ return false;
18
+ }
19
+ return true;
20
+ };
11
21
  const pow2Ceil = (value) => 2 ** Math.ceil(Math.log2(Math.max(1, value)));
12
22
  export class InstanceBuffer {
13
23
  device;
@@ -19,6 +29,9 @@ export class InstanceBuffer {
19
29
  allocated;
20
30
  count = 0;
21
31
  version = 0;
32
+ // A (re)allocated device buffer holds no data yet, so the next write must upload even if the CPU copy matches.
33
+ matricesNeedUpload = true;
34
+ colorsNeedUpload = true;
22
35
  constructor(device, capacity, options) {
23
36
  this.device = device;
24
37
  this.capacity = capacity;
@@ -42,6 +55,7 @@ export class InstanceBuffer {
42
55
  this.matrices = matrices;
43
56
  const oldMatrix = this.matrixBuffer;
44
57
  this.matrixBuffer = this.device.createBuffer("vertex", matrices.byteLength);
58
+ this.matricesNeedUpload = true;
45
59
  // Dispose of the old buffer first so device-side VAOs referencing it are
46
60
  // evicted (PRD §7.1) before a same-content buffer takes its place.
47
61
  oldMatrix.dispose();
@@ -58,6 +72,7 @@ export class InstanceBuffer {
58
72
  this.colors = colors;
59
73
  const oldColors = this.colorBuffer;
60
74
  this.colorBuffer = this.device.createBuffer("vertex", colors.byteLength);
75
+ this.colorsNeedUpload = true;
61
76
  oldColors.dispose();
62
77
  }
63
78
  setMatrices(m, count) {
@@ -65,8 +80,13 @@ export class InstanceBuffer {
65
80
  if (n > this.capacity)
66
81
  throw new Error(`INSTANCE_CAPACITY_EXCEEDED:${n}>${this.capacity}`);
67
82
  this.ensureAllocated(n, false);
83
+ // Static instance sets (forests, props) are re-submitted every frame by the forward pass; skip the copy,
84
+ // the GPU upload and the version bump when the contents did not change.
85
+ if (!this.matricesNeedUpload && n === this.count && sameScalars(this.matrices, m, n * 16))
86
+ return;
68
87
  this.matrices.set(m.subarray(0, n * 16));
69
88
  this.device.updateBuffer(this.matrixBuffer, 0, this.matrices.subarray(0, n * 16));
89
+ this.matricesNeedUpload = false;
70
90
  this.count = n;
71
91
  this.version += 1;
72
92
  }
@@ -79,8 +99,11 @@ export class InstanceBuffer {
79
99
  this.ensureAllocated(n, true);
80
100
  if (this.colors.length < n * 4)
81
101
  this.growColors(n);
102
+ if (!this.colorsNeedUpload && sameScalars(this.colors, c, n * 4))
103
+ return;
82
104
  this.colors.set(c.subarray(0, n * 4));
83
105
  this.device.updateBuffer(this.colorBuffer, 0, this.colors.subarray(0, n * 4));
106
+ this.colorsNeedUpload = false;
84
107
  this.version += 1;
85
108
  }
86
109
  bind() {
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceBuffer.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceBuffer.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
1
  /**
2
2
  * a3d_prd02_contact_shadow — screen-space contact shadow march
3
3
  * (PRD-02 §6.5/§8.6). Marches up to 16 steps along the primary shadowed
4
- * light's view-space direction over `length` against the scene depth buffer
5
- * (linearized to metres), with a `thickness` test and interleaved-gradient
6
- * noise jitter. Returns a soft [0,1] visibility applied inside that light's
7
- * V_l only — never to total colour. The pass reports
8
- * contactShadows.passExecuted through C-31 diagnostics.
4
+ * light's world-space direction over `length` against the scene depth buffer,
5
+ * with a `thickness` test and interleaved-gradient noise jitter. Returns a soft
6
+ * [0,1] visibility applied inside that light's V_l only — never to total colour.
7
+ * The pass reports contactShadows.passExecuted through C-31 diagnostics.
8
+ *
9
+ * World space (not view space): the production renderer hands the frame hooks a
10
+ * camera that carries only the combined view-projection matrix, so the march
11
+ * unprojects with its inverse and measures depth as the clip-space w (the
12
+ * view-space distance for a perspective camera) of the combined matrix. That
13
+ * needs no separate view/projection matrices and no near/far for perspective.
9
14
  */
10
15
  export declare const CONTACT_SHADOW_CHUNK_ID = "a3d_prd02_contact_shadow";
11
- export declare const CONTACT_SHADOW_CHUNK_GLSL = "\nuniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])\nuniform mat4 u_prd02ContactInvProj; // clip -> view\nuniform mat4 u_prd02ContactProj; // view -> clip\nuniform vec3 u_prd02ContactSun; // shadowed-light dir, view space\nuniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)\nuniform vec2 u_prd02ContactNearFar; // (near, far)\n\nfloat a3d_prd02ContactNoise(vec2 px) {\n return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));\n}\n\nfloat a3d_prd02ContactLinear(float z) {\n float n = u_prd02ContactNearFar.x;\n float f = u_prd02ContactNearFar.y;\n return (n * f) / (f - z * (f - n));\n}\n\nfloat a3d_contactShadow(vec2 uv) {\n float sceneZ = texture(u_prd02ContactDepth, uv).r;\n vec4 ndc = vec4(uv * 2.0 - 1.0, sceneZ * 2.0 - 1.0, 1.0);\n vec4 vpos = u_prd02ContactInvProj * ndc;\n vec3 pos = vpos.xyz / vpos.w;\n float len = u_prd02ContactParams.x;\n float thickness = u_prd02ContactParams.y;\n float steps = max(u_prd02ContactParams.z, 1.0);\n float jitter = a3d_prd02ContactNoise(gl_FragCoord.xy) * u_prd02ContactParams.w;\n float occluded = 0.0;\n for (int i = 1; i <= 16; i++) {\n if (float(i) > steps) break;\n float t = (float(i) - jitter) / steps;\n vec3 p = pos + u_prd02ContactSun * (t * len);\n vec4 clip = u_prd02ContactProj * vec4(p, 1.0);\n vec3 r = clip.xyz / clip.w;\n vec2 suv = r.xy * 0.5 + 0.5;\n if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;\n float blocker = a3d_prd02ContactLinear(texture(u_prd02ContactDepth, suv).r);\n if (blocker < -p.z - thickness) occluded = max(occluded, 1.0 - t);\n }\n return 1.0 - occluded;\n}\n";
16
+ export declare const CONTACT_SHADOW_CHUNK_GLSL = "\nuniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])\nuniform mat4 u_prd02ContactInvViewProj; // clip -> world\nuniform mat4 u_prd02ContactViewProj; // world -> clip\nuniform vec3 u_prd02ContactSun; // shadowed-light direction TOWARD the light, world space\nuniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)\nuniform vec3 u_prd02ContactNearFar; // (near, far, orthographic 0|1); only the orthographic flag is read\n\nfloat a3d_prd02ContactNoise(vec2 px) {\n return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));\n}\n\nvec3 a3d_prd02ContactWorld(vec2 uv, float z) {\n vec4 w = u_prd02ContactInvViewProj * vec4(uv * 2.0 - 1.0, z * 2.0 - 1.0, 1.0);\n return w.xyz / w.w;\n}\n\n// How far the march point sits behind the visible surface at the same screen position, in world units along the view\n// direction. Perspective: the clip-space w difference (view-space distance). Orthographic: the projection is linear, but the\n// near/far the frame camera reports are not guaranteed to be the ones the projection matrix was built with (the first GPU\n// run of an orthographic scene gave a mask of all ones for that reason), so the gap is measured in world space along the\n// view direction recovered from the inverse view-projection instead.\nfloat a3d_prd02ContactBehind(vec4 clip, vec3 p, vec3 blockerPos, vec2 suv) {\n if (u_prd02ContactNearFar.z > 0.5) {\n vec3 viewDir = normalize(a3d_prd02ContactWorld(suv, 1.0) - a3d_prd02ContactWorld(suv, 0.0));\n return dot(p - blockerPos, viewDir);\n }\n return clip.w - (u_prd02ContactViewProj * vec4(blockerPos, 1.0)).w;\n}\n\nfloat a3d_contactShadow(vec2 uv) {\n float sceneZ = texture(u_prd02ContactDepth, uv).r;\n vec3 pos = a3d_prd02ContactWorld(uv, sceneZ);\n float len = u_prd02ContactParams.x;\n float thickness = u_prd02ContactParams.y;\n float steps = max(u_prd02ContactParams.z, 1.0);\n float jitter = a3d_prd02ContactNoise(gl_FragCoord.xy) * u_prd02ContactParams.w;\n float occluded = 0.0;\n for (int i = 1; i <= 16; i++) {\n if (float(i) > steps) break;\n float t = (float(i) - jitter) / steps;\n vec3 p = pos + u_prd02ContactSun * (t * len);\n vec4 clip = u_prd02ContactViewProj * vec4(p, 1.0);\n if (clip.w <= 0.0) continue;\n vec3 r = clip.xyz / clip.w;\n vec2 suv = r.xy * 0.5 + 0.5;\n if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;\n float blockerZ = texture(u_prd02ContactDepth, suv).r;\n vec3 blockerPos = a3d_prd02ContactWorld(suv, blockerZ);\n // The ray point must sit behind the visible surface by more than the thickness parameter (self-shadow bias) and by less than\n // twice the march length. The upper bound stops a foreground prop between the camera and the receiver from\n // \"occluding\" every ray whose screen position lands behind it (ghost shadows), while still letting a solid\n // caster shade rays that dive up to one march length into its volume.\n float behind = a3d_prd02ContactBehind(clip, p, blockerPos, suv);\n if (behind > thickness && behind < len * 2.0) occluded = max(occluded, 1.0 - t);\n }\n return 1.0 - occluded;\n}\n";
12
17
  //# sourceMappingURL=contact_shadow.glsl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact_shadow.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,eAAO,MAAM,yBAAyB,muDAyCrC,CAAC"}
1
+ {"version":3,"file":"contact_shadow.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,eAAO,MAAM,yBAAyB,irGA0DrC,CAAC"}
@@ -1,36 +1,51 @@
1
1
  /**
2
2
  * a3d_prd02_contact_shadow — screen-space contact shadow march
3
3
  * (PRD-02 §6.5/§8.6). Marches up to 16 steps along the primary shadowed
4
- * light's view-space direction over `length` against the scene depth buffer
5
- * (linearized to metres), with a `thickness` test and interleaved-gradient
6
- * noise jitter. Returns a soft [0,1] visibility applied inside that light's
7
- * V_l only — never to total colour. The pass reports
8
- * contactShadows.passExecuted through C-31 diagnostics.
4
+ * light's world-space direction over `length` against the scene depth buffer,
5
+ * with a `thickness` test and interleaved-gradient noise jitter. Returns a soft
6
+ * [0,1] visibility applied inside that light's V_l only — never to total colour.
7
+ * The pass reports contactShadows.passExecuted through C-31 diagnostics.
8
+ *
9
+ * World space (not view space): the production renderer hands the frame hooks a
10
+ * camera that carries only the combined view-projection matrix, so the march
11
+ * unprojects with its inverse and measures depth as the clip-space w (the
12
+ * view-space distance for a perspective camera) of the combined matrix. That
13
+ * needs no separate view/projection matrices and no near/far for perspective.
9
14
  */
10
15
  export const CONTACT_SHADOW_CHUNK_ID = "a3d_prd02_contact_shadow";
11
16
  export const CONTACT_SHADOW_CHUNK_GLSL = /* glsl */ `
12
17
  uniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])
13
- uniform mat4 u_prd02ContactInvProj; // clip -> view
14
- uniform mat4 u_prd02ContactProj; // view -> clip
15
- uniform vec3 u_prd02ContactSun; // shadowed-light dir, view space
18
+ uniform mat4 u_prd02ContactInvViewProj; // clip -> world
19
+ uniform mat4 u_prd02ContactViewProj; // world -> clip
20
+ uniform vec3 u_prd02ContactSun; // shadowed-light direction TOWARD the light, world space
16
21
  uniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)
17
- uniform vec2 u_prd02ContactNearFar; // (near, far)
22
+ uniform vec3 u_prd02ContactNearFar; // (near, far, orthographic 0|1); only the orthographic flag is read
18
23
 
19
24
  float a3d_prd02ContactNoise(vec2 px) {
20
25
  return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));
21
26
  }
22
27
 
23
- float a3d_prd02ContactLinear(float z) {
24
- float n = u_prd02ContactNearFar.x;
25
- float f = u_prd02ContactNearFar.y;
26
- return (n * f) / (f - z * (f - n));
28
+ vec3 a3d_prd02ContactWorld(vec2 uv, float z) {
29
+ vec4 w = u_prd02ContactInvViewProj * vec4(uv * 2.0 - 1.0, z * 2.0 - 1.0, 1.0);
30
+ return w.xyz / w.w;
31
+ }
32
+
33
+ // How far the march point sits behind the visible surface at the same screen position, in world units along the view
34
+ // direction. Perspective: the clip-space w difference (view-space distance). Orthographic: the projection is linear, but the
35
+ // near/far the frame camera reports are not guaranteed to be the ones the projection matrix was built with (the first GPU
36
+ // run of an orthographic scene gave a mask of all ones for that reason), so the gap is measured in world space along the
37
+ // view direction recovered from the inverse view-projection instead.
38
+ float a3d_prd02ContactBehind(vec4 clip, vec3 p, vec3 blockerPos, vec2 suv) {
39
+ if (u_prd02ContactNearFar.z > 0.5) {
40
+ vec3 viewDir = normalize(a3d_prd02ContactWorld(suv, 1.0) - a3d_prd02ContactWorld(suv, 0.0));
41
+ return dot(p - blockerPos, viewDir);
42
+ }
43
+ return clip.w - (u_prd02ContactViewProj * vec4(blockerPos, 1.0)).w;
27
44
  }
28
45
 
29
46
  float a3d_contactShadow(vec2 uv) {
30
47
  float sceneZ = texture(u_prd02ContactDepth, uv).r;
31
- vec4 ndc = vec4(uv * 2.0 - 1.0, sceneZ * 2.0 - 1.0, 1.0);
32
- vec4 vpos = u_prd02ContactInvProj * ndc;
33
- vec3 pos = vpos.xyz / vpos.w;
48
+ vec3 pos = a3d_prd02ContactWorld(uv, sceneZ);
34
49
  float len = u_prd02ContactParams.x;
35
50
  float thickness = u_prd02ContactParams.y;
36
51
  float steps = max(u_prd02ContactParams.z, 1.0);
@@ -40,12 +55,19 @@ float a3d_contactShadow(vec2 uv) {
40
55
  if (float(i) > steps) break;
41
56
  float t = (float(i) - jitter) / steps;
42
57
  vec3 p = pos + u_prd02ContactSun * (t * len);
43
- vec4 clip = u_prd02ContactProj * vec4(p, 1.0);
58
+ vec4 clip = u_prd02ContactViewProj * vec4(p, 1.0);
59
+ if (clip.w <= 0.0) continue;
44
60
  vec3 r = clip.xyz / clip.w;
45
61
  vec2 suv = r.xy * 0.5 + 0.5;
46
62
  if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;
47
- float blocker = a3d_prd02ContactLinear(texture(u_prd02ContactDepth, suv).r);
48
- if (blocker < -p.z - thickness) occluded = max(occluded, 1.0 - t);
63
+ float blockerZ = texture(u_prd02ContactDepth, suv).r;
64
+ vec3 blockerPos = a3d_prd02ContactWorld(suv, blockerZ);
65
+ // The ray point must sit behind the visible surface by more than the thickness parameter (self-shadow bias) and by less than
66
+ // twice the march length. The upper bound stops a foreground prop between the camera and the receiver from
67
+ // "occluding" every ray whose screen position lands behind it (ghost shadows), while still letting a solid
68
+ // caster shade rays that dive up to one march length into its volume.
69
+ float behind = a3d_prd02ContactBehind(clip, p, blockerPos, suv);
70
+ if (behind > thickness && behind < len * 2.0) occluded = max(occluded, 1.0 - t);
49
71
  }
50
72
  return 1.0 - occluded;
51
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contact_shadow.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnD,CAAC"}
1
+ {"version":3,"file":"contact_shadow.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnD,CAAC"}
@@ -0,0 +1,12 @@
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 declare const CONTACT_SHADOW_MASK_CHUNK_ID = "contact_shadow_mask";
11
+ export declare const CONTACT_SHADOW_MASK_GLSL = "\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";
12
+ //# sourceMappingURL=contact_shadow_mask.glsl.d.ts.map