geopro/src/render
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
..
actors feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
ground feat(vtk): 底图瓦片坐标数学 TileMath(EPSG:3857 经纬↔z/x/y+瓦片边界)+单测(P5基石) 2026-06-16 21:29:59 +08:00
interact feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
lod fix(lod): selectLod 最粗层兜底裁剪,保证返回区间恒不超 maxTextureDim 2026-06-24 09:09:01 +08:00
source feat(vtk): 常驻粗底图+局部高清叠加(永不空白) 2026-06-24 12:03:10 +08:00
CMakeLists.txt feat(render): C3-1 AsyncRegionBuilder 后台异步重组 + 双缓冲交接 2026-06-24 09:56:55 +08:00
CameraPreset.cpp feat(3d-view): 二维分析A期(一场景两相机)+视图切换/底图/增量修复 2026-06-26 20:53:53 +08:00
CameraPreset.hpp feat(3d-view): 二维分析A期(一场景两相机)+视图切换/底图/增量修复 2026-06-26 20:53:53 +08:00
ColorLutBuilder.cpp feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
ColorLutBuilder.hpp feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
ContourBands.cpp fix(review): 修 cpp-review HIGH/MEDIUM —散点ys越界/colorSvc析构泄漏/QwtPlot autoDelete注释/控制器catch(...)防busy死锁 + 清死代码simplifyInPlace/simplifyTol + 填充等比限幅 + DTO行数校验+枚举钳制 + ContourLine.level默认NaN 2026-06-11 18:59:19 +08:00
ContourBands.hpp fix(review): 修 cpp-review HIGH/MEDIUM —散点ys越界/colorSvc析构泄漏/QwtPlot autoDelete注释/控制器catch(...)防busy死锁 + 清死代码simplifyInPlace/simplifyTol + 填充等比限幅 + DTO行数校验+枚举钳制 + ContourLine.level默认NaN 2026-06-11 18:59:19 +08:00
README.md feat(vtk): P3 三维分析切片交互(核心) — 轴向/任意切片+滚轮+拾取+正视 2026-06-16 08:23:16 +08:00
Scene.cpp feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp 2026-06-15 21:01:26 +08:00
Scene.hpp feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp 2026-06-15 21:01:26 +08:00
VoxelFromScatters.cpp fix(render): 切片与体素纵向一致 — 把纵向夸张烤进体素 image(切片穿过体素而非在旁) 2026-06-08 11:46:39 +08:00
VoxelFromScatters.hpp fix(render): 切片与体素纵向一致 — 把纵向夸张烤进体素 image(切片穿过体素而非在旁) 2026-06-08 11:46:39 +08:00

README.md

render — VTK 渲染层

独占 vtkRenderWindow,统一创建/持有所有 actorview 不持有 actor。单一场景 + 相机预设(设计 §4

子目录:

  • Scene — 场景图、项目世界坐标空间、可见性;持有 RenderWindow
  • actors/ — ScatterActor, GridContourActor, VoxelVolumeActor, AnomalyActor, TerrainActor
  • color/ — ColorLutBuildercolorBar → 离散 vtkLookupTable, ScalarBar
  • camera/ — CameraPresetTop2D / Free3D
  • interact/ — SlicePlaneMath纯几何可测+ SliceToolvtkImagePlaneWidget轴向 + 任意 45° reslice 着色剖面)+ PickInteractorStyle拾取/双击正视/滚轮)+ InteractionManager持切片/选中态/分发)。切片走 vtkImageReslice 路线vtkImagePlaneWidget 内部 reslice + 纹理),非 vtkCutterspec §9.1
  • ground/ — IGroundLayer + DemImageGroundLayerM1TileGroundLayerM1.5

网格管线:vtkImageData(+vtkWarpScalar) → vtkDataSetSurfaceFilter → vtkBandedPolyDataContourFilter(GenerateContourEdgesOn)(设计 §4.3)。