Header only implementation of Progressive Photon Mapping: A Probabilistic Approach(PPMAPA) in C++.

ppmapa

Header only implementation of Progressive Photon Mapping: A Probabilistic Approach(PPMAPA) in C++.

In this reformulation of (stochastic) progressive photon mapping, not so many code changes are required from original photon mapping. You don't have to prepare hit points and local statistics of photons.

Due to this simplicity, most of the codes come from the implementation of original photon mapping

Algorithms are summarized as follows.

  1. Photon tracing
  2. Build photon map
  3. Ray tracing from the eye and estimate the reflected radiance with photon map
  4. Reduce the search radius for density estimation
  5. Go back to 1

Note that the procedure of 1, 2, 3 is the same as original photon mapping.

Features

  • Depth of field with thin lens camera
  • Load obj model

Requirements

Build

CMake option Description
BUILD_TESTS build tests
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Gallery

cornellbox-water2

Parameter Value
number of photons in each iteration 100000
number of iterations 1000
alpha 3/4
initial radius 0.01

This model is available under models/

Externals

References

Owner
yumcyawiz
Master student. I am interested in Computer Graphics, Machine Learning and Mathematical Finance.
yumcyawiz
Similar Resources

A Multi-sensor Fusion Odometry via Smoothing and Mapping.

A Multi-sensor Fusion Odometry via Smoothing and Mapping.

LVIO-SAM A multi-sensor fusion odometry, LVIO-SAM, which fuses LiDAR, stereo camera and inertial measurement unit (IMU) via smoothing and mapping. The

Sep 22, 2022

Contour mapping and 3D surface modeling app

Contour mapping and 3D surface modeling app

QuikGrid v5.4 for 64-bit editions of MS Windows Contour mapping and 3D surface modeling app A 64-Bit Windows installer for QuikGrid can be found in th

Jul 28, 2022

A ros package for robust odometry and mapping using LiDAR with aid of different sensors

W-LOAM A ros package for robust odometry and mapping using LiDAR with aid of different sensors Demo Video https://www.bilibili.com/video/BV1Fy4y1L7kZ?

Aug 30, 2022

The ROS version of ICP Mapping with QPEP Solver (Quadratic Pose Estimation Problems)

 The ROS version of ICP Mapping with QPEP Solver (Quadratic Pose Estimation Problems)

The ROS version of ICP Mapping with QPEP Solver (Quadratic Pose Estimation Problems) The project is based on https://github.com/ethz-asl/ethzasl_icp_m

Feb 25, 2022

⌨️ Personal key mapping for The Key.

⌨️ Personal key mapping for The Key.

The Key Personal key mapping for The Key. This firmware configures: The first key to be the mute key on single tap, and the pause/play key on double t

Dec 25, 2021

Livox-Mapping - An all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR

Livox-Mapping - An all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR

Livox-Mapping This repository implements an all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR. The system is developed based

Sep 22, 2022

Rampin - Try to make Windows preload files into RAM by memory mapping and touching them.

rampin A small C program to try keep a file or few in Windows RAM cache. For a Unix (not only Linux) alternative see vmtouch. Takes one or more filena

Apr 11, 2022

Efficient and Conservative Fluids Using Bidirectional Mapping

Efficient and Conservative Fluids Using Bidirectional Mapping

Efficient and Conservative Fluids with Bidirectional Mapping Ziyin Qu* Xinxin Zhang*(*joint first authors) Ming Gao Chenfanfu Jiang Baoquan Chen ACM T

Sep 9, 2022

BladeBit - Fast Chia (XCH) RAM-only k32-only Plotter

BladeBit Chia Plotter A fast RAM-only, k32-only, Chia plotter. Requirements 416 GiB of RAM are required to run it, plus a few more megabytes for stack

Sep 18, 2022
minimal but extensible header only implementation of photon mapping in C++
minimal but extensible header only implementation of photon mapping in C++

photon_mapping minimal but extensible header only implementation of photon mapping in C++. Features Direct illumination with explicit light sampling I

Sep 10, 2022
Probabilistic Risk Analysis Tool (fault tree analysis, event tree analysis, etc.)

SCRAM SCRAM is a Command-line Risk Analysis Multi-tool. This project aims to build a command line tool for probabilistic risk analysis. SCRAM is capab

Sep 6, 2022
ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

Aug 2, 2022
Photon OS DPDK and Packet Generator, RT Test, TF2 docker image.

photongen Photon OS DPDK and packet generator , cyclictest , TF2 with CUDA docker image. DPKD libs The build proccess builds and installs all shared l

Sep 13, 2022
An implementation of the SZZ algorithm, i.e., an approach to identify bug-introducing commits.
An implementation of the SZZ algorithm, i.e., an approach to identify bug-introducing commits.

SZZ Unleashed SZZ Unleashed is an implementation of the SZZ algorithm, i.e. an approach to identify bug-introducing commits, introduced by Śliwerski e

Sep 7, 2022
Cool and different approach to Strimer Plus. Colorful scrolling text message. It's ready for you!
Cool and different approach to Strimer Plus. Colorful scrolling text message. It's ready for you!

Strimer Plus DIY Version: 2021.10.27 Author: Murat TAMCI Web Site: www.themt.co Note: In loving memory of my grandfather (Ahmet Ozdil) Welcome to Stri

Jan 10, 2022
Code accompanying our SIGGRAPH 2021 Technical Communications paper "Transition Motion Tensor: A Data-Driven Approach for Versatile and Controllable Agents in Physically Simulated Environments"
Code accompanying our SIGGRAPH 2021 Technical Communications paper

SIGGRAPH ASIA 2021 Technical Communications Transition Motion Tensor: A Data-Driven Framework for Versatile and Controllable Agents in Physically Simu

Apr 21, 2022
Header-only VMWare Backdoor API Implementation & Effortless VMX Patcher for Custom Guest-to-Host RPCs
 Header-only VMWare Backdoor API Implementation & Effortless VMX Patcher for Custom Guest-to-Host RPCs

VmxHijack Header-only VMWare Backdoor API Implementation & Effortless VMX Patcher for Custom Guest-to-Host RPCs Sample // --- RPC Server Code (VmxHija

Sep 9, 2022
A simple, generic, header-only state machine implementation for C++.

Finite State Machine for C++ A simple, generic, header-only state machine implementation for C++. Documentation Please see the documentation in fsm.h

Apr 23, 2022
LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping
LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping

LVI-SAM This repository contains code for a lidar-visual-inertial odometry and mapping system, which combines the advantages of LIO-SAM and Vins-Mono

Sep 21, 2022