Git Product home page Git Product logo

peterzs / gvpm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gradientpm/gvpm

0.0 0.0 0.0 55.21 MB

Gradient-domain Volumetric Photon Density Estimation, SIGGRAPH 2018

Home Page: https://beltegeuse.github.io/research/publication/2018_gradientvolumetricpm/

CMake 1.67% Python 3.92% Shell 0.14% C 2.16% Makefile 0.01% C++ 86.00% XSLT 0.13% Batchfile 0.01% PowerShell 0.01% Objective-C 3.24% JavaScript 1.37% Cuda 0.23% Objective-C++ 0.31% GLSL 0.28% CSS 0.01% HTML 0.55%

gvpm's Introduction

Gradient-domain Volumetric Photon Density Estimation

This is the code release for the paper Gradient-domain Volumetric Photon Density Estimation in SIGGRAPH 2018.

It extends Mitsuba 0.5.0 to implement a group of rendering techniques to render homogeneous participating media. The code can be compiled on Windows 10 with Visual Studio 2013, and Arch Linux platform. It is preferable to use CMake to compile this project.

Download

Photon Density Integrators

We support rendering of participating media in the primal domain with the sppm integrator, and in the gradient domain with the gvpm integrator. In each integrator, several photon representations are implemented, including photon points, beams, and planes.

Volumetric Photon Mapping (VPM or G-VPM)

This is basically the surface-based photon mapping technique brought into volumetric rendering. It makes use of a uniform 3D kernel for photon gathering.

Beam Radiance Estimate (BRE or G-BRE)

In this representation, we treat the camera rays as beams, and gather all photons that the beams intersect. We support gathering with a 2D or a 3D kernel. It is preferable to use the 3D kernel as it allows spatial relaxation during gathering, i.e., the proposed mixed shift in the paper.

Photon Beams (Beams or G-Beams)

This representation treats both camera and light rays as beams. We support gathering with a 1D or a 3D kernel. Similar to BRE, it is preferable to use a 3D kernel for spatial relaxations.

(Experimental) Photon planes (Planes or G-Planes)

This representation treats the light rays as planes. The current implementation does not check the visibility between the photon plane and the camera ray. For this reason, this technique only works with scenes that skipping visibility check does not bring large errors, e.g., the LASER scene in the paper. We support 0D kernel to gather plane contribution.

Path-based Integrators

Beyond primal domain path tracing and bidirectional path tracing that naturally handles participating media, we modified gradient-domain path tracing gpt to support homogeneous participating media. There is also code extended from gradient-domain bidirectional path tracing gbdpt (experimental).

Known issues

Due to time restriction, the current code version has few issues (ordered by priorities). These will be addressed if time permits. Note that these issues do not impact the results produced in our paper. If you want to contribute, please, feel free to address these issues through pull requests.

  • Surfaces rendering are not handling correctly in this code version for photon density techniques. Only media to media or surface to media light transports are considered.
  • The code only supports area light sources.
  • Some restrictions on BSDFs: "mixture bsdf" can handle only two different component. "two-sided bsdf" only handles the case when the same BSDF is used on the two faces surface.
  • G-PT: When surface rendering is enabled, direct-lighting computation leads to inaccurate gradients. This problem might be due to BSDF component selection code.
  • G-PT: Does not include the optimized routine when an interface shadow the light source.
  • G-BDPT: Does not handle scenes with interfaces (due to unmanaged MIS computation).
  • (G-)Plane: visibility support.
  • Support heterogeneous participating media. (G-VPM heterogenous participating media is still missing)

License

This code is released under the GNU General Public License (version 3).

This source code includes the following open source implementations:

  • Screened Poisson reconstruction code from NVIDIA, released under the new BSD license.
  • Mitsuba 0.5.0 by Wenzel Jakob, released under the GNU General Public License (version 3).

Citation

If you use this code, please consider citing the following works accordingly:

@article{gruson:2018:gdvpm,
 title = {{Gradient-domain Volumetric Photon Density Estimation}},
 author = {Gruson, Adrien and Hua, Binh-Son and Vibert, Nicolas and Nowrouzezahrai, Derek and Hachisuka, Toshiya},
 journal = {{ACM Transactions on Graphics}},
 publisher = {{Association for Computing Machinery}},
 year = {2018},
}

Contact

Please feel free to email adrien.gruson[at]gmail.com or binhson.hua[at]gmail.com for questions regarding the code.

gvpm's People

Contributors

beltegeuse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.