Skip to content

tflsguoyu/layeredbsdf

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 

Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs

Yu Guo, Miloš Hašan, Shuang Zhao.

In ACM Transactions on Graphics (SIGGRAPH Asia 2018).

[Paper] [Code] [Supplemental Materials] [Poster] [Fastforward on Siggraph Asia 2018 (Video)(Slides)]
[Presentation on Siggraph Asia 2018 (Slides)] [Two Minute Papers]

Overview

This is a branch of the Mitsuba (0.6.0) renderer (official repo: https://github.com/mitsuba-renderer/mitsuba)

Install

Linux (Preferred, Tested on Ubuntu 16.04, 18.04)

  • $ sudo apt update
  • $ sudo apt upgrade
  • $ sudo apt install git scons libboost-all-dev libpng-dev libjpeg-dev libopenexr-dev libxerces-c-dev libeigen3-dev libfftw3-dev libglewmx-dev freeglut3-dev
  • $ git clone https://github.com/tflsguoyu/layeredbsdf.git
  • $ cd layeredbsdf/
  • $ mv config_linux.py config.py
  • $ scons -j x (x = # of cpu cores)
  • $ source setpath.sh Now you can render scenes
  • $ mitsuba xxx.xml

Windows (Tested on Windows 10 x64)

  • install visual studio 2017
  • clone this git to local folder
  • go to folder ..\layeredbsdf\
  • rename config_windows.py to config.py
  • download dependencies

Examples in paper (click image to download scene files)


Scene file (.xml) explanation

  • <scene version="0.6.0"> (Here using 0.6.0, but not 0.5.0)
  • <integrator type="path_layered"> (path_layered preferred, but can still use path, volpath or volpath_simple instead)
  • <bsdf type="multilayered"> ... </bsdf> (BSDF type is multilayered, both our uni-dir and bi-dir methods are implemented here)

Notes

  • Default precision in config.py is single. If you find too many warnings or even it is crashed when rendering scenes, you should try double precision instead. (Already provided in config.py)
  • conductor and dielectric are not supported now, use roughconductor (a=0.001) and roughdielectric (a=0.001) instead.
  • Welcome to report bugs and leave comments (Yu Guo: tflsguoyu@gmail.com)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published