feat(web): wire Blender light clip start
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 19:48:41 +08:00
parent 6414d899fb
commit e9e1788b14
38 changed files with 1952 additions and 21 deletions

View File

@@ -252,6 +252,7 @@ export interface LightIR {
areaSize: number;
areaSizeY: number;
areaSizeZ?: number;
clipStart?: number;
sunAngle: number;
diffuseFactor?: number;
specularFactor?: number;
@@ -1557,7 +1558,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", "diffuseFactor", "specularFactor", "transmissionFactor", "volumeFactor", "attenuationDistance", "shadowFilterRadius", "shadowMaximumResolution", "shadowJitterOverblur", "cascadeMaxDistance", "cascadeExponent", "cascadeFade", "cascadeCount"] as const) if (light[field] !== undefined) requireNumber(light[field], `lights[${index}].${field}`);
for (const field of ["exposure", "temperature", "areaSpread", "diffuseFactor", "specularFactor", "transmissionFactor", "volumeFactor", "attenuationDistance", "shadowFilterRadius", "shadowMaximumResolution", "shadowJitterOverblur", "cascadeMaxDistance", "cascadeExponent", "cascadeFade", "cascadeCount", "clipStart"] 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()) {