gaozheng
7d9f34d3ec
docs(vtk): plan 重构对齐类型抽象(描述符目录+渲染策略注册表)
...
Phase A 改为 A1 描述符目录 categoryCatalog(classify谓词+扩展契约) +
A2 渲染策略接口/字符串键注册表/3骨架策略;勾选经描述符路由策略统一入口(无维度散判);
段头图标由 operations(OpKind)/filters(FilterKind) 驱动;平面z(PlaneZRegistry)与
N个平面底图收进 Plane2DRenderStrategy;加新不删旧过渡(Phase F 删旧分类件)。
2026-06-30 20:50:35 +08:00
gaozheng
3b90b7de6a
docs(vtk): spec 加类型抽象层(描述符+渲染策略注册表+扩展契约)
...
§5 重写为 CategoryDescriptor/categoryCatalog + FilterKind/OpKind/SceneKind +
IDatasetRenderStrategy 字符串键注册表;classify 用谓词+byDdCode/byDsTypeCode 便捷器;
消费方(段/列/控制器)只认抽象不再散判;接入新类型=加描述符(必要时补策略/操作/筛选器);
§3/§6/§7/§8/§9/§11/§12 同步改为描述符+策略驱动并加可扩展性验收。
2026-06-30 20:35:08 +08:00
gaozheng
dba1b32a43
docs(vtk): 合并数据集单栏重构 实现计划(6阶段13任务)
...
A 段配置加维度+trajectory分流;B 单列骨架(动态显隐+空占位+去tab);
C 响应式图标条+筛选折叠;D 导入雷达移设备菜单+3D底图移渲染工具栏;
E 单一自由场景+2D按类型平面z;F 2D平面底图(TileBasemap多实例)。
纯逻辑TDD(段分流/图标溢出/平面z生命周期),UI走build.bat+手动验收。
2026-06-30 20:20:35 +08:00
gaozheng
ac50aaa51e
docs(vtk): 修订重构 spec(平面生命周期/废弃逐ds拖z/…溢出/底图选型)
...
§8.2 平面生命周期:首勾建平面定z(之后固定),全消则平面+底图一并销毁;
§11 逐ds独立拖Z(nudgeSelectedMapLinesZ/mapLineZOffset_)废弃移除;
§6 图标「…」溢出:宽度挤压分支必须工作可验证;
§9.2 选型定为参数化 TileBasemap 多实例(groundZ/opacity/Street纯平),1个3D+N个2D。
2026-06-30 20:13:38 +08:00
gaozheng
bc79530456
docs(vtk): 合并数据集单栏重构 spec(动态段+图标工具条+2D平面底图)
...
单列无标题数据集栏:2D/3D 同列分段、按数据动态显隐、段操作改响应式
图标工具条、2D 按类型一块平面 + N 个平面底图、3D 底图移渲染区工具栏、
导入雷达移顶部设备菜单、废弃 view2DMode/锁定俯视相机,单一自由场景共存。
2026-06-30 20:07:52 +08:00
gaozheng
571a72701d
feat(radar): 三维交互精修 + 增益切换 + 视角导航(B#1/#2) + 全链路方案 spec
...
交互精修(雷达+反演通用):
- 切片拾取精确化: 光标射线 vs 切片真实矩形求交 + 可见数据(alpha)双判定, 去外扩
- 取消选中: 点体/空白/帘面即取消(精确命中判据) + Esc 兜底; 选中后上下拖动方向修正
- 滚轮步长: 按沿法向体素间距 x N(Shift 粗调), 不随体长跳变
- 双击正视: 缩放到切片(面内尺寸+视角框住), 不再又小又远
- 不透明度: 各向异性体用特征尺度(门控; 近立方反演维持原对角线)
视角导航(B 方案):
- #1 绕拾取点旋转: 无选中时绕光标射线穿体中段点(按下捕获/拖动固定), 不甩飞
- #2 沿线位置滑块: 雷达专属, 沿最长轴 dolly 到窗口(focusAlongLongAxis), 仅细长体显示
雷达显示增益: 右键切 AGC/保幅 tpow/关, 纯显示重建不动原始数据
spec: 落地 导入->处理->渲染 全链路方案(结合 POC 评估), 定预渲染可选->混合渲染源(IVolumeRenderSource)决策
2026-06-30 18:58:42 +08:00
gaozheng
e48b679255
docs(radar): 计划 Global Constraints 修正构建命令(build.bat, cmake不在PATH)
2026-06-29 13:37:43 +08:00
gaozheng
18b78a85d3
docs(radar): DS优先(dd_radar_3d)设计修订 + 实现计划(过3轮架构评审)
...
- spec 改 DS 优先:导入→登记 dd_radar_3d DS(非游离 dd_voxel vol-N)→按 DS 渲染。
ddCode 对齐数据字典 DD0623(dd_radar_3d 体/dd_trajectory_data 轨迹/dd_voxel 仅反演)。
关键发现:运行期体渲染只认 volumes_ 成员、不看 ddCode → 接入面极小。
- 实现计划 9 task(TDD):reader→共享 assembleRadarVolume(消DRY)→bridge→
createRadarVolumeGrid→registerRadarDataset+loadVolume 懒加载后台建体→导入入口+
dd_radar_3d 切片/色阶/详情 gate→双数据集互证。
- 3 轮 opus 架构评审已落修:HIGH-1 填体抽共享helper、HIGH-2 明星路in-app属首次、
CRITICAL CategorySection切片gate、HIGH eager建体冻UI/MEDIUM spinner→改懒加载后台线程。
2026-06-29 11:53:33 +08:00
gaozheng
4da11f6185
feat(radar): 三维雷达接入设计 + Mala 转换器原型(已过架构评审)
...
- tools/radar_convert: RADAR_TYPE_MALAMIRA 转换插件原型(info/convert/probe)
.rad→.head / .rd3→.data(原样) / .pos→.cor;probe 用真实数据确诊数据体
主序 = position-major reshape(K,M,N),X=道/Y=通道/Z=采样,无需轴置换
- docs/spec: 2026-06-29 三维雷达体渲染+切片+异常接入设计
核心论点=只换最内层 reader、下游渲染/切片/异常链复用;含已验证数据事实、
内存实算、插件化转换层、双数据集测试策略;已过 opus 架构评审(PASS-WITH-CONCERNS,
HIGH-1 填体逻辑须抽共享helper / HIGH-2 明星路 in-app 渲染属首次非已验证 已并入)
- samples/radar/malamira_南同大道: 6 线 .head/.cor 入库(大 .data gitignore,附重生成命令)
- 记录客户文档 §3.3 BITS 公式 bug(漏 SAMPLES 维),须同步后端
2026-06-29 10:03:48 +08:00
gaozheng
e6fb087a7f
docs(detail-view): 新增数据集详情视图架构与扩展指南
...
给同事无缝接手"新增一种 ds 类型详情页"的交接文档:端到端数据流、5 个核心
抽象(ViewKind/TabSpec/策略+注册表/IDetailView/payload+DetailLoad)、现有 5 种
类型对照表、分层职责(带 file:line)、扩展配方(5A 复用视图/5B 全新视图 + 代码
骨架)、关键约定与坑、触碰文件速查表、自测建议。基于精读全链路 + Explore 代理
交叉验证。
2026-06-28 22:34:54 +08:00
gaozheng
eef8188bcb
feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做
...
- 跨视图色阶单一真源 DatasetViewState:2D详情/3D帘面体共用按dsId的色阶,编辑→真源
→各视图实时联动且无信号回环;散点(type1) load-then-save 回写,避免覆盖网格的
lineConfig/层级方案(共享同一条 businessCode="" 后端记录)。
- 色阶两级透明度:ColorScale.globalOpacity 独立存储不烘焙、渲染时与每色 alpha 相乘;
对话框回显真实值、单色独立;properties 补全 lvlSchemeType/logLinesCount/
equalAreaLayerCount,避免整条覆盖写清空;"整体透明度"改名"不透明度"、显示 0~100。
- 切片白化:SetWindowLevel 钉死 [vmin,vmax] + LUT 0号白化槽,哨兵真透明
(tests/spike/slice_alpha_probe.cpp 真 widget 离屏实测);同时纠正切片颜色映射。
- 切片不透明度:与三维体解耦的独立模型(100%/三维体+50%/跟随),默认100%;保存切片建
自己的色阶对象(颜色快照+不透明度),已保存切片走列表右键"色阶"编辑自身。
- 三维体白化:二值 mask 真白化(NoData 排除出插值,符合 ESRI/GDAL/Surfer 标准);改体
色阶改为原地更新传函(不重建image),未保存切片不再被刷掉且跟随改色;GPU 探测+CPU
回退;体不透明度归一为色阶"不透明度"单一控制(去 kMaxOpacity、移除工具条"透"滑块)。
- 持久化:网格视图补 saveColorGradation;DatasetChartDto.parseColorBar 回读 opacity。
详见 docs/superpowers/specs/2026-06-27-inversion-3d-volume-surfer-method-and-gaps.md §7。
2026-06-28 22:14:46 +08:00
gaozheng
cf1c06cde8
feat(gpr): 三维体 LOD 多线渲染 + 全局切片(深度/横切/顺路) + 诊断
...
渲染架构改 LOD 中心:各线独立 mapper + 视野自适应 LOD,弃 multi-volume 单遍。
实测确诊多线卡顿真因是"没用 LOD、渲整卷大贴图"(passcost 排除固定开销;
overlapStat 实测重叠 ~9× 非 20×;ESS 实测仅 ~2× 不解决重叠),非渲染器问题。
切片(view-all --slice [updown|leftright|frontback]):
- 深度 C-scan:逐线整张水平片(深度共面→拼成完整 C-scan,全覆盖、原生分辨率)
- 横切/顺路:全局世界面 reslice 各线到同一面 + blend(竖直面几何上每线只切细断面)
- ↑↓ 整片扫过 / [ ] 体透明度 / v 体显隐 / --sliceAt 跳位
其他:通道插值(2.5cm,从.ord读)接入 gpr_poc;--bgSuppress 压背景突出反射;
slice 命令复用桌面端 SliceTool 切单线。
诊断命令:ess-stat(空块潜力)/--overlapStat(重叠层数)/passcost(N遍vs重叠隔离)。
分析文档:性能确诊(否定 ESS/OSPRay,LOD 为通用解)。
2026-06-26 23:25:51 +08:00
gaozheng
5bf3a8e5dd
docs(backlog): 登记 OPT-003 二维分析C期 dd_raster(阻塞·待后端栅格端点)
...
A/B 期已实现(6a10975/bdebe54);C 期=dd_raster 栅格地理配准渲染,阻塞在后端无
栅格数据端点(实测 business_OpenAPI.json 无 dd_raster/栅格影像端点)。须后端提供
返回「像素+四至/仿射+投影」的端点后方可落地。
2026-06-26 22:01:11 +08:00
gaozheng
bdebe54859
feat(3d-view): 二维分析B期(足迹高程Z拖动)+选择联动/滚轮升降/工具条禁用
...
- B期:二维分析里选中足迹(单击/Ctrl 多选)→ 竖向拖动只改世界 Z(锁 XY)、
顶部实时高程读数浮层;Z 偏移按 dsId 持久(切走再回/全量重建保留)。
VtkSceneView 加 pickMapLineAt/nudgeSelectedMapLinesZ/selectedMapLineZ(vtkCellPicker
+PickFromList 只拾可见足迹、选中黄高亮加粗、mapLineZOffset_ 持久);PickInteractorStyle
lock2D 下命中足迹→Z 拖动(onPick2D/onDrag2D/onDrag2DEnd + worldPerPixelZ 像素→世界Z);
InteractionManager::pickStyle() 暴露样式;main.cpp 接回调 + 读数浮层。
- 列表↔VTK 双向选择联动:Column2DDataset 多选行 + selectedDatasetsChanged/setSelectedDsIds;
VtkSceneView onMapLineSelectionChanged/setSelectedMapLines;两向各自断环。
- 滚轮升降:onWheel2D——有选中足迹时滚轮改其 Z(一格≈拖动24px)、消费滚轮,否则缩放;
读数浮层滚轮后 1.2s 自动隐藏。
- 工具条:二维分析激活禁用 6 向快捷视图(会改朝向破坏近俯视锁定),切回三维恢复。
2026-06-26 21:56:45 +08:00
gaozheng
6a10975b6b
feat(3d-view): 二维分析A期(一场景两相机)+视图切换/底图/增量修复
...
- 切「二维分析」tab:锁近俯视(下压12°≈78°)、禁旋转(左键平移=仅平移+缩放)、
按维度翻 actor 可见(轨迹↔体/帘面/异常,不清空)、切片 SetEnabled 显隐、坐标轴在二维移除;
地形+底图常驻。ColumnDrawer 新增 analysisModeChanged 信号串起三处协作。
- 修复切回三维数据不取景:按目标维度重置取景基线(VtkSceneController::onAnalysisModeChanged),
computeDataBounds 只计可见 prop,render 朝向认 analysisMode2D_。
- 修复底图在远离锚点的数据处为空(如台湾,frame 锚深圳):底图取瓦片中心+距离剔除
改用相机焦点(cenX_/cenY_)而非坐标系原点。
- 修复删到空不重锚致底图错位:removeDataset 清空 dsProps_ 时复位 frameAnchoredToData_。
- 修复二维分析列表非增量:对象树勾选刷新保留已勾选足迹(对齐 CategorySection::rebuildList),
不再清空渲染/丢失列表选中。
- 新增控制器回归测试 2 项(切模式取景基线)。
2026-06-26 20:53:53 +08:00
gaozheng
4e998374e7
docs(handoff): 2026-06-26 创建异常打磨+切片异常交互+二维分析改造交接
2026-06-26 18:09:35 +08:00
gaozheng
227ee8fdef
docs(spec): 二维分析锁定俯视相机+内容显隐+高程拖动 spec
...
一个场景两相机:二维分析=同一 3D 地形场景的锁定近俯视(禁旋转,仅平移缩放);切 tab 翻另一方数据集
可见标志(不清空,性能零代价);2D 内容选中后沿 Z 高程拖动分离(锁 XY,实时读数);dd_raster 过滤+地理
配准贴地形(C期,依赖端点)。含与雷达反馈的边界、维度口径(对齐 DD0623)、分期 A/B/C、风险、验收。
2026-06-26 18:04:53 +08:00
gaozheng
cdd7613d53
docs(api): vtk-3d-openapi 对齐实测实现(0.6.1)
...
按客户端实测口径修正文档偏差:
- DsPage: 行在 data.list(非 data.value)+total;补注与 structNode/exception 用 data.value 的差异
- DsRow: 从5字段扩为实测解析全字段——name(=类型名,JSON键是name非typeName)/dsTypeCode/createTime/
sourceShowParentId(+parentId回退)/structParentId/structParentConfType/properties(泛型JSON,数组或对象)/
file;ddCode 是通用 dd 码(非仅 voxel/slice),data/page 返回各类 dsObject
- data/page 描述补实测:行在list/返回各类ds/classifyType==1走file·page/**业务字段值(含装置arrayType)不在行上**
(装置属测线脚本配置)→ 类型筛选改按 typeName/dsTypeCode 范围筛
- registerSlice 描述补:客户端 mock 当前 projectId 为空,接真后端需补 nav.currentProjectId
未变(已与实现一致):VoxelGenerateRequest/SliceGenerateRequest/SliceSpec/VolumeBuildParams/DsPageRequest/
StructNode(L)/ExceptionList(均 data.value)
2026-06-25 22:20:43 +08:00
gaozheng
5c412eedfa
docs: OPT-002 全簇完成-④拾取串选已修(63cda56,体PickableOff)
2026-06-25 20:45:05 +08:00
gaozheng
51090962c3
docs: OPT-002 标记 issue2/③/反向② 已完成( 69e8790),④拾取串选留待live调试
2026-06-25 20:38:12 +08:00
gaozheng
dfba221a6e
docs: OPT-002 并入 ③切片建到错误体 + ④切片拾取串选(同源多体/拾取簇)
2026-06-25 20:04:31 +08:00
gaozheng
2bd1c36579
docs: backlog 新增 OPT-002 多三维体并发切片渲染(issue2 架构限制)
2026-06-25 19:22:46 +08:00
gaozheng
63fe99dba5
docs: 新增全局待优化清单 OPTIMIZATION-BACKLOG.md
...
后续所有「能用但不够理想、需更大改造」的优化点登记于此并随进展更新状态(区别于当场修的bug)。
首条 OPT-001=放大系数(VE)完全无重绘的即时缩放(当前保留相机重建仍有一次重绘,纯actor缩放待办)。
2026-06-25 18:15:41 +08:00
gaozheng
c94992a8d5
docs: #2/#4/异常详情完成,仅剩 #6 退役旧栏(需补 VE 迁移+setItemChecked)
2026-06-24 21:47:50 +08:00
gaozheng
7a41fb0f33
docs: 续会话第二批进度(工具条/confType/三级树/异常归属完成)+剩余4项真实状态
2026-06-24 21:16:10 +08:00
gaozheng
52830bbcb0
feat(core): Anomaly volumeDsId→remarkSourceId(挂体/切片)+resolveAnomalyMount+修正spec/plan命名(Task11 Step1)
2026-06-24 20:37:45 +08:00
gaozheng
6e3c810dcc
docs: 异常归属设计修订-取消独立异常区,异常按归属挂体/切片+三级树(spec+plan Task11+HANDOFF)
2026-06-24 20:24:24 +08:00
gaozheng
d539fc1b73
docs: Task12 阶段A(核心数据流)完成 + 剩余6项精修交接
2026-06-24 19:50:36 +08:00
gaozheng
7815bf7d4c
docs: VTK 重构实施进度交接(Task 1-10 完成,Task 11-12 接线指引)
2026-06-24 19:28:09 +08:00
gaozheng
a7d558bbfa
docs: VTK 分类视图重构会话交接文档
2026-06-24 17:19:19 +08:00
gaozheng
ef10c354c9
docs: VTK 重构实施 plan + 生成三维体入口/归属调整
...
- 新增实施计划(8 phase/12 task, TDD bite-sized)
- 客户确认变动: 新增三维体入口回段头(数据类型层面)+对话框「生成位置」选归属; 归属放开 GS/项目根/TM(structParentConfType 1或2, 默认单GS挂该GS/跨GS挂项目根)
- spec 同步该变动; openapi 升 v0.6-draft
2026-06-24 17:17:32 +08:00
gaozheng
eceb964aa1
docs: VTK 三维分类视图重构 spec + 三维体归属层级修订
...
- 新增 spec: 按数据类型大类(电阻率/视电阻率/瞬变电磁/三维体/切片)分组视图; 对象树 GS 三态双开关联动 + 项目根固定; 装置类型(arrayType)/采集时间(collectTime)筛选; VTK 画布工具条; createVolume/createSlice 组装真实请求体 DTO(走 mock)
- vtk-3d-openapi.json v0.5-draft: 三维体归属由 TM 改为 GS/项目根(structParentConfType=1)
- 经 opus 子代理评审并据评审修订(GS 三态停用 AutoTristate 改手动/properties 两接口形态澄清/帘面勾选链承接等)
2026-06-24 16:22:26 +08:00
gaozheng
cec41e3539
feat(vtk): ViewAdaptive 接异步重组(update 不阻塞,view 拖动不卡)+修 C2 维度用 store.dims
...
把 C3-1 AsyncRegionBuilder 接进 ViewAdaptiveVolumeSource:updateView 只提交目标
(selectLod→RegionTarget→requestTarget),不在主线程重组、立即返回;currentImages/
sliceSource 经 builder.takeLatest 取最新已就绪(没新结果用上一张),空选区不提交、
保留上一张。新增 AsyncRegionBuilder::takeLatest(int&) 非破坏式重载随结果回传 level,
供 lastLevel 同步。
C2 MEDIUM:RegionReorganizer 维度改用 store.dims(level)(单一真源),弃自算
ceil(n/2^level),防 store 降采样规则漂移。
gpr_poc view 切异步:拖动中 InteractionEvent 持续提交目标(非阻塞)+33ms 重复定时器
非阻塞拉取后台就绪纹理换上→主线程不被重组卡住(跟手);preview/smoke/默认取景用
阻塞轮询保证拿到首图。
测试:ViewAdaptive 9 测(原 6 调为异步轮询版+新增 3:AsyncUpdateEventuallyReady/
UpdateDoesNotBlock(<50ms)/UsesStoreDimsNotSelfComputed),AsyncRegionBuilder 5 测仍绿;
全量 382 测通过。
2026-06-24 10:22:22 +08:00
gaozheng
aa559c2bb7
docs: 后端 API 设计会话交接文档(三维体/切片/异常)
...
记录本会话设计定论、剩余工作、待确认问题与代码地图,
配套 docs/api/vtk-3d-openapi.json 与实现交接 HANDOFF-vtk-3d.md。
2026-06-24 08:55:47 +08:00
gaozheng
ba59c8861a
feat(poc): build-stream 多线合并流式建体 + Track B 总验收实测
2026-06-24 08:08:28 +08:00
gaozheng
9d3b103e32
docs(api): 三维体/切片/异常 OpenAPI 设计稿(贴合存量 dsObject 面)
...
三件套 Swagger(JSON):
- 三维体/切片 = 纯元数据 dsObject:增删改查/属性复用存量 dsObject 面,
各加 1 个登记端点;体素字节/切面数据全在客户端,后端零数据端点。
- 异常复用整套 /business/exception 端点(实体无关),异常体(consortium)
分组为存量已有;3D 仅扩展 location 几何(worldPts+plane)与截图(R88)。
- 归属结构 TM → 三维体(dd_voxel) → 切片(dd_slice),异常挂三维体。
2026-06-23 21:31:55 +08:00
gaozheng
0537e938b4
feat(vtk): 12d 打磨探针-梯度不透明度+光照,出体内部对比3图
...
新增 gpr_poc polish 子命令:同一全分辨率 level0 局部段 + 斜穿俯视视角离屏渲三图对比体内部白雾能否靠打磨解决。梯度不透明度 piecewise 按实测梯度幅值分布(median/p90/p99)标定。三图唯一变量为梯度不透明度/光照:a 基线白雾、b 加梯度不透明度、c 加梯度+光照。各报结构像素/亮度/真实fps。结论:打磨消雾并让强梯度层界面浮出,但沿线长均匀段固有偏雾,梯度不透明度无法凭空长出层。
2026-06-23 20:53:42 +08:00
gaozheng
fb175d6d3d
fix(gpr_poc): view 交互窗口统一走单纹理快路,去 MultiBlock 分块
...
交互 view 任何相机位置都只渲一张 vtkImageData + 单 vtkSmartVolumeMapper,
与 --preview 走完全同一条产单图 + 同一 mapper 的路径:
- LOD 选层:远观/中景升到最细的整卷各轴<=16384 层(L2/L3)整卷一张纹理;
拉近取 level0 视野覆盖的 X 子区域重组一张纹理。两条都用 buildLevelImage /
buildLocalLevel0Image 产单图。
- 去掉交互路径的 OutOfCoreSource/BrickPager/MultiBlock + budget 分块渲染
(renderC 等 POC 子命令仍保留)。
- LOD 随缩放真切换,只在 EndInteraction 重组一次。
- 新增 view --preview --near 拉近预览(view-near.png),与真窗口同路径。
- parseArgs 支持无值布尔旗标(--preview --near 不再误吞)。
修复:开窗+拉近无缺块(整张纹理),fps 从个位数升到几十~上百。
2026-06-23 20:15:28 +08:00
gaozheng
f4922dd6e2
feat(gpr_poc): view 交互窗口默认视觉参数采用 gallery var4
...
无 --gallery/--preview 的交互窗口此前用旧暗默认,现统一为 var4:
seismic 配色 + V 形实体不透明度包络(floor0.035/mid0.38/max0.84) +
取景(El18/Az22/Zoom2.0) + exagg8 + 略亮冷灰背景。
- 抽出 kViewDefaultVariant 引用 kGalleryVariants 末项(var4)作单一来源,
交互默认与 view-var4 走同一份参数,避免复制粘贴漂移(DRY)。
- 新增 makeVariantProperty 统一按包络建体属性,gallery 与交互默认共用。
- viewSetupDefaultFrame 取景角度改取自 var4;cmdView 配色/包络/背景/exagg
默认改为 var4;--exagg/--opacity 显式传入仍覆盖。
- 验证:view --preview 产出 view-default.png 与 view-var4 一致
(结构像素 30.18% vs 30.11%、亮度 33.9 vs 33.7、fps 77 vs 75);
view --smoke 仍 OK。
2026-06-23 19:52:35 +08:00
gaozheng
9af363080a
feat(poc): view 视觉调参画廊 4 组离屏 preview
...
view 加 --gallery / --preview --variant N:同一沿线中段局部段+同一相机框法,渲 4 组不同视觉参数(不透明度包络/配色/取景/背景)各存 PNG 供挑选。
新增 makeSeismicColorScale(红白蓝高对比)、makeJetColorScale(全程高饱和)、makeSolidVolumeProperty(V形实体感包络:近零背景压低但可见、中高值段普遍 0.3~0.85、半透明实心内部层次可读)、meanBrightness(画面均亮度度量)。
基线默认结构像素仅 0.07%(几乎全黑、缩角落);4 组拉到 17~30%,亮度显著提升,fps 76~86(≫30)。推荐 var4 作默认。
2026-06-23 19:40:52 +08:00
gaozheng
b1a8d1365d
fix(gpr_poc): view 默认取景改局部段+加 --preview+fps 显真实帧率
...
修 view 开窗空白:默认相机框整条 2.2km 线(横截面 1:34),即便 exagg=8
也是隐形细带。三处修复:
1. 默认取景改对准沿线中段一个 ~256 道(4 brick 列)的全分辨率局部体,
ResetCamera+Zoom 框满画面,首帧即见层状结构(同 lod-tuned-local.png 取景)。
2. 新增 view --preview:用与真窗口完全相同的相机/source/exagg/传函离屏渲一帧
存 view-default.png,旋 N 帧报真实 fps+结构像素数(排除深蓝灰背景)+纹理错。
3. fps 文本改为松手时连渲 3 帧累计实际 Render 耗时取均值,不再把空闲间隔算进去。
实测 preview:默认视角有结构(结构像素>0)、无纹理错、真实渲染 ~185fps。
2026-06-23 19:27:39 +08:00
gaozheng
bec6a376d5
fix(ui): 详情对话框页脚/表单改走 FormKit 符合视觉规范(去Arco式大按钮)
...
之前为"像原版"手搭 QFormLayout + Arco式页脚(45%等宽/两端对齐/多主按钮/顺序反),
违反 Geopro3.0 视觉规范 §6.7/§7.5/§7.0.10。改为规范实现(字段结构/API 不动):
- 白化/另存/滤波/网格化:页脚改 formkit::addDialogButtons(右对齐 取消+确定,主按钮蓝);
异步确认改接 Ok 按钮 clicked(校验/whitenData/save 成功才 accept);表单改 makeEditForm
+editLabel+capField+addSection;宽度按规范(白化560/另存420/滤波保留宽/网格分组)
- 滤波"保存设置"作次按钮(ActionRole)不抢 primary;网格化 上一步(次)左+取消/确定右
- 快查:ScatterFilterDialog 可编辑输入改 makeEditForm;AutoAnnotation 主操作 setDefault
- 异常各弹窗/反演表单 已合规未动
build all 绿,341/341。
2026-06-23 18:40:11 +08:00
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
6fa0a31f3e
docs(poc): 补齐 POC-B 真实数据实测指标 + Z 尺度诊断结论
...
readIprb 修复后线 001 (cellXY=0.2,cellZ=0.05,levels=2) 端到端跑通:
体维度 11120x8x162、体素 14.4M、压缩比 1.88x、build≈22.6s/峰值 4.98GB、
load 335ms/38MB。深度链路验证正确:dz≈0.009778m、nz=162(非旧 §3 误报的 1,
为 soilVelocity 换算缺失时代的遗留),CLI specFromSurvey 无需修改。
2026-06-23 12:37:53 +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
9874af77ee
docs(detail): 台账标记收尾 6 项已接通 + build.bat all 验证教训
2026-06-23 10:34:47 +08:00
gaozheng
b509795ffd
docs(gpr): 三维体三方案 spec(A/B/C) + POC 实现计划
...
B/C 对等双方案(用户运行时按需切换),A 并入 B;含 opus 评审修订
(VTKHDF Writer 写不了规则体→裸分块落盘、量化贯穿、最小真实核外分页器)。
2026-06-23 09:38:28 +08:00