https://github.com/luisagroup/practical-stylized
Source Code for SIGGRAPH North America 2025 Paper "Practical Stylized Nonlinear Monte Carlo Rendering"
https://github.com/luisagroup/practical-stylized
neural-rendering non-photorealistic-rendering siggraph siggraph-2025
Last synced: 4 months ago
JSON representation
Source Code for SIGGRAPH North America 2025 Paper "Practical Stylized Nonlinear Monte Carlo Rendering"
- Host: GitHub
- URL: https://github.com/luisagroup/practical-stylized
- Owner: LuisaGroup
- Created: 2025-04-30T18:31:08.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-02T12:00:03.000Z (about 1 year ago)
- Last Synced: 2025-07-03T14:45:55.618Z (12 months ago)
- Topics: neural-rendering, non-photorealistic-rendering, siggraph, siggraph-2025
- Language: Rust
- Homepage:
- Size: 37.6 MB
- Stars: 29
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Practical Stylized Nonlinear Monte Carlo Rendering
This is an early access version of the SIGGRAPH 2025 paper ["Practical Stylized Nonlinear Monte Carlo Rendering"](https://cs.uwaterloo.ca/~xtong/assets/pdf/practical_stylized.pdf)

The code is based on [AkariRender](https://github.com/shiinamiyuki/akari_render). The main files are:
- [lm_path_filtering.rs](crates/akari_integrator/src/lm_path_filtering.rs) The implementation of nonlinear path filtering (NL-PF).
- [nrc_pt.rs](crates/akari_integrator/src/nrc_pt.rs) The implentation of nonlinear neural radiance caching (NL-NRC).
- [svm/surface/mod.rs](crates/akari_render/src/svm/surface/mod.rs) The implementation of various nonlinear stylization shader nodes.
## Build
First clone the project:
```bash
git clone --recursive https://github.com/LuisaGroup/practical-stylized
```
If you are using < Windows 10, please upgrade to Windows 10 or above.
- Rust 1.81.0+
- CMake > 3.23
- Ninja
- Clone Blender 4.0 source code from `blender-v4.0-release` branch
- Put path to blender source in `blender_src_path.txt` at project root
To run on CPU, the following runtime requirement must be satisfied:
- clang++ in `PATH`
- llvm dynamic library of the same version (for Windows users, it is the `LLVM-C.dll`.
) should be in `PATH` as well.
## Run
Running the NL-NRC requires a CUDA-enabeld GPU. The other methods can run on CPU or GPU.
Download the scene file from release tab and put `Scene.bin` under `scenes/veach-ajar-sty-v2/`.
To render the scene in the teaser:
```bash
DEVICE=cuda # use cpu if you run out of VRAM
cargo run --release --bin akari-cli -- -s scenes/veach-ajar-sty-v2/scene-sty.json -m configs/teaser/pt.json -d $DEVICE --gui
cargo run --release --bin akari-cli -- -s scenes/veach-ajar-sty-v2/scene-sty.json -m configs/teaser/brpt.json -d $DEVICE --gui
cargo run --release --bin akari-cli -- -s scenes/veach-ajar-sty-v2/scene-sty.json -m configs/teaser/nl-pf.json -d $DEVICE
cargo run --release --bin akari-cli -- -s scenes/veach-ajar-sty-v2/scene-sty.json -m configs/teaser/nl-nrc.json -d $DEVICE --gui
```