Relightable3DGaussian GUI交互式可视化指南:如何实时查看高斯点云、PBR材质与重光照效果
2026/8/25 10:01:29 网站建设 项目流程

Relightable3DGaussian GUI交互式可视化指南:如何实时查看高斯点云、PBR材质与重光照效果

【免费下载链接】Relightable3DGaussian[ECCV2024] Relightable 3D Gaussian: Real-time Point Cloud Relighting with BRDF Decomposition and Ray Tracing项目地址: https://gitcode.com/gh_mirrors/re/Relightable3DGaussian

Relightable3DGaussian(ECCV 2024)是一个支持实时重光照的 3D 高斯点云渲染项目,通过 BRDF 分解 + 光线追踪实现逐点 PBR 材质建模。它的GUI 交互式可视化界面(基于 DearPyGui)能让你用鼠标实时旋转、缩放高斯点云,并在 PBR 着色、法线、深度、粗糙度等多种模式间一键切换,直观检查重光照效果。下面带你从零上手这个交互式查看器。

GUI 是什么?解决什么问题?

训练高斯点云时,我们常常想知道:几何长得对不对?法线有没有飞?粗糙度/金属度合不合理?

传统做法是每隔 N 步存一张渲染图,再手动打开查看,非常低效。Relightable3DGaussian 的做法是:在训练循环里同步跑一个实时渲染窗口,模型每变化一点,窗口里的画面就更新一次(每帧还有 GPU 计时器,直接显示推理耗时和 FPS)。它由项目根目录的 gui.py 实现,并在训练入口 train.py 中通过--gui参数被调用。

两种启动方式:训练时监看 vs 训练后回看

方式一:训练时加--gui实时监看

在你原有的训练命令末尾加上--gui,训练窗口会随训练进程一起启动:

# 3D Gaussian 模式 python train.py -s <数据路径> -m <输出路径>/3dgs --gui # Relightable 3D Gaussian(neilf)模式 python train.py -s <数据路径> -m <输出路径>/neilf -t neilf --gui

训练循环里每执行一次windows.render(),GUI 就刷新一次画面,你可以亲眼看着点云从一团散点逐渐"长"出清晰的 PBR 材质。

方式二:训练完成后用gui.py独立查看

训练结束后,直接加载模型权重(自动寻找最新的chkpnt*.pth检查点,并同时加载环境光和 gamma 变换检查点):

# 普通 3D Gaussian python gui.py -m output/NeRF_Syn/lego/3dgs -t render # Relightable 3D Gaussian(重光照模式) python gui.py -m output/NeRF_Syn/lego/neilf -t neilf

常用参数速查:

参数说明
-m模型输出目录(含 point_cloud / 检查点)
-t渲染类型:renderneilf
--checkpoint指定某个chkpnt*.pth,默认自动取最新
--scale分辨率缩放倍率,显存不足时可调大降采样
--hdr2ldr把 HDR 渲染结果映射到 [0,1] 再显示

鼠标 + 控制面板:交互式操作速成 🖱️

GUI 采用经典的OrbitCamera(轨道相机)交互方案,鼠标操作非常直觉:

操作效果
鼠标左键拖拽绕场景中心旋转视角
鼠标右键拖拽在相机平面内平移
鼠标滚轮缩放(拉近/推远)

窗口右侧是Control 控制面板,主要有三个控件:

  1. mode(显示模式):下拉切换要可视化的中间量(下一节详述);
  2. Downsample(降采样倍数,1~8):渲染分辨率实时缩放,显存/显卡吃紧时立刻能提升帧率;
  3. FoV(垂直视场角):实时调节相机视野。

面板顶部还常驻一行Infer time,显示当前帧 GPU 渲染耗时与 FPS,方便你判断实时性是否达标;Debug 折叠区则实时打印当前相机位姿矩阵。

多模式可视化:PBR 材质与重光照中间量一览

-t neilf(重光照模式)下,渲染函数 gaussian_renderer/neilf.py 会输出一整套中间量,GUI 的 mode 下拉框里每一个选项对应其中一项,这也是"看懂重光照效果"的关键:

模式看什么
pbr最终 PBR 重光照结果(默认)
render渲染图像
normal/pseudo_normal高斯表面法线(叠加透明度)
depth深度图
opacity不透明度
base_colorBRDF 分解出的反照率(底色)
metallic/roughness金属度 / 粗糙度
lights/local_lights/global_lights总光强及局部、全局光分解
visibility光线追踪得到的可见性(环境遮蔽)
diffuse_light漫反射光照
num_contrib每像素参与积分的高斯数量

💡实用技巧:排查重光照异常时,先切到roughnessmetallic看材质是否合理,再看visibility检查遮挡区域,最后回到pbr对比最终效果——这套流程能帮你快速定位是材质问题还是光照问题。

-t render(普通 3D Gaussian)模式则提供render / normal / depth / opacity / num_contrib等基础模式。

重光照效果是怎么算出来的?

GUI 里看到的pbr结果并不是简单的贴图颜色,而是完整的 PBR 渲染方程求值:

PBR 结果 = BRDF(由 base_color / metallic / roughness 分解)× 光照(环境光场 + 点式光线追踪的可见性)

具体来看,训练时会同时保存两类检查点,GUI 启动时会自动加载:

  • env_light_chkpnt*.pth:环境光照(球谐表示的环境光场),对应 scene/derect_light_sh.py 中的 DirectLightEnv;
  • gamma_chkpnt*.pth:可学习的 HDR→LDR gamma 变换(scene/gamma_trans.py),保证高动态范围结果显示出来不炸白。

因此当你切换环境贴图(如项目自带的env_map/下的 hdr/jpg 全景图)重跑 relighting.py 后,再用 GUI 打开新结果,就能直观看到"同一场景、不同光照"的差异——这正是实时重光照的核心卖点。

性能与常见问题 ⚡

  • 帧率太低?先把 Downsample 拉到 4~8,或用--scale 2降低渲染分辨率;
  • 找不到环境光/gamma 检查点?GUI 会打印警告并跳过对应模块,只影响pbr结果精度,不影响几何类模式查看;
  • 窗口不出现?GUI 依赖dearpygui==1.10.1(见 environment.yml),请确认 conda 环境r3dg中已正确安装;
  • 显存不足?官方在 RTX 3090(24G)上运行,显存较小的卡建议配合降采样参数使用。

小结

需求操作
训练时实时监看训练命令加--gui
训练后查看模型python gui.py -m <模型目录> -t neilf
切换 PBR/法线/深度等Control 面板的 mode 下拉框
掉帧急救调大 Downsample /--scale
HDR 过曝--hdr2ldr

核心代码都集中在 gui.py(OrbitCamera 交互 + DearPyGui 面板)、gaussian_renderer/(各渲染模式实现),配合上文的模式速查表,你可以快速把 Relightable3DGaussian 变成一个"所见即所得"的重光照调试工具。

【免费下载链接】Relightable3DGaussian[ECCV2024] Relightable 3D Gaussian: Real-time Point Cloud Relighting with BRDF Decomposition and Ray Tracing项目地址: https://gitcode.com/gh_mirrors/re/Relightable3DGaussian

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询