Fix movement-hall black walls and column clipping.
Cap shared hall lights (no per-painting spots) so MeshStandard walls stay within WebGL limits, tuck classical/neoclassical details into engaged corner pilasters, and document the light budget. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
710d262516
commit
1853222e01
@@ -326,7 +326,7 @@ function windowTemplate(style: MovementInteriorStyle): Pick<GalleryWindowSpec, '
|
||||
return { style: 'sash', lightColor: style.warmLight, lightIntensity: 2.8, width: 1.4, height: 1.4 };
|
||||
}
|
||||
|
||||
/** Place windows on side walls only, in gaps between painting frames. */
|
||||
/** Place windows on side walls in gaps between frames; fall back to high clerestory when packed. */
|
||||
export function computeSideWallWindows(
|
||||
layout: MovementHallLayout,
|
||||
interiorStyle: MovementInteriorStyle
|
||||
@@ -364,6 +364,25 @@ export function computeSideWallWindows(
|
||||
lightIntensity: tmpl.lightIntensity,
|
||||
});
|
||||
}
|
||||
|
||||
// Packed walls: still add high clerestory windows so the hall gets daylight + style.
|
||||
if (!specs.some((s) => s.wall === side)) {
|
||||
const span = Math.max(2.4, halfD * 1.2);
|
||||
const count = span > 8 ? 2 : 1;
|
||||
for (let i = 0; i < count; i++) {
|
||||
const t = count === 1 ? 0 : (i === 0 ? -0.35 : 0.35);
|
||||
specs.push({
|
||||
wall: side,
|
||||
x: halfD * t,
|
||||
y: 3.45,
|
||||
width: Math.min(tmpl.width, 1.15),
|
||||
height: Math.min(tmpl.height, 1.05),
|
||||
style: tmpl.style,
|
||||
lightColor: tmpl.lightColor,
|
||||
lightIntensity: tmpl.lightIntensity * 0.85,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return specs;
|
||||
|
||||
Reference in New Issue
Block a user