feat(web): wire Blender light contribution factors
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-30 18:36:55 +08:00
parent 2f00b3e322
commit 8bc5d61b75
41 changed files with 1967 additions and 24 deletions

View File

@@ -252,6 +252,10 @@ export interface LightIR {
areaSize: number;
areaSizeY: number;
sunAngle: number;
diffuseFactor?: number;
specularFactor?: number;
transmissionFactor?: number;
volumeFactor?: number;
exposure?: number;
temperature?: number;
useTemperature?: boolean;
@@ -1544,7 +1548,7 @@ export function parseSceneSnapshotIR(value: unknown): SceneSnapshotIR {
for (const field of ["energy", "radius", "spotAngle", "spotBlend", "areaShape", "areaSize", "areaSizeY", "sunAngle"]) {
requireNumber(light[field], `lights[${index}].${field}`);
}
for (const field of ["exposure", "temperature", "areaSpread"] as const) if (light[field] !== undefined) requireNumber(light[field], `lights[${index}].${field}`);
for (const field of ["exposure", "temperature", "areaSpread", "diffuseFactor", "specularFactor", "transmissionFactor", "volumeFactor"] as const) if (light[field] !== undefined) requireNumber(light[field], `lights[${index}].${field}`);
for (const field of ["useTemperature", "castsShadow"] as const) if (light[field] !== undefined) requireBoolean(light[field], `lights[${index}].${field}`);
}
for (const [index, world] of (value.worlds as unknown[]).entries()) {