4.4 KiB
4.4 KiB
待优化清单(Optimization Backlog)
全局「待优化 / 技术债 / 性能与体验改进」登记簿。所有后续发现但当下不做(或暂以折中实现)的优化点 都登记到此,并随进展更新状态。区别于 bug(bug 当场修,见 CLAUDE.md 技术债规则)——这里收录的是 「能用但不够理想、需要更大改造才能做到位」的优化项。
状态图例
- 🔴 Open — 待优化,尚未动工
- 🟡 In Progress — 正在做
- 🟢 Done — 已完成(保留记录,标注完成 commit/日期)
- ⚪ Won't Do — 评估后决定不做(标注原因)
维护约定
- 新增项用递增 ID(OPT-NNN),不复用已删 ID。
- 每项含:背景/现状、期望、难点、状态、记录日期、关联 commit。
- 状态变更时更新「状态」行与「更新」行,不删历史。
OPT-001 · 放大系数(VE) 完全无重绘的即时缩放
- 状态:🔴 Open
- 记录日期:2026-06-25
- 背景/现状:
VtkSceneController::setVerticalExaggeration当前走「保留相机重建」(commit7ff6f18)—— 改 VE 时相机不再跳远视角、原地按新夸张重绘,但数据/底图仍会重建并重绘一次(有一次闪烁)。 根因:VE 被烤进几何——帘面用actor->SetScale(1,1,VE)、体素把 VE 烤进 image 的 z origin/spacing、 地形烤进buildTerrain;且切片附着依赖含 VE 的 currentVolumeImage_。 - 期望:拖动放大系数时纯 actor 层 Z 缩放,零重载零重绘、即时跟手(理想可恢复拖动实时预览)。
- 难点:
- 体素须改为「image 建在 VE=1、vtkVolume prop 用
SetScale(1,1,VE)」,但切片重采样依赖含 VE 的 image 几何,需同步改造切片附着/重采样链(InteractionManager)。 - 地形/帘面/体素三类 actor 的 VE 应统一走 actor 变换,避免混用(部分烤几何、部分 actor 缩放)。
- 底图(TileBasemap) VE 同步是否也能免重载需评估。
- 体素须改为「image 建在 VE=1、vtkVolume prop 用
- 关联:
7ff6f18(当前保留相机的折中实现)。 - 更新:—
OPT-002 · 多三维体并发的切片渲染
- 状态:🟢 Done(issue2/③/反向②,commit
69e8790);④ 切片拾取串选仍 🔴 Open(见下) - 记录日期:2026-06-25
- 背景/现状:切片渲染绑定单一「当前体」——
syncSlices只显示sp.volumeDsId == currentVolumeDsId()的切片,currentVolumeDsId= 最后添加的体(VtkSceneView::volumeOwnerDs_)。勾选第二个三维体后它 成为 current,第一个体的切片被syncSlices隐藏(用户 issue2:选第二个体时第一个体的切片消失)。 根因:InteractionManager把切片附着到单个currentVolumeImage_,不支持同时挂多个体的 image。 - 期望:多个体同时渲染时,各自的已勾选切片都能并存显示(按各切片的
volumeDsId取对应体 image 重采样)。 - 难点:
InteractionManager的切片附着/重采样改为「按 volumeDsId 多体管理」;VtkSceneView需暴露 多个体的 image(非单currentVolumeImage_);切片拾取/选中也要按所属体区分。与 OPT 无关的切片右键 「保存/导出」依赖 selectedSlice 当前体,也需一并核对。 - 关联:syncSlices/onVolumeChanged(
src/app/main.cpp)、VtkSceneView::currentVolumeImage_。 - 同簇问题(一并改造):
- ③ 右键体却把切片建到 current 体:右键三维体 A「生成切片」时仍用
currentVolumeDsId()(=最后渲染的 体)创建切片。需把目标体 dsId 随右键带下来,并让 addSlice 用 A 的 image(依赖多体 image 管理)。 - ④ 切片拾取串选(仍 Open):点任意切片却选中上下切片。根因是重叠切片下 VTK 的事件路由「最前
平面优先」+
nearestSlice启发式:多张切片在屏幕投影重叠时,最前/最近的那张被选中。vtkImagePlaneWidget(VTK9.6) 不暴露 texture-plane actor,pick-list 精确化方案已试→回退。 须在可交互点击的运行环境里实地调试(点击重叠的 3D 切片才能验证),盲改会破坏现有可用的选择。 候选方案:自管切片 actor 做精确 pick / 重叠时让用户循环切换 / 调 widget 优先级。
- ③ 右键体却把切片建到 current 体:右键三维体 A「生成切片」时仍用
- 更新:2026-06-25 issue2+③+反向② 已实现(
69e8790);④ 留待能 live 调试的会话单独做。