Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-07-17-05-43.md

65 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实现方案 - 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`
- 已在实体档位提高材质不透明度下限,增强实体面片视觉。