Source Code for SIGGRAPH Asia 2021 Paper "Ensemble Denoising for Monte Carlo Renderings"

Overview

Ensemble Denoising

Source Code for SIGGRAPH Asia 2021 Paper Ensemble Denoising for Monte Carlo Renderings.

Paper | Code | Talk Slides

Dependencies

  • A C++17 conformant compiler for building the code
  • CMake for configuring the project
  • Eigen3 for linear algebra data structures and operations
  • OpenCV for image IO and basic operators
  • cxxopts (included as a git submodule) for parsing CLI options
  • fbstab (optional, included as a git submodule) for linearly constrained quadratic programming as the baseline solver

Compiling the Project

First, please make sure that Eigen3 and OpenCV are properly install in your system and can be found by CMake.

To clone the repository:

git clone --recursive https://github.com/Mike-Leo-Smith/EnsembleDenoising.git

Then, use CMake to configure the build:

cmake -S <project-dir> -B <build-dir> -D CMAKE_BUILD_TYPE=Release

Note: to help CMake find Eigen3 and OpenCV, you may need to provide -D Eigen3_DIR=... and -D OpenCV_DIR=... as well. Also, you can use the -G <generator> option to specify your favorite generator, and -D CMAKE_CXX_COMPILER=<...> to choose the C++ compiler.

After the project is properly configured, use the following command to build the program:

cmake --build <build-dir>

And the executable EnsembleDenosing should appear in <build-dir> if successfully built.

Preparing Input Data

The input data should be organized in the following structure:

<input-dir>
  │
  ├─ color.exr, colorA.exr, colorB.exr, albedo.exr, normal.exr
  │
  ├─ <base-denoiser-1>
  │    │
  │    └─ <base-denoiser-1>.exr <base-denoiser-1>A.exr <base-denoiser-1>B.exr
  │
  ├─ <base-denoiser-2>
  │    │
  │    └─ <base-denoiser-2>.exr <base-denoiser-2>A.exr <base-denoiser-2>B.exr
  ...

For example, if denoising-data is the input directory and two denoisers oidn and nfor are used, the directory structure should be

denoising-data
  │
  ├─ color.exr, colorA.exr, colorB.exr, albedo.exr, normal.exr
  │
  ├─ oidn
  │    │
  │    └─ oidn.exr oidnA.exr oidnB.exr
  │
  └─ nfor
       │
       └─ nfor.exr nforA.exr nforB.exr

You can use any scene, renderer, and denoiser to generate these data. In the paper, we use Tungsten for rendering.

Running the Program

To print the help message:

./EnsembleDenoising -h

To perform the ensemble denoising:

./EnsembleDenoising -i <input-dir> -o <output-dir> -m <base-denoiser-1>[,<base-denoiser-2>[...]]
Issues
  • How to generate nforA.exr and nforB.exr?

    How to generate nforA.exr and nforB.exr?

    In my view, the nfor.exr can be generated from color, colorA, colorB and many other features.

    But hot to generate nforA.exr or nforB.exr?

    Is nforA.exr generated from colorA, colorAA, colorAB and other features?

    opened by LZleejean 8
  • Could you provide the implementation of other algorithms?

    Could you provide the implementation of other algorithms?

    This paper is such great work and evaluate so many existing algorithms.

    But I found that some algorithms are not easy to reimplement. Therefore, could you provide your implementation, like RDFC?

    opened by LZleejean 4
Owner
郑少锟
水水的水锟
郑少锟
the code of paper "Optimizing Global Injectivity for Constrained Parameterization" (SIGGRAPH Asia 2021)

Optimizing Global Injectivity for Constrained Parameterization Xingyi Du, Danny M. Kaufman, Qingnan Zhou, Shahar Kovalsky, Yajie Yan, Noam Aigerman, T

Charles Du 3 Feb 20, 2022
ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021

ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021 Dataset Code Demos Authors: He Zhang, Yuting Ye, Tak

HE ZHANG 179 May 16, 2022
RXMesh - A GPU Mesh Data Structure - SIGGRAPH 2021

RXMesh About RXMesh is a surface triangle mesh data structure and programming model for processing static meshes on the GPU. RXMesh aims at provides a

null 110 Jun 25, 2022
Code and Data for our CVPR 2021 paper "Structured Scene Memory for Vision-Language Navigation"

SSM-VLN Code and Data for our CVPR 2021 paper "Structured Scene Memory for Vision-Language Navigation". Environment Installation Download Room-to-Room

hanqing 32 Jun 24, 2022
The official implementation of our CVPR 2021 paper - Hybrid Rotation Averaging: A Fast and Robust Rotation Averaging Approach

Graph Optimizer This repo contains the official implementation of our CVPR 2021 paper - Hybrid Rotation Averaging: A Fast and Robust Rotation Averagin

Chenyu 84 Jun 15, 2022
This is the code of our paper An Efficient Training Approach for Very Large Scale Face Recognition or F²C for simplicity.

Fast Face Classification (F²C) This is the code of our paper An Efficient Training Approach for Very Large Scale Face Recognition or F²C for simplicit

null 33 Jun 27, 2021
This code accompanies the paper "Human-Level Performance in No-Press Diplomacy via Equilibrium Search".

Diplomacy SearchBot This code accompanies the paper "Human-Level Performance in No-Press Diplomacy via Equilibrium Search". A very brief orientation:

Facebook Research 28 Apr 29, 2022
Code for Paper A Systematic Framework to Identify Violations of Scenario-dependent Driving Rules in Autonomous Vehicle Software

Code for Paper A Systematic Framework to Identify Violations of Scenario-dependent Driving Rules in Autonomous Vehicle Software

Qingzhao Zhang 5 May 11, 2022
Implementation for the "Surface Reconstruction from 3D Line Segments" paper.

Surface Reconstruction from 3D Line Segments Surface reconstruction from 3d line segments. [Paper] [Supplementary Material] Langlois, P. A., Boulch, A

null 67 Jun 26, 2022
The official implementation of the research paper "DAG Amendment for Inverse Control of Parametric Shapes"

DAG Amendment for Inverse Control of Parametric Shapes This repository is the official Blender implementation of the paper "DAG Amendment for Inverse

Elie Michel 150 Jun 9, 2022
Codes for the paper "A Correlation Attack on Full SNOW-V and SNOW-Vi"

Codes for the paper "A Correlation Attack on Full SNOW-V and SNOW-Vi" #Contents Automatic search of linear approximation trails of SNOW-V Evaluating t

null 2 Dec 24, 2021
NLP-based perching trajectory generation presented in our paper "Perception-Aware Perching on Powerlines with Multirotors".

Perception-Aware Perching on Powerlines with Multirotors This repo contains the code for the NLP-based perching trajectory generation presented in our

null 21 May 25, 2022
The repository contains our dataset and C++ implementation of the CVPR 2022 paper, Geometric Structure Preserving Warp for Natural Image Stitching.

Geometric Structure Preserving Warp for Natural Image Stitching This repository contains our dataset and C++ implementation of the CVPR 2022 paper, Ge

null 8 Jun 23, 2022
2021/3/30 ~ 2021/7/12 に行われる企画「競プロ典型 90 問」の問題・解説・ソースコードなどの資料をアップロードしています。

競プロ典型 90 問 日曜を除く毎朝 7:40 に競プロやアルゴリズムの教育的な問題を Twitter(@e869120)に投稿する企画です。 本企画は、2021 年 3 月 30 日から 7 月 12 日まで行われる予定です。 企画の目的 「競プロ典型 90 問」は、競プロ初級者から中上級者(レー

Masataka Yoneda 662 Jun 25, 2022
Official PyTorch Code of GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Monocular 3D Object Detection (CVPR 2021)

GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Monocular 3D Object Detection GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Mo

Abhinav Kumar 73 Jun 22, 2022
The code for C programming 2021, Department of Computer Science, National Taiwan University.

C2021 .c for sousce code, .in for input file, and .out for correct output. The numbers are the problem indices in the judge system. "make number" to m

Pangfeng Liu 6 Jan 10, 2022
Advent of Code 2021 optimized solutions in C++

advent2021-fast These solutions are a work in progress. Advent of Code 2021 optimized C++ solutions. Here are the timings from an example run on an i9

Andrew Skalski 6 Feb 5, 2022
Source code to the 1995 DOS roguelike game Alphaman

Alphaman Source and Files Source code and related files for the 1995 DOS roguelike game Alphaman by Jeffrey R. Olson. Jeff can be reached via email at

Jamie 33 Jun 8, 2022