Commit Graph

7 Commits

Author SHA1 Message Date
gaozheng 824898a65c feat(poc): gpr_poc renderLOD 探针验证 LOD-fps 全量交互渲染可行性
四件事全离屏双闸实测(本机 RTX3060):
(a)粗层概览 level2 ~752fps (b)全分辨率局部 level0 ~380fps
(c)LOD 切换过渡切换帧 ~5.5ms 无可感知卡顿 (d)存 3 张对比 PNG。
双闸:无 3D 纹理维度错误 + 三段均回读非空像素,fps 可信。
判据:两端均达交互级且切换无卡顿 -> LOD-based C 路线钉死可行。
最低配未验,需目标机复测。tools CMake 加 IOImage 供 PNG 截图。
2026-06-23 17:49:11 +08:00
gaozheng f51706b4b3 feat(poc): renderC-partitioned 单 mapper SetPartitions 整卷体绘制 fps 探针
整卷喂单个 vtkOpenGLGPUVolumeRayCastMapper + SetPartitions(ceil(nx/16384),1,1),
绕过 GL_MAX_3D_TEXTURE_SIZE 纹理墙。双闸(纹理错捕获+真实回读非空像素)防假帧率。

实测(44476x29x162,398MB):SetPartitions(3,1,1) 真渲出(非空 1264px,无纹理错),
体绘制 ~8.8-11fps,峰值内存 ~556-653MB。绕过纹理墙成功但未达交互级(<15fps),
与 renderC MultiBlock 9.5 静态同档 → 瓶颈在全分辨率整卷 ray cast 本身,
非每块一 mapper。VTK 这条路交互级天花板暴露。
2026-06-23 17:10:49 +08:00
gaozheng 2beb97fa73 feat(vtk): 核外分块体绘制 OutOfCoreSource + renderC 基准(POC-C 命门探针)
OutOfCoreSource 实现 IVolumeRenderSource:相机选 LOD + 视锥裁剪选视野块 →
BrickPager(LRU,内存恒定)→ 每块 ≤64³ vtkImageData(带世界坐标)。renderC 用
vtkMultiBlockVolumeMapper 渲染工作集,绕开 GL_MAX_3D_TEXTURE_SIZE(16384)单轴墙。

实测(单线 store nx=44476>16384,renderB INVALID):
- 分块核外真渲出(非空像素,无纹理维度错),对照 renderB 整卷上传失败。
- 内存恒定:budget=64 驻留 64 块 / 220MB,与体总量无关。
- 静态工作集 9.5 fps;动态换页 1.45 fps(qUncompress 解压+每帧重建 mapper 177ms/帧,
  撞墙);fps 随块数近似反比劣化(256 块 0.47 fps)。结论与缓解见 poc-results-C.md。

含单元测试(纹理安全/budget 恒定/块世界坐标)。
2026-06-23 15:07:09 +08:00
gaozheng 03805f4326 feat(poc): POC-B 离屏 GPU 渲染基准(offscreen-smoke 闸门 + renderB 体绘制/切片 fps)
- gpr_poc 新增 offscreen-smoke: 离屏 vtkRenderWindow + cube + 读回像素, 闸门验证离屏 GL 可用
- gpr_poc 新增 renderB: 整卷 VTK_SHORT 体绘制(旋相机) + 切片扫描(reslice 沿 Z) fps 实测
- 关键发现: line 001 cellXY=0.05 整卷 44476x29x162, X 维超 GL_MAX_3D_TEXTURE_SIZE(16384),
  vtkVolumeTexture 上传失败, 体绘制 fps 如实标 INVALID(绝不上报假帧率); 切片 54.6fps 真实流畅
- 用 CapturingOutputWindow 捕获纹理维度错误 + 维度超限双判据, 避免误把空纹理假帧率当性能
- CMakeLists 补 RenderingVolume/RenderingVolumeOpenGL2/ImagingCore/InteractionStyle 组件
2026-06-23 13:52:51 +08:00
gaozheng bfd7d4aafd feat(poc): gpr_poc headless 度量 CLI(地基端到端串联)
串起 assembleGprSurvey→buildGprVolume→ChunkedVolumeStore::write→
buildPyramid→WholeVolumeSource,提供 build/load/selftest 三子命令,
输出建体耗时/维度/体积/压缩比/加载/峰值内存指标(Psapi 峰值工作集)。

selftest 合成数据端到端 PASS。真实明星路数据 BLOCKED:前置 readIprb
的 traces=lastTrace+1 严格校验与真实文件「道数=lastTrace」系统性不符,
装配阶段即抛异常,未擅自改前置/其单测,如实记录于 poc-results-B.md。
2026-06-23 12:27:10 +08:00
gaozheng acbc6d5b46 spike: 准备 S1 冒烟构建 + voxel 离线验证
- tools/validate_voxel.py: 两交叉剖面 IDW+maxDist 成体素, 切片可视化; 实证 105k 体素仅 15.9% 有约束(可信体需≥3线/3D网格)
- CMakeLists: VTK find_package 指定 COMPONENTS(VTK9 必需, 否则 VTK_LIBRARIES 空)
- vcpkg.json: 依赖按层递增, 当前仅 gtest(免 S1 被 GDAL/PROJ 拖慢)
2026-06-07 19:17:11 +08:00
gaozheng fe7737b175 chore: 登录机制核实 + 样本离线渲染验证
- 登录: JSEncrypt RSA-2048, login2(/admin/tenant/auth), token=data.accessToken
- tools/validate_samples.py: 复现 #17 散点/#18 网格等值面, 验证解析+色阶+异常逻辑
- 量化两剖面几何(夹角77.7度,十字支撑), 佐证可信体数据依赖(需>=3线/3D网格)
- spec §8 更新登录细节; _validate 产物已忽略
2026-06-07 17:35:38 +08:00