# 待优化清单(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` 当前走「保留相机重建」(commit `7ff6f18`)—— 改 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 同步是否也能免重载需评估。 - **关联**:`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 优先级。 - **更新**:2026-06-25 issue2+③+反向② 已实现(`69e8790`);④ 留待能 live 调试的会话单独做。