diff --git a/packages/model3d-viewer/src/framing.ts b/packages/model3d-viewer/src/framing.ts index 78c7ba7bb..94a129e67 100644 --- a/packages/model3d-viewer/src/framing.ts +++ b/packages/model3d-viewer/src/framing.ts @@ -200,8 +200,11 @@ export function createModel3dViewerFitSolver( export function computeModel3dViewerFitDistance( input: Model3dViewerFramingInput, ): number { - if (input.distance !== undefined) { - return input.distance; + // 调用方给的距离会直接决定 near / far / 轨道缩放范围,非法值(0、负数、NaN) + // 会让 maxDistance 小于 minDistance,取景与轨道钳制一起失效,故按无效处理。 + const distance = input.distance; + if (distance !== undefined && Number.isFinite(distance) && distance > 0) { + return distance; } const solver = createModel3dViewerFitSolver({ center: computeModel3dViewerBoxCenter(input.box),