@aura3d/rendering 1.4.5 → 1.5.2
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.
- package/dist/CameraFraming.d.ts +77 -0
- package/dist/CameraFraming.d.ts.map +1 -1
- package/dist/CameraFraming.js +176 -1
- package/dist/CameraFraming.js.map +1 -1
- package/dist/CascadedShadowMaps.d.ts +9 -1
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +68 -0
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/ClusteredForwardLighting.d.ts +28 -0
- package/dist/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/ClusteredForwardLighting.js +156 -0
- package/dist/ClusteredForwardLighting.js.map +1 -0
- package/dist/DepthPass.d.ts +14 -1
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +19 -4
- package/dist/DepthPass.js.map +1 -1
- package/dist/EnvironmentMapResources.d.ts +59 -1
- package/dist/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/EnvironmentMapResources.js +140 -100
- package/dist/EnvironmentMapResources.js.map +1 -1
- package/dist/EnvironmentPlatform.d.ts +3 -2
- package/dist/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/EnvironmentPlatform.js +99 -44
- package/dist/EnvironmentPlatform.js.map +1 -1
- package/dist/ForwardPass.d.ts +37 -0
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +234 -7
- package/dist/ForwardPass.js.map +1 -1
- package/dist/Geometry.d.ts +19 -0
- package/dist/Geometry.d.ts.map +1 -1
- package/dist/Geometry.js +64 -0
- package/dist/Geometry.js.map +1 -1
- package/dist/IBL.d.ts.map +1 -1
- package/dist/IBL.js +0 -1
- package/dist/IBL.js.map +1 -1
- package/dist/LightCollector.d.ts +5 -1
- package/dist/LightCollector.d.ts.map +1 -1
- package/dist/LightCollector.js +16 -3
- package/dist/LightCollector.js.map +1 -1
- package/dist/LightUniforms.d.ts +26 -1
- package/dist/LightUniforms.d.ts.map +1 -1
- package/dist/LightUniforms.js +140 -8
- package/dist/LightUniforms.js.map +1 -1
- package/dist/LightingRig.d.ts +77 -0
- package/dist/LightingRig.d.ts.map +1 -1
- package/dist/LightingRig.js +100 -11
- package/dist/LightingRig.js.map +1 -1
- package/dist/MeshConsolidation.d.ts +63 -0
- package/dist/MeshConsolidation.d.ts.map +1 -0
- package/dist/MeshConsolidation.js +251 -0
- package/dist/MeshConsolidation.js.map +1 -0
- package/dist/PMREM.d.ts +13 -1
- package/dist/PMREM.d.ts.map +1 -1
- package/dist/PMREM.js +18 -4
- package/dist/PMREM.js.map +1 -1
- package/dist/PostProcessPass.d.ts +24 -2
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +136 -18
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/PrimitiveSubmissionAudit.js +280 -0
- package/dist/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/ProductTurntableFixtures.js +93 -13
- package/dist/ProductTurntableFixtures.js.map +1 -1
- package/dist/ReflectionProbe.d.ts +59 -0
- package/dist/ReflectionProbe.d.ts.map +1 -1
- package/dist/ReflectionProbe.js +224 -0
- package/dist/ReflectionProbe.js.map +1 -1
- package/dist/ReflectionSurfaces.d.ts +4 -2
- package/dist/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/ReflectionSurfaces.js +13 -8
- package/dist/ReflectionSurfaces.js.map +1 -1
- package/dist/RenderBackend.d.ts +1 -1
- package/dist/RenderBackend.d.ts.map +1 -1
- package/dist/RenderBackend.js +5 -1
- package/dist/RenderBackend.js.map +1 -1
- package/dist/RenderDevice.d.ts +13 -2
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js +5 -2
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +66 -3
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +417 -64
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.d.ts +10 -3
- package/dist/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/RendererPostprocessPlan.js +25 -5
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/RendererVisualPipelineReport.js +2 -0
- package/dist/RendererVisualPipelineReport.js.map +1 -1
- package/dist/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/ScreenSpaceLineMaterial.js +93 -0
- package/dist/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/ShaderChunks.d.ts +7 -0
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +137 -0
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +17 -0
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +940 -98
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShadowPass.d.ts +10 -0
- package/dist/ShadowPass.d.ts.map +1 -1
- package/dist/ShadowPass.js +8 -1
- package/dist/ShadowPass.js.map +1 -1
- package/dist/SkinnedLitMaterial.d.ts +6 -0
- package/dist/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/SkinnedLitMaterial.js +22 -8
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/SkinnedUnlitMaterial.js +26 -9
- package/dist/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/SpecularPrefilter.d.ts +42 -0
- package/dist/SpecularPrefilter.d.ts.map +1 -0
- package/dist/SpecularPrefilter.js +480 -0
- package/dist/SpecularPrefilter.js.map +1 -0
- package/dist/TerrainFixtures.d.ts +24 -0
- package/dist/TerrainFixtures.d.ts.map +1 -1
- package/dist/TerrainFixtures.js +96 -0
- package/dist/TerrainFixtures.js.map +1 -1
- package/dist/Texture.d.ts +7 -0
- package/dist/Texture.d.ts.map +1 -1
- package/dist/Texture.js +9 -0
- package/dist/Texture.js.map +1 -1
- package/dist/VertexFormat.d.ts +34 -1
- package/dist/VertexFormat.d.ts.map +1 -1
- package/dist/VertexFormat.js +61 -0
- package/dist/VertexFormat.js.map +1 -1
- package/dist/WebGL2Device.d.ts +48 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +1298 -44
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +7 -2
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +111 -17
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/WebGPUSkinningLimits.js +14 -0
- package/dist/WebGPUSkinningLimits.js.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/index.d.ts +6 -0
- package/dist/cartoon/index.d.ts.map +1 -0
- package/dist/cartoon/index.js +6 -0
- package/dist/cartoon/index.js.map +1 -0
- package/dist/index.d.ts +29 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/production-runtime/index.d.ts +3 -1
- package/dist/production-runtime/index.d.ts.map +1 -1
- package/dist/production-runtime/index.js +1 -0
- package/dist/production-runtime/index.js.map +1 -1
- package/package.json +3 -3
package/dist/LightingRig.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface LightingRigLightDescriptor {
|
|
|
12
12
|
readonly range: number;
|
|
13
13
|
readonly spotAngle: number;
|
|
14
14
|
readonly penumbra: number;
|
|
15
|
+
readonly width: number;
|
|
16
|
+
readonly height: number;
|
|
15
17
|
readonly castsShadow: boolean;
|
|
16
18
|
readonly claimBoundary: string;
|
|
17
19
|
}
|
|
@@ -47,7 +49,82 @@ export interface LightingRigOptions {
|
|
|
47
49
|
readonly intensityScale?: number;
|
|
48
50
|
readonly shadows?: boolean;
|
|
49
51
|
readonly includeUnsupportedDiagnostics?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Scale light *placements* to the rendered subject, keeping the rig's geometry across asset swaps.
|
|
54
|
+
*
|
|
55
|
+
* ## Why this exists
|
|
56
|
+
*
|
|
57
|
+
* Preset positions are authored for a subject about 1 unit tall. Every showcase route therefore ignored
|
|
58
|
+
* them and hand-authored its own coordinates: Turbo as `SCENE_SIZE` multiples, Blockfall and Aura Clash as
|
|
59
|
+
* bare numbers. The *structure* those routes built was identical -- ambient, key, opposing rims -- and only
|
|
60
|
+
* the coordinates differed, because each route re-derived where a rim belongs for its own subject size.
|
|
61
|
+
*
|
|
62
|
+
* That is the same defect class as the framing constants: a coordinate correct for one subject reads as a
|
|
63
|
+
* design decision, survives an asset swap, and is then silently wrong. Turbo's `CAR_SCENE_HEIGHT` and its
|
|
64
|
+
* hand-tuned chase height both outlived their assets exactly this way.
|
|
65
|
+
*
|
|
66
|
+
* Supplying `subject` multiplies each preset position by `subjectHeight` (and lateral placement by the
|
|
67
|
+
* subject's widest horizontal extent, since a rim must reach the silhouette edge to do anything), then
|
|
68
|
+
* lifts the rig onto `floorY`. Intensities are untouched: a rig that dimmed with subject size would make
|
|
69
|
+
* large subjects dark for no photographic reason.
|
|
70
|
+
*/
|
|
71
|
+
readonly subject?: LightingRigSubject;
|
|
72
|
+
}
|
|
73
|
+
/** Rendered subject measurements a rig scales its placements to. */
|
|
74
|
+
export interface LightingRigSubject {
|
|
75
|
+
/** Rendered subject height in world units. Pair with `resolveSubjectRenderedSize` so it is derived. */
|
|
76
|
+
readonly height: number;
|
|
77
|
+
/** Widest horizontal extent, used for lateral rim placement. Defaults to `height`. */
|
|
78
|
+
readonly width?: number;
|
|
79
|
+
/** World Y of the surface the subject stands on. Defaults to 0. */
|
|
80
|
+
readonly floorY?: number;
|
|
50
81
|
}
|
|
51
82
|
export declare function createLightingRig(options?: LightingRigOptions): LightingRig;
|
|
83
|
+
/** Placement for a rim light that follows a moving subject. */
|
|
84
|
+
export interface SubjectRimPlacement {
|
|
85
|
+
/** World position for the rim light. */
|
|
86
|
+
readonly position: readonly [number, number, number];
|
|
87
|
+
/** Point-light range, sized so falloff keeps the rim on the subject rather than the backdrop. */
|
|
88
|
+
readonly range: number;
|
|
89
|
+
}
|
|
90
|
+
export interface SubjectRimPlacementOptions {
|
|
91
|
+
/** Subject's current world position (its ground contact point). */
|
|
92
|
+
readonly subjectPosition: readonly [number, number, number];
|
|
93
|
+
/** Rendered subject height in world units. Everything below is a fraction of it. */
|
|
94
|
+
readonly subjectHeight: number;
|
|
95
|
+
/** Which side of the subject the rim sits on. */
|
|
96
|
+
readonly side: "left" | "right";
|
|
97
|
+
/**
|
|
98
|
+
* Depth offset behind the subject, as a fraction of subject height.
|
|
99
|
+
*
|
|
100
|
+
* Negative values sit behind a subject viewed down -z, which is what makes the light graze the silhouette
|
|
101
|
+
* edge instead of front-lighting the body.
|
|
102
|
+
*/
|
|
103
|
+
readonly depthFraction?: number | undefined;
|
|
104
|
+
/** Height above the subject's contact point, as a fraction of subject height. */
|
|
105
|
+
readonly heightFraction?: number | undefined;
|
|
106
|
+
/** Lateral offset, as a fraction of subject height. */
|
|
107
|
+
readonly lateralFraction?: number | undefined;
|
|
108
|
+
/** Range as a fraction of subject height. */
|
|
109
|
+
readonly rangeFraction?: number | undefined;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Place a rim light relative to a moving subject.
|
|
113
|
+
*
|
|
114
|
+
* ## Why this is reusable rather than route-local
|
|
115
|
+
*
|
|
116
|
+
* Aura Clash computes per-fighter rim placement inline as
|
|
117
|
+
* `(fighter.x ± 0.34, fighter.y + 1.22, -0.72)` with `range = 1.5`. Against its 1.829-unit fighter rig those
|
|
118
|
+
* are 0.186x, 0.667x, -0.394x and 0.820x of subject height respectively — clean photographic ratios written as
|
|
119
|
+
* absolute literals. Any fighter rig of a different height silently breaks them: the rim drifts off the
|
|
120
|
+
* silhouette and stops separating the subject from the backdrop, which is the one thing a rim exists to do.
|
|
121
|
+
*
|
|
122
|
+
* That is the same defect class as the framing constants removed earlier in this work: a coordinate correct
|
|
123
|
+
* for one asset reads as a design decision, survives a swap, and is then wrong. Expressing the ratios keeps
|
|
124
|
+
* the intent ("upper-torso height, slightly outboard, behind the subject") and lets the numbers follow the rig.
|
|
125
|
+
*
|
|
126
|
+
* The defaults are Aura Clash's measured values, so adopting this helper is a no-op for its current rig.
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveSubjectRimPlacement(options: SubjectRimPlacementOptions): SubjectRimPlacement;
|
|
52
129
|
export declare function listLightingRigPresets(): readonly LightingRigPreset[];
|
|
53
130
|
//# sourceMappingURL=LightingRig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightingRig.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LightingRig.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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"}
|
package/dist/LightingRig.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DirectionalLight, Light, PointLight, SpotLight } from "@aura3d/scene";
|
|
1
|
+
import { DirectionalLight, Light, PointLight, RectAreaLight, SpotLight } from "@aura3d/scene";
|
|
2
2
|
export function createLightingRig(options = {}) {
|
|
3
3
|
const preset = options.preset ?? "key-fill-rim";
|
|
4
4
|
const intensityScale = positive(options.intensityScale ?? 1, "lighting rig intensityScale");
|
|
@@ -6,6 +6,7 @@ export function createLightingRig(options = {}) {
|
|
|
6
6
|
const lights = lightingRigDescriptors(preset).map((light) => ({
|
|
7
7
|
...light,
|
|
8
8
|
intensity: round3(light.intensity * intensityScale),
|
|
9
|
+
position: scaleRigPosition(light.position, options.subject),
|
|
9
10
|
castsShadow: shadows && light.castsShadow
|
|
10
11
|
}));
|
|
11
12
|
const softboxes = lightingRigSoftboxes(preset).map((softbox) => ({
|
|
@@ -25,10 +26,59 @@ export function createLightingRig(options = {}) {
|
|
|
25
26
|
softboxProxyCount: softboxes.length,
|
|
26
27
|
unsupportedFeatures,
|
|
27
28
|
disclosures: unsupportedFeatures.map(lightingDisclosure),
|
|
28
|
-
claimBoundary: "Lighting rigs are reusable direct-light descriptors for A3D ForwardPass
|
|
29
|
+
claimBoundary: "Lighting rigs are reusable direct-light descriptors for A3D ForwardPass, including finite rectangular emitters in studio presets; IES profiles, GI, contact shadows, cascaded shadows, and rectangular-light shadow maps require separate renderer evidence."
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Place a rim light relative to a moving subject.
|
|
35
|
+
*
|
|
36
|
+
* ## Why this is reusable rather than route-local
|
|
37
|
+
*
|
|
38
|
+
* Aura Clash computes per-fighter rim placement inline as
|
|
39
|
+
* `(fighter.x ± 0.34, fighter.y + 1.22, -0.72)` with `range = 1.5`. Against its 1.829-unit fighter rig those
|
|
40
|
+
* are 0.186x, 0.667x, -0.394x and 0.820x of subject height respectively — clean photographic ratios written as
|
|
41
|
+
* absolute literals. Any fighter rig of a different height silently breaks them: the rim drifts off the
|
|
42
|
+
* silhouette and stops separating the subject from the backdrop, which is the one thing a rim exists to do.
|
|
43
|
+
*
|
|
44
|
+
* That is the same defect class as the framing constants removed earlier in this work: a coordinate correct
|
|
45
|
+
* for one asset reads as a design decision, survives a swap, and is then wrong. Expressing the ratios keeps
|
|
46
|
+
* the intent ("upper-torso height, slightly outboard, behind the subject") and lets the numbers follow the rig.
|
|
47
|
+
*
|
|
48
|
+
* The defaults are Aura Clash's measured values, so adopting this helper is a no-op for its current rig.
|
|
49
|
+
*/
|
|
50
|
+
export function resolveSubjectRimPlacement(options) {
|
|
51
|
+
const height = Math.max(1e-6, options.subjectHeight);
|
|
52
|
+
const lateral = height * (options.lateralFraction ?? 0.1859);
|
|
53
|
+
const sign = options.side === "left" ? -1 : 1;
|
|
54
|
+
return {
|
|
55
|
+
position: [
|
|
56
|
+
round3((options.subjectPosition[0] ?? 0) + sign * lateral),
|
|
57
|
+
round3((options.subjectPosition[1] ?? 0) + height * (options.heightFraction ?? 0.667)),
|
|
58
|
+
round3((options.subjectPosition[2] ?? 0) + height * (options.depthFraction ?? -0.3937))
|
|
59
|
+
],
|
|
60
|
+
range: round3(height * (options.rangeFraction ?? 0.8201))
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Scale a preset placement onto a subject.
|
|
65
|
+
*
|
|
66
|
+
* Lateral (X) placement follows the subject's widest horizontal extent so a rim actually reaches the
|
|
67
|
+
* silhouette edge; height and depth follow subject height so the rig's vertical geometry is preserved.
|
|
68
|
+
* Returns the authored position unchanged when no subject is supplied, so existing callers are unaffected.
|
|
69
|
+
*/
|
|
70
|
+
function scaleRigPosition(position, subject) {
|
|
71
|
+
if (!subject)
|
|
72
|
+
return position;
|
|
73
|
+
const height = Math.max(1e-6, subject.height);
|
|
74
|
+
const lateral = Math.max(height, subject.width ?? height);
|
|
75
|
+
const floorY = subject.floorY ?? 0;
|
|
76
|
+
return [
|
|
77
|
+
round3(position[0] * lateral),
|
|
78
|
+
round3(floorY + position[1] * height),
|
|
79
|
+
round3(position[2] * height)
|
|
80
|
+
];
|
|
81
|
+
}
|
|
32
82
|
export function listLightingRigPresets() {
|
|
33
83
|
return ["key-fill-rim", "studio-softbox", "sun", "industrial", "urban-neon", "product-detail", "product-shot"];
|
|
34
84
|
}
|
|
@@ -36,7 +86,7 @@ function lightingRigDescriptors(preset) {
|
|
|
36
86
|
switch (preset) {
|
|
37
87
|
case "studio-softbox":
|
|
38
88
|
return [
|
|
39
|
-
|
|
89
|
+
areaLight("studio-key", "key", [1, 0.95, 0.88], 12, [-3, 5, 4], [0.45, -0.72, -0.53], 12, [2.2, 1.2], "Finite rectangular studio key integrated by the forward PBR shader; rectangular-light shadow maps remain unsupported."),
|
|
40
90
|
light("studio-fill", "directional", "fill", [0.68, 0.78, 1], 0.38, [4, 3, 2], [-0.76, -0.42, -0.5], 0, 0, 0, false, "Fill is a direct-light approximation."),
|
|
41
91
|
light("studio-rim", "spot", "rim", [0.78, 0.9, 1], 0.72, [0, 3.2, -4], [0, -0.42, 0.91], 9, Math.PI / 5, 0.45, false, "Rim light is a bounded spot helper.")
|
|
42
92
|
];
|
|
@@ -59,14 +109,14 @@ function lightingRigDescriptors(preset) {
|
|
|
59
109
|
];
|
|
60
110
|
case "product-detail":
|
|
61
111
|
return [
|
|
62
|
-
|
|
112
|
+
areaLight("product-detail-key", "key", [1, 0.9, 0.78], 14, [-4.8, 3.3, 3.2], [0.7, -0.48, -0.52], 12, [1.9, 0.58], "Finite rectangular glancing key for normal/AO inspection; its dimensions affect PBR lighting."),
|
|
63
113
|
light("product-detail-cool-edge", "spot", "rim", [0.64, 0.78, 1], 1.15, [2.9, 2.6, -3.6], [-0.42, -0.34, 0.84], 8, Math.PI / 5.5, 0.38, false, "Cool edge strip is a bounded spot helper for product silhouette separation."),
|
|
64
114
|
light("product-detail-warm-edge", "point", "accent", [1, 0.55, 0.28], 0.54, [-2.4, 1.1, -1.2], [0.3, -0.18, 0.72], 4.8, 0, 0, false, "Warm practical accent adds bounded hue separation; it is not emissive bounce or GI."),
|
|
65
115
|
light("product-detail-fill", "directional", "fill", [0.48, 0.56, 0.68], 0.16, [4.2, 2.4, 3.6], [-0.68, -0.34, -0.64], 0, 0, 0, false, "Low fill preserves product material contrast.")
|
|
66
116
|
];
|
|
67
117
|
case "product-shot":
|
|
68
118
|
return [
|
|
69
|
-
|
|
119
|
+
areaLight("product-key", "key", [1, 0.95, 0.88], 16, [-4, 5, 4], [0.52, -0.64, -0.56], 14, [2.4, 1.35], "Finite rectangular product key integrated across its emitting surface."),
|
|
70
120
|
light("product-fill", "directional", "fill", [0.7, 0.78, 0.9], 0.3, [4, 3, 3], [-0.68, -0.46, -0.57], 0, 0, 0, false, "Product fill is direct lighting."),
|
|
71
121
|
light("product-rim", "spot", "rim", [0.85, 0.92, 1], 0.78, [0.5, 3.2, -4.5], [-0.08, -0.36, 0.93], 8, Math.PI / 6, 0.42, false, "Rim light is a bounded spot helper.")
|
|
72
122
|
];
|
|
@@ -116,17 +166,40 @@ function softbox(id, role, color, intensity, position, direction, size, linkedLi
|
|
|
116
166
|
};
|
|
117
167
|
}
|
|
118
168
|
function light(id, kind, role, color, intensity, position, direction, range, spotAngle, penumbra, castsShadow, claimBoundary) {
|
|
119
|
-
return { id, kind, role, color, intensity, position, direction: normalize(direction), range, spotAngle, penumbra, castsShadow, claimBoundary };
|
|
169
|
+
return { id, kind, role, color, intensity, position, direction: normalize(direction), range, spotAngle, penumbra, width: 0, height: 0, castsShadow, claimBoundary };
|
|
170
|
+
}
|
|
171
|
+
function areaLight(id, role, color, intensity, position, direction, range, size, claimBoundary) {
|
|
172
|
+
return {
|
|
173
|
+
id,
|
|
174
|
+
kind: "rect-area",
|
|
175
|
+
role,
|
|
176
|
+
color,
|
|
177
|
+
intensity,
|
|
178
|
+
position,
|
|
179
|
+
direction: normalize(direction),
|
|
180
|
+
range,
|
|
181
|
+
spotAngle: 0,
|
|
182
|
+
penumbra: 0,
|
|
183
|
+
width: size[0],
|
|
184
|
+
height: size[1],
|
|
185
|
+
castsShadow: false,
|
|
186
|
+
claimBoundary
|
|
187
|
+
};
|
|
120
188
|
}
|
|
121
189
|
function toCollectedLight(light) {
|
|
122
190
|
const source = createSourceLight(light);
|
|
191
|
+
const [right, up] = areaBasis(light.direction);
|
|
123
192
|
return {
|
|
124
193
|
kind: light.kind,
|
|
125
194
|
color: light.color,
|
|
126
195
|
intensity: light.intensity,
|
|
127
196
|
position: light.position,
|
|
128
197
|
direction: light.direction,
|
|
198
|
+
right,
|
|
199
|
+
up,
|
|
129
200
|
range: light.range,
|
|
201
|
+
width: light.width,
|
|
202
|
+
height: light.height,
|
|
130
203
|
spotAngle: light.spotAngle,
|
|
131
204
|
penumbra: light.penumbra,
|
|
132
205
|
castsShadow: light.castsShadow,
|
|
@@ -139,25 +212,29 @@ function createSourceLight(light) {
|
|
|
139
212
|
? new DirectionalLight(light.id)
|
|
140
213
|
: light.kind === "point"
|
|
141
214
|
? new PointLight(light.id)
|
|
142
|
-
:
|
|
215
|
+
: light.kind === "spot"
|
|
216
|
+
? new SpotLight(light.id)
|
|
217
|
+
: new RectAreaLight(light.id);
|
|
143
218
|
source.color = [...light.color];
|
|
144
219
|
source.intensity = light.intensity;
|
|
145
220
|
source.castsShadow = light.castsShadow;
|
|
146
221
|
source.transform.setPosition(light.position[0], light.position[1], light.position[2]);
|
|
147
|
-
if (source instanceof PointLight || source instanceof SpotLight)
|
|
222
|
+
if (source instanceof PointLight || source instanceof SpotLight || source instanceof RectAreaLight)
|
|
148
223
|
source.range = Math.max(0.001, light.range);
|
|
149
224
|
if (source instanceof SpotLight) {
|
|
150
225
|
source.angle = clamp(light.spotAngle || Math.PI / 5, 0.001, Math.PI / 2 - 0.001);
|
|
151
226
|
source.penumbra = clamp(light.penumbra, 0, 1);
|
|
152
227
|
}
|
|
228
|
+
if (source instanceof RectAreaLight) {
|
|
229
|
+
source.width = light.width;
|
|
230
|
+
source.height = light.height;
|
|
231
|
+
}
|
|
153
232
|
return source;
|
|
154
233
|
}
|
|
155
234
|
function unsupportedFeaturesForRig(preset, includeUnsupportedDiagnostics) {
|
|
156
235
|
if (!includeUnsupportedDiagnostics)
|
|
157
236
|
return [];
|
|
158
237
|
const base = ["ies-photometric-profile", "contact-shadow-map", "global-illumination"];
|
|
159
|
-
if (preset === "studio-softbox" || preset === "product-shot" || preset === "product-detail")
|
|
160
|
-
base.unshift("rectangular-area-light");
|
|
161
238
|
if (preset === "sun")
|
|
162
239
|
base.push("cascaded-shadow-map");
|
|
163
240
|
return base;
|
|
@@ -165,7 +242,7 @@ function unsupportedFeaturesForRig(preset, includeUnsupportedDiagnostics) {
|
|
|
165
242
|
function lightingDisclosure(feature) {
|
|
166
243
|
switch (feature) {
|
|
167
244
|
case "rectangular-area-light":
|
|
168
|
-
return "Rectangular
|
|
245
|
+
return "Rectangular area-light shading is implemented for finite emitters; this diagnostic is reserved for callers that explicitly require rectangular-light shadow maps or three.js LTC lookup-table identity.";
|
|
169
246
|
case "ies-photometric-profile":
|
|
170
247
|
return "IES photometric profiles are unsupported; point and spot practicals use bounded cone/range descriptors only.";
|
|
171
248
|
case "contact-shadow-map":
|
|
@@ -180,6 +257,18 @@ function normalize(value) {
|
|
|
180
257
|
const length = Math.hypot(value[0], value[1], value[2]);
|
|
181
258
|
return length === 0 ? [0, -1, 0] : [round5(value[0] / length), round5(value[1] / length), round5(value[2] / length)];
|
|
182
259
|
}
|
|
260
|
+
function areaBasis(direction) {
|
|
261
|
+
const reference = Math.abs(direction[1]) < 0.99 ? [0, 1, 0] : [1, 0, 0];
|
|
262
|
+
const right = normalize(cross(reference, direction));
|
|
263
|
+
return [right, normalize(cross(direction, right))];
|
|
264
|
+
}
|
|
265
|
+
function cross(left, right) {
|
|
266
|
+
return [
|
|
267
|
+
left[1] * right[2] - left[2] * right[1],
|
|
268
|
+
left[2] * right[0] - left[0] * right[2],
|
|
269
|
+
left[0] * right[1] - left[1] * right[0]
|
|
270
|
+
];
|
|
271
|
+
}
|
|
183
272
|
function positive(value, label) {
|
|
184
273
|
if (!Number.isFinite(value) || value <= 0)
|
|
185
274
|
throw new RangeError(`${label} must be finite and positive.`);
|
package/dist/LightingRig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightingRig.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LightingRig.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Geometry } from "./Geometry";
|
|
2
|
+
import type { RenderItem, RenderMaterial } from "./ForwardPass";
|
|
3
|
+
import { type Mat4 } from "@aura3d/scene";
|
|
4
|
+
/**
|
|
5
|
+
* Merges distinct static geometries that share a material into single vertex/index buffers.
|
|
6
|
+
*
|
|
7
|
+
* This is the complement to `batchStaticRenderItems`, and the distinction matters. Static *batching*
|
|
8
|
+
* instances one geometry many times, so it only helps when the same buffer is reused. Architectural
|
|
9
|
+
* GLBs exported from level editors are usually the opposite case: every mesh primitive owns unique
|
|
10
|
+
* geometry, so batching cannot merge anything even when the primitives share a material.
|
|
11
|
+
*
|
|
12
|
+
* Measured on `auraClashDuelStage`: 85 mesh primitives with 85 distinct attribute sets but only 13
|
|
13
|
+
* distinct material definitions. Batching left it at 207 draw calls; consolidation collapses the
|
|
14
|
+
* primitives that share a material into one draw each.
|
|
15
|
+
*
|
|
16
|
+
* The merge is only valid for geometry that is genuinely static, because each source geometry's model
|
|
17
|
+
* matrix is **baked into its vertex positions**. Anything that must move, deform, or be culled
|
|
18
|
+
* independently is excluded rather than merged.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Caches a consolidation result so the merge runs once for a stable input set.
|
|
22
|
+
*
|
|
23
|
+
* Merging walks every vertex and allocates new buffers, which is far too expensive to repeat per
|
|
24
|
+
* frame: measured on the Aura Clash arena, re-merging each frame cut draw calls 230 -> 53 but pushed
|
|
25
|
+
* frame time to **247 ms**. The inputs it is used for are static by definition, so the result can be
|
|
26
|
+
* reused as long as the identity and transform of every input is unchanged.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createStaticMeshConsolidationCache(): {
|
|
29
|
+
consolidate(items: readonly MeshConsolidationInput[], options?: MeshConsolidationOptions): MeshConsolidationResult;
|
|
30
|
+
};
|
|
31
|
+
export interface MeshConsolidationInput {
|
|
32
|
+
readonly geometry: Geometry;
|
|
33
|
+
readonly material: RenderMaterial;
|
|
34
|
+
readonly modelMatrix: Mat4 | Float32Array | readonly number[];
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface MeshConsolidationOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Upper bound on vertices in a merged buffer. Keeps a single merge from producing a buffer so large
|
|
40
|
+
* that it defeats frustum culling or exceeds practical upload sizes.
|
|
41
|
+
*/
|
|
42
|
+
readonly maxVerticesPerMesh?: number;
|
|
43
|
+
readonly labelPrefix?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface MeshConsolidationResult {
|
|
46
|
+
readonly renderItems: readonly RenderItem[];
|
|
47
|
+
readonly inputItems: number;
|
|
48
|
+
readonly submittedItems: number;
|
|
49
|
+
/** Merged buffers produced. */
|
|
50
|
+
readonly mergedMeshes: number;
|
|
51
|
+
/** Items passed through unmerged, either alone in their group or over the vertex cap. */
|
|
52
|
+
readonly passthroughItems: number;
|
|
53
|
+
readonly drawCallReduction: number;
|
|
54
|
+
readonly maxVerticesPerMesh: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Groups inputs by (vertex format, topology, material) and merges each group into one geometry.
|
|
58
|
+
*
|
|
59
|
+
* Format and topology must match because merged vertices share one buffer layout and one draw
|
|
60
|
+
* topology. Material identity must match because a single draw binds one material.
|
|
61
|
+
*/
|
|
62
|
+
export declare function consolidateStaticMeshes(items: readonly MeshConsolidationInput[], options?: MeshConsolidationOptions): MeshConsolidationResult;
|
|
63
|
+
//# sourceMappingURL=MeshConsolidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeshConsolidation.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/MeshConsolidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,IAAI;IACpD,WAAW,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC;CACpH,CAoCA;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CA4GzB"}
|