geopro/.superpowers/sdd/task-12d-polish-report.md

46 lines
3.8 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 12d-polish 报告:梯度不透明度 + 光照 打磨探针
## 状态
完成。真实离屏渲染、真实 fps无编造。三张对比图均通过双闸无 3D 纹理维度错 + 渲出高于背景像素)。
## 命令
`gpr_poc polish tmp\store_lod_001 --frames 90`(默认取景 El45/Az30/Zoom1.5「斜穿俯视」,视线从上方斜穿体内部而非只看端面)。
## 测试体
- 全分辨率 level0 局部段256 x 29 x 162沿线中段 4 brick 列 [345,349)/695垂向夸张 exagg=8放大薄 Y/Z 轴使截面可读)。
- 三图标量传函/配色/取景/夸张全相同,唯一变量是「梯度不透明度 / 光照」。
## 梯度幅值分布量化域中心差分545211 样本,按实测标定阈值)
median=5.32p75=20.1p90=196.2p99=9058.5max=21470。
梯度不透明度 piecewise按此分布标定非猜grad≤5.32→0.0、grad=196.2(p90)→0.5、grad≥9058.5(p99)→0.9。
即:占多数的低梯度均匀区透明,仅高梯度处(层界面)不透明。
标量不透明度峰值:基线 a=0.15与默认体绘制同档→白雾b/c 梯度门控压住均匀区后提到 0.6,让层界面净不透明度(标量×梯度)足够高、层面成实面。
## 三张对比图docs/superpowers/plans/poc-lod-shots/
| 图 | 路径 | 高于背景像素(>35) | 结构像素(>50) | 平均亮度(0-255) | fps |
|---|---|---|---|---|---|
| a 基线白雾 | polish-a-value.png | 219980 (21.5%) | 145874 (14.2%) | 20.07 | 160.8 |
| b +梯度不透明度 | polish-b-grad.png | 50358 (4.9%) | 36430 (3.6%) | 15.71 | 58.2 |
| c +梯度+光照 | polish-c-grad-shade.png | 25008 (2.4%) | 756 (0.07%) | 14.81 | 57.3 |
光照参数cShadeOnAmbient 0.3 / Diffuse 0.7 / Specular 0.2 / SpecularPower 10。
## 目视结论:内部层是否「浮」出来了?
**部分浮出来了,但不是全身——这正是层状数据的固有限制。**
- **a基线**:一根平滑均匀的灰蓝色长条,没有任何内部层次,只有端面隐约可辨——就是需求描述的「体中间均匀白雾、只端面有层次」。穿透均匀水平层积分成雾。
- **b+梯度不透明度)**:体的大部分(沿线中段那段均匀体)变透明、白雾消失,**端部/过渡区露出清晰的水平层状条纹**(层界面),底部另现一块淡蓝层状斑。证实:梯度不透明度确实把均匀积分雾抹掉、把层界面显出来了。
- **c+梯度+光照)**:在 b 基础上端部层条纹带上轻微立体明暗(层带有了明暗起伏的层次感),但 shading 整体压暗,可见区更少更暗。
**关键如实结论**:梯度不透明度 + 光照**能消除均匀白雾、并让「确有梯度突变的层界面」浮出成可读的层状条纹**——打磨方向有效。**但对这条道路 GPR 数据,强梯度集中在端部/过渡区;沿线的长段水平层因「沿测线方向看过去是均匀的」(梯度低)会整段变透明,而不会显出层。**所以打磨**改善了「层界面可见性」**,但**无法让整条体内部都「长出层」——长均匀段的内部偏雾/偏空是层状数据本身的固有属性,不是没打磨。** 想看长段内部层,应配合切片/正交截面,而非纯体绘制穿透积分。
## fps 代价
梯度不透明度需逐采样点算梯度fps 从基线 160 降到 ~58约 -64%),但仍远高于交互级 15fps**可接受**。光照c相对 b 近乎免费58→57。本机 RTX 3060 数;最低配未验。
## 提交自检
-`git add` tools/gpr_poc/main.cpp + 3 张 polish-*.png + 本报告;未 `git add -A`
- `git diff --cached --stat` 确认无 chart/scatter/quill/rangeslider/Dialog/FormK。
- 未改任何交互默认(探针性质,仅新增 polish 子命令与三个 polish 专用辅助函数)。