# MaterialRefGS **Repository Path**: yejun668/MaterialRefGS ## Basic Information - **Project Name**: MaterialRefGS - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-24 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

MaterialRefGS: Reflective Gaussian Splatting with Multi-view Consistent Material Inference

Wenyuan Zhang · Jiming Tang · Weiqi Zhang · Yu-Shen Liu† · Zhizhong Han

NeurIPS 2025

Paper | Project Page

## Video https://github.com/user-attachments/assets/029fea48-06f3-4088-bdd2-538f5cc1e153 ## Pipeline

# Setup ## Installation Clone the repository and create an anaconda environment using ```shell git clone https://github.com/wen-yuan-zhang/MaterialRefGS cd MaterialRefGS conda create -n MaterialRefGS python=3.10 conda activate MaterialRefGS conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia pip install -r requirements.txt ## install other extensions pip install submodules/cubemapencoder pip install submodules/diff-surfel-rasterization pip install submodules/diff-surfel-rasterization2 pip install submodules/raytracing_brdf pip install submodules/simple-knn ``` ## Dataset & preparation We use [Metric3D v2](https://github.com/YvanYin/Metric3D) for monocular normal validation. In reflective regions, the monocular normal prior helps the Gaussian training process converge faster and constrains the geometry optimization. The `metric3d_path` in `run_*.sh` should be updated to the actual path of the normal prior. You can also modify the `load_normal_prior` function in `train_*.py` to replace it with other normal-prior methods. For datasets, we mainly test our method on [Shiny Blender Synthetic](https://storage.googleapis.com/gresearch/refraw360/ref.zip), [Shiny Blender Real](https://storage.googleapis.com/gresearch/refraw360/ref_real.zip) and [Glossy Synthetic](https://liuyuan-pal.github.io/NeRO/). Please run the script `nero2blender.py` to convert the format of the Glossy Synthetic dataset. # Training To train refreal dataset, simply run ```shell chmod +x run_refreal.sh bash ./run_refreal.sh ``` The other datasets can follow a similar manner to the above. The scene name, experiment name, code/data path are specified in the script. You can adjust them as your own configurations. # Evaluation for Shiny Blender Synthetic dataset and Glossy Synthetic, simple run ``` python eval.py --white_background --save_images --model_path output_{DATASET}/NAME_OF_THE_SCENE ``` this command will render material maps and calculate the psnr/ssim/lpips metrics. the Shiny Blender Real dataset do not use `--white_background` option. # Acknowledgements This project is built upon - [Ref-gaussian](https://github.com/fudan-zvg/ref-gaussian) - [Nero](https://github.com/liuyuan-pal/NeRO) - [Metric3D v2](https://jugghm.github.io/Metric3Dv2/) - [3DGS-DR](https://github.com/gapszju/3DGS-DR) - [EnvGS](https://github.com/zju3dv/EnvGS). We thank all the authors for their great repos. # Citation If you find our code or paper useful, please consider citing ```bibtex @inproceedings{zhangmaterialrefgs, title={MaterialRefGS: Reflective Gaussian Splatting with Multi-view Consistent Material Inference}, author={Zhang, Wenyuan and Tang, Jimin and Zhang, Weiqi and Fang, Yi and Liu, Yu-Shen and Han, Zhizhong}, booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems}, year={2025} } ```