2026-05-24-18-59-49 修正薄壳构件实体化映射

This commit is contained in:
2026-05-24 19:10:02 +08:00
parent 1dcfc2a4c1
commit 21b04ecffd
8 changed files with 337 additions and 20 deletions

View File

@@ -1747,3 +1747,21 @@ C. 解决问题方案
D. 后续如何避免问题
后续只要某个 UI 操作会触发异步加载大 STL、DICOM 或导出预计算,都应提供明确加载状态、进度和空状态,避免用户把正常等待理解为显示故障。需要阻止滚轮默认滚动时,应使用原生非被动 wheel 监听并在卸载时清理;触摸按钮优先使用 pointer 事件和 `touch-action` 控制,不要在 passive-prone 的 touch 合成事件中调用 `preventDefault`
## 2026-05-24-18-59-49 薄壳和细长构件需要局部实体化兜底
A. 具体问题
用户反馈当前项目中 `rib` 在三维融合视图里仍像散点,逆向分割映射视图右侧仍有一条一条的线;希望 `skin``rib` 等所有构件在映射视图中尽量显示为实心。
B. 产生问题原因
当前项目 `rib.stl` 有 524364 个三角面、`skin.stl` 有 2720412 个三角面。此前实体模式预览上限为 20 万,二维映射高精度上限为 50 万;由于预览抽样使用 `ceil(triangleCount / limit)` 计算步长,`rib` 在 50 万上限下仍会变成每隔一个三角面取样,细长结构更容易断成点线。另一个原因是二维填充主要依赖扫描线交点配对,近水平切线会被跳过;当 thin shell 或肋骨切面不能形成完整闭合轮廓时,就只剩线段描边。
C. 解决问题方案
将实体模式和逆向分割映射预览上限提高到 80 万,服务端 STL preview 上限同步提高到 80 万,使 `rib` 能全量进入实体预览,`skin` 也能获得更高密度抽样。三维实体模式材质改为不透明并写入深度,减少透明材质排序造成的散点观感。前端 overlay 和服务端 NIfTI 导出在扫描线填充之外,对每个连通组的原始切面线段绘制局部 capsule 厚度,再做小缝隙闭合和内部孔洞填充,保证薄壳、细长构件也有实体化兜底。
D. 后续如何避免问题
后续遇到薄壳、肋骨、皮肤、血管等结构显示成点线时要同时检查三件事STL preview 是否因上限导致抽样缺面、二维切面算法是否跳过水平/切线段、透明材质是否造成三维自排序噪声。实体化显示和导出必须同步处理,不能只改 UI但局部厚度兜底属于演示/显示后处理,接入真实体素化算法后应作为可配置显示选项,而不是替代真实分割算法。