取景近远裁剪面比例改为具名常量
- 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:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user