2026-05-07-17-05-43 增加3D实体显示档位

This commit is contained in:
2026-05-07 17:09:18 +08:00
parent bbc7d215e9
commit 97f5c78907
6 changed files with 188 additions and 8 deletions

View File

@@ -0,0 +1,64 @@
# 实现方案 - 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`
- 已在实体档位提高材质不透明度下限,增强实体面片视觉。