This is an early access version of the SIGGRAPH 2025 paper "Practical Stylized Nonlinear Monte Carlo Rendering"
The code is based on AkariRender. The main files are:
- lm_path_filtering.rs The implementation of nonlinear path filtering (NL-PF).
- nrc_pt.rs The implentation of nonlinear neural radiance caching (NL-NRC).
- svm/surface/mod.rs The implementation of various nonlinear stylization shader nodes.
First clone the project:
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 inPATH
as well.
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:
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