Relightable3DGaussian:实时3D高斯重光照技术完全解析——从原理到实战的终极指南
Relightable3DGaussian实时3D高斯重光照技术完全解析——从原理到实战的终极指南【免费下载链接】Relightable3DGaussian[ECCV2024] Relightable 3D Gaussian: Real-time Point Cloud Relighting with BRDF Decomposition and Ray Tracing项目地址: https://gitcode.com/gh_mirrors/re/Relightable3DGaussianRelightable3DGaussian可重光照 3D 高斯是南京大学与复旦大学联合推出的开源项目基于3D 高斯泼溅3D Gaussian Splatting BRDF 材质分解 光线追踪实现实时 3D 点云重光照。传统 3DGS 训练出的模型光打不上去——换个环境光就穿帮而本项目能把场景分解为反照率、粗糙度、金属度等物理材质再结合 HDR 环境光实时重新打光还能把多个物体自由合成到同一场景中渲染是数字人、虚拟展示、游戏资产管线中的重要工具。为什么需要 3D 高斯重光照普通 3D Gaussian Splatting 渲染出的颜色是烘焙了当时光照的换不了环境光。Relightable3DGaussian 的解决思路可以概括为三步模块作用对应代码位置BRDF 材质分解把每个高斯点的颜色分解为基础色base color、粗糙度roughness、金属度metallicscene/gaussian_model.py、r3dg-rasterization/render_equation.cuBVH 光线追踪用 BVH 加速结构对入射方向做采样光线追踪计算自遮蔽/环境光遮蔽visibilitybvh/bvh.cu、bvh/trace.cuPBR 渲染方程结合 HDR 环境光与材质实时合成重光照图像gaussian_renderer/neilf.py、r3dg-rasterization/rasterize_points.cu训练阶段还会引入 MVS 深度图/法线作为几何正则让点云几何更干净材质分解更稳定——这部分由 vismvsnet/ 子模块完成。一键环境搭建安装步骤 官方推荐CUDA 11.8编译扩展单张 RTX 309024G即可复现论文结果。# 1. 克隆仓库 git clone https://gitcode.com/gh_mirrors/re/Relightable3DGaussian cd Relightable3DGaussian # 2. 创建 conda 环境Python 3.7 conda env create --file environment.yml conda activate r3dg conda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cudatoolkit11.6 -c pytorch -c conda-forge pip install torch_scatter2.1.1 kornia0.6.12 # 3. 编译三个 PyTorch 扩展顺序执行 pip install ./submodules/simple-knn pip install ./bvh pip install ./r3dg-rasterization⚠️ 若扩展编译报错优先检查 CUDA 版本是否为 11.8这是 3DGS 系项目最常见的坑。两阶段训练从 3D 高斯到可重光照模型训练分两步走先跑普通 3DGS再在其基础上精调出 PBR 材质。以 NeRF 合成数据集为例直接执行 script/run_nerf.sh 即可核心逻辑是# 阶段一标准 3DGS 训练含深度/法线几何正则 python train.py --eval -s datasets/nerf_synthetic/lego -m output/NeRF_Syn/lego/3dgs \ --lambda_normal_render_depth 0.01 --lambda_mask_entropy 0.1 --densification_interval 500 # 阶段二加载 3DGS 权重精调 BRDF 材质 可见性 python train.py --eval -s datasets/nerf_synthetic/lego -m output/NeRF_Syn/lego/neilf \ -c output/NeRF_Syn/lego/3dgs/chkpnt30000.pth -t neilf \ --use_global_shs --finetune_visibility --iterations 40000 \ --lambda_light 0.01 --lambda_visibility 0.1关键参数速查-t neilf启用 PBR 渲染类型普通渲染用render--finetune_visibility用光线追踪精调遮蔽项--use_global_shs用全局 SH 入射光做正则避免材质分解歧义--save_training_vis周期性保存训练可视化图方便观察收敛数据支持三套NeRF Synthetic合成、DTU 与 Tanks and Temples真实场景预处理版数据集目录结构与下载方式见 readme.md 的 Data preparation 章节。重光照实战多物体合成 HDR 环境光这是项目最惊艳的部分。训练得到的点云是显式点云天然支持自由变换缩放/平移/旋转后合成新场景。合成与相机轨迹由配置文件驱动例如 configs/teaser/transform.json 里为 chair、lego、hotdog 等每个物体指定了 PLY 路径和 4x4 变换矩阵。# 复现官方 teaser多物体合成 重光照输出 9 种 capture 图 python relighting.py \ -co configs/teaser \ -e env_map/teaser.hdr \ --output output/relighting/teaser_trace \ --sample 384 # 换一张环境光一键换天气/换场景 python relighting.py \ -co configs/tnt \ -e env_map/ocean_from_horn.jpg \ --output output/relighting/tnt \ --sample_num 384 --video上面这张ocean_from_horn.jpg就是仓库自带的海岸全景环境光换一张 HDR/JPG 全景图就能让同一个场景呈现完全不同的光照氛围。常用参数参数含义-co/--config场景与相机轨迹配置目录含 transform.json、trajectory.json-e/--envmap_pathHDR 环境光路径如 env_map/ 下的 teaser.hdr、composition.hdr--sample/--sample_num每个点采样入射光线数越高越细腻越慢--bake烘焙可见性并精调--video同时输出各通道的 mp4 视频--capture_list指定输出哪些层base_color、metallic、roughness、normal、pbr、visibility 等GUI 可视化实时监控训练过程项目内置交互式 GUI基于 dearpygui训练时加--gui即可实时拖动视角观察训练完成后也能单独查看模型# 查看普通 3DGS 模型 python gui.py -m output/NeRF_Syn/lego/3dgs -t render # 查看可重光照模型PBR 模式 python gui.py -m output/NeRF_Syn/lego/neilf -t neilf入口代码在 gui.py支持实时切换渲染模式、HDR→LDR 显示非常适合新手直观理解材质分解到底分解出了什么。用自己的数据跑一遍真实场景流程详见 readme.md 的 Try on your own dataCOLMAP重建位姿vismvsnet/convert.py转换为 MVSNet 格式vismvsnet/colmap2mvsnet.py跑 Vis-MVSNet 获取多视深度vismvsnet/test.py深度过滤 法线估计vismvsnet/filter.py、vismvsnet/prepare_neilf.py执行上文两阶段训练命令常见问题与性能建议显存不够调低分辨率或减少--sample_numRTX 3090 为官方基准配置。材质分解出现灰雾多半是几何正则缺失确认训练时带了深度/法线数据与--finetune_visibility。合成物体穿模/错位检查 configs/ 中 transform.json 的变换矩阵或用 Cloud Compare 等工具先做点云对齐。环境光偏暗/过曝HDR 图.hdr保留高光细节更佳可参考 scene/envmap.py 中的 EnvLight 缩放参数scale。总结Relightable3DGaussian 把3D 高斯泼溅从看什么就是什么推进到随光而变BRDF 分解赋予材质物理属性光线追踪算出遮蔽HDR 环境光随心切换合成与重光照实时完成。按本文安装 → 两阶段训练 → 合成重光照 → GUI 查看的路径走一遍你即可拥有完整的实时重光照工作流 延伸阅读readme.md官方说明与全部命令、script/各数据集一键脚本、vismvsnet/几何增强子模块【免费下载链接】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),仅供参考