Code Monkey home page Code Monkey logo

gradientpm / gradient-mts Goto Github PK

View Code? Open in Web Editor NEW
85.0 7.0 14.0 47.5 MB

A collection of gradient-domain light transport algorithms implemented with Mitsuba

Home Page: http://beltegeuse.s3-website-ap-northeast-1.amazonaws.com/research/2019_GradientSTAR/

License: GNU General Public License v3.0

CMake 1.57% Python 2.79% Shell 0.08% C 5.07% Makefile 0.01% C++ 88.16% XSLT 0.12% Batchfile 0.01% PowerShell 0.01% Objective-C 0.07% JavaScript 1.28% Cuda 0.30% Objective-C++ 0.29% GLSL 0.26% CSS 0.01%
gradient-rendering path-tracing global-illumination photon-mapping mitsuba poisson-reconstruction shift-mapping jacobian

gradient-mts's Introduction

Light Transport Simulation in the Gradient Domain

Light transport simulation in the gradient domain is an efficient family of Monte Carlo rendering techniques that can converge a few times faster than standard Monte Carlo rendering. The basic idea of gradient-domain rendering is to first efficiently sample the horizontal and vertical gradient images in addition to the standard Monte Carlo rendering. The final image can be reconstructed from the gradients by solving an image-space Poisson problem. The final image can be seen as a denoised result of standard Monte Carlo rendering.

This repository contains several gradient-domain light transport simulation algorithms. It derives Mitsuba 0.5.0 and includes the gradient domain implementation of path tracing, bidirectional path tracing, photon mapping, vertex connection and merging. It also supports rendering participating media with volumetric photon mapping, beam radiance estimates, photon beams, and planes. The repository is made to support the course Light Transport Simulation in the Gradient Domain in SIGGRAPH Asia 2018 and the state-of-the-art report A Survey on Gradient-Domain Rendering in Eurographics 2019.

In case of problems/questions/comments don't hesitate to contact us directly: [email protected] or [email protected].

Integrators

This code includes several integrators originally implemented by many other researchers:

The code is located in the src/integrator/gradient folder.

Image reconstruction

For image reconstruction, it includes:

Currently, weighted reconstruction only supports gradient-domain path tracing. This reconstruction requires an estimate of the variance of the pixel value and its gradients. The support for other algorithms requires some extensions of this variance estimates which we temporarily leave as future work.

Scenes

Surface rendering

Volume rendering

Denoisers

To support the comparison of gradient-domain image reconstruction with Monte Carlo denoising techniques, the code also includes two popular denoising techniques:

Currently, this two denoisers are only compatible with path tracing. They require the auxilary buffer (NFOR) or samples histograms (BCD).

Troubleshooting

  • Make sure that the config.py files use DOUBLE_PRECISON flag instead of SINGLE_PRECISION since the current implementation of gradient-domain rendering is quite sensitive to floating point precision. This will hopefully be fixed at a later time.

Change logs

2023/04/24: Update links 2018/11/29: Initial code release

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).
  • A small part of Tungsten by Benedikt Bitterli.

gradient-mts's People

Contributors

beltegeuse avatar songuke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  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.