# 实现方案 - 2026-05-07-17-05-43 ## 修改目标 将 3D 模型显示档位由 `预览 / 标准 / 精细 / 超精细` 改为 `标准 / 精细 / 超精细 / 实体`,并让 `实体` 更接近完整 STL 面片渲染。 ## 涉及路径 - `WebSite/src/components/ProjectLibrary.tsx` - `WebSite/server.ts` ## 技术路线 ### 1. 更新档位类型和配置 - 将 `SolidityLevel` 从 `preview | standard | fine | ultra` 改为 `standard | fine | ultra | solid`。 - 删除 `预览` 选项。 - 新增 `实体` 选项。 - 设置 `实体` 的 `limit` 为更高值,尽量覆盖默认 9 个 STL 的完整三角面。 ### 2. 提升后端 STL preview 上限 - 后端 `createStlPreview()` 当前最大抽样上限为 `72000`。 - 将上限提升到 `200000`,支持实体档位请求更多三角面。 - 继续保留 `sampleLimit` clamp,避免异常超大请求拖垮服务。 ### 3. 优化实体档位材质 - 在 `NativeStlViewer` 中判断当前档位是否为 `solid`。 - `solid` 档位下使用更高的不透明度下限,例如 `0.92`,增强实体感。 - 其他档位继续使用构件层级中的用户透明度设置。 ## 数据流或交互流程 1. 用户点击 `实体`。 2. 前端 `solidityLevel` 切换为 `solid`。 3. `selectedSolidity.limit` 变大,`NativeStlViewer` 重新请求 STL preview。 4. 后端按更高上限返回更多三角面和稳定 `bounds`。 5. 前端以实体材质重新渲染模型。 ## 兼容性与回滚方案 - 若实体档位渲染压力过大,可降低 `solid.limit` 或后端最大上限。 - 若用户仍需要低质量快速预览,可恢复 `preview` 配置。 ## 预计文件变更 - `WebSite/src/components/ProjectLibrary.tsx` - 更新 `SolidityLevel`、`solidityOptions`。 - `NativeStlViewer` 增加 `solidMode` 参数。 - 实体档位材质增强不透明度。 - `WebSite/server.ts` - 提升 STL preview 最大抽样上限。 ## 人工审核状态 - 本次免二次确认,方案写入后直接执行。 ## 执行结果 - 已删除 `模型显示` 中的 `预览` 档位。 - 已新增 `实体` 档位,前端请求上限为 `200000`。 - 已将后端 STL preview 最大抽样上限从 `72000` 提升到 `200000`。 - 已在实体档位提高材质不透明度下限,增强实体面片视觉。