取景近远裁剪面比例改为具名常量

- packages/model3d-viewer/src/framing.ts:把 near / far 推导里内联的 1/1000 与 10 提成 NEAR_DISTANCE_RATIO / FAR_DISTANCE_RATIO,与同文件其它比例常量口径一致,取值不变

验证:npx vitest run packages/model3d-viewer(19 用例全绿)
This commit is contained in:
2026-09-22 13:17:02 +08:00
parent f9750bde0b
commit de8bb9d373
+9 -2
View File
@@ -10,6 +10,10 @@ const FALLBACK_RADIUS = 1;
const FALLBACK_ASPECT = 1;
const NEAR_RADIUS_RATIO = 0.01;
const FAR_RADIUS_RATIO = 12;
/** 近裁剪面离相机的距离比例:模型很小时按 1/1000 距离兜底,避免近处被裁。 */
const NEAR_DISTANCE_RATIO = 1 / 1000;
/** 远裁剪面离相机的距离比例:模型很扁时按 10 倍距离兜底,避免远处被裁。 */
const FAR_DISTANCE_RATIO = 10;
const MIN_DISTANCE_RATIO = 0.2;
const MAX_DISTANCE_RATIO = 8;
/** 复位视角仰角:过度抬高会把「上轴投影范围」放大,导致模型看起来比目标比例小。 */
@@ -240,8 +244,11 @@ export function computeModel3dViewerFraming(
center: computeModel3dViewerBoxCenter(input.box),
radius,
distance,
near: Math.max(radius * NEAR_RADIUS_RATIO, distance / 1000),
far: Math.max(distance + radius * FAR_RADIUS_RATIO, distance * 10),
near: Math.max(radius * NEAR_RADIUS_RATIO, distance * NEAR_DISTANCE_RATIO),
far: Math.max(
distance + radius * FAR_RADIUS_RATIO,
distance * FAR_DISTANCE_RATIO,
),
minDistance: radius * MIN_DISTANCE_RATIO,
maxDistance: distance * MAX_DISTANCE_RATIO,
resetDirection: resolveModel3dViewerResetDirection(input.direction),