geopro/.superpowers/sdd/task-12c-report.md

81 lines
5.1 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.

# Task 12c 报告LOD-fps 探针(全量交互渲染最后一根链子)
## 状态
**完成 / PASS** —— 四件事(a/b/c/d)全做,双闸通过(无纹理维度错误 + 三段均回读非空像素),
真实实测未编造。LOD-based C 路线在本机判据下钉死可行。
## 实测数字(本机 RTX 3060 Laptop GPU离屏frames=120多次重跑稳定
| 项 | 维度 | 结果 | 交互级判据 |
|---|---|---|---|
| (a) 粗层概览 fps | level2 整卷 11119×8×41 (~3.6M 体素) | **~752 fps**(多跑 590~759 | ✔ 远超 ≥30 |
| (b) 全分辨率局部 fps | level0 局部 256×29×162 (~120 万体素4 brick 列) | **~380 fps**(多跑 374~422 | ✔ 远超 ≥30 |
| (c) LOD 切换过渡 | 切换帧 60/120从远观(level2)dolly 拉近到近观局部(level0) | 平均 **1.09ms/帧**,切换帧 **~5.5ms**(尖峰 ~6×邻帧最大 ~6.95ms | 无可感知卡顿 ✔ |
- **粗层概览 fps**~752 fps达交互级 ✔)
- **全分辨率局部 fps**~380 fps达交互级 ✔)
- **LOD 切换过渡帧耗时 / 是否卡顿**:切换帧 ~5.5ms(仍 <1 60Hz 16.7ms)→ **无可感知卡顿**
- **截图路径**`docs/superpowers/plans/poc-lod-shots/`
- `lod-overview.png`level2 整线概览 2200m 线呈细带
- `lod-fullres-local.png`level0 局部全分辨率板面有细节
- `lod-transition-mid.png`切换后推近的过渡中间帧
- **是否都达交互级******。(a)/(b) >>30fps(c) 切换无可感知卡顿。
## 设计与诚实测法
- 在真实金字塔 store`gpr_poc build ... --levels 3`level0=44476×29×162
level1=22238×15×81level2=11119×8×41level3=5560×4×21上跑非合成。
- (a)/(b):把对应 level 的所有 brick 重组成单张 VTK_SHORT vtkImageData
(逻辑同 `WholeVolumeSource`,按 level 维度 + spacing×2^level / 局部段 X 偏移),
`buildVoxelI16FromImage`SmartVolumeMapperGPU 路径),旋相机 120 帧测 fps。
level2/局部段单轴均 <16384 3D 纹理可成无纹理墙
- (c)同一窗口相机从远观level2 整卷dolly 拉近 60 帧跨越 LOD 切换那一下
把体从 level2 概览换成 level0 局部 + 焦点移到局部段中心**逐帧记帧耗时**
标切换帧尖峰这是审核人加的验收点①(测切换动态非两端静态)。
- (d)`vtkWindowToImageFilter`+`vtkPNGWriter` 3 PNG供人眼判
概览糊拉近清晰”(审核人验收点②)。
- **双闸 9c绝不把空纹理假帧率当性能**
`CapturingOutputWindow` 捕获 3D 纹理维度错误实测=否);
真实回读前缓冲像素统计非背景像素概览 1889 / 局部 167612 / 过渡 21924
三段均非空)。两闸全过fps 可信
## 卡顿判据说明(避免误报)
切换帧含一次性建 actor / mapper 输入~5.5ms是邻帧(~0.9ms) ~6×但绝对值
< 1 60Hz (16.7ms)人眼不可感故采用**绝对耗时判据**切换帧 >33ms(2 帧)
才记“可感知卡顿”16.7~33ms 记“轻微抖动”,亚毫秒基线下尖峰倍数虽大但绝对值低不算
卡顿。本机切换帧 ~5.5ms → 无可感知卡顿。
## 判据结论
粗层概览 + 全分辨率局部**都达交互级**≥30fps远超且切换**无不可接受卡顿**
→ 命中 brief 第一条判据:**LOD-based C 路线钉死可行**。
对照 12b整卷全分辨率 ray cast(2.08 亿体素)~10fps 是硬上限;本探针证实
“渲更少体素 = LOD” 这根杠杆有效——粗层 ~752fps、全分辨率局部 ~380fps两端都远
在交互级,且 LOD 切换瞬态 ~5.5ms 无卡顿。
## 最低配未验声明(审核人验收点③)
本探针**仅在本机RTX 3060 Laptop GPUNVIDIA 555.97OpenGL 4.5)跑得上限数字**。
**最低配机器未验证**,需用户在目标机跑 `gpr_poc renderLOD <store>` 或提供型号后再评估。
本机数字是上限,最低配可能更低。
## 进程峰值内存
~99 MB探针逐 level 重组单张 image未常驻整卷level0 局部仅取 4 brick 列)。
## Concerns
1. **截图视觉偏暗/偏细**:体绘制 `kMaxOpacity=0.15`(复用探针传函)+ 整线物理纵横比
极扁2200m × ~1.5m × 8m故概览图中整线呈一条细带、过渡中间帧呈小斜板。
这是物理真实呈现(整线本就是长薄带),非渲染缺陷;但作为“人眼判可接受度”素材
偏素净。若需更醒目的生产视觉,需后续调传函不透明度/着色与取景,超出探针范畴(YAGNI)。
2. **(c) 为单次脚本化切换**:测的是“从 level2 直切 level0 局部”一次硬切的瞬态;
生产里多级连续 LOD/视野自适应的换页节奏、预取与 morphing/淡入是探针过了之后的
工程brief 明确不在本探针范围)。
3. **(b) 局部仅取 4 brick 列(256 体素宽)**:证“全分辨率局部块快”;若生产需更宽的
全分辨率窗口(仍需 <16384 或分区/分块fps 会随体素数下降需届时按窗口大小复测
4. **最低配仍是最大未知**见上声明)。