Volumetric progressive photon mapping written in C++.

Overview

volppm

Volumetric progressive photon mapping written in C++.

WIP.

Features

Requirements

Build

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

Gallery

Water cornell box

Parameter Value
number of iterations 1000
number of photons in each iteration 200000
alpha 3/4
initial search radius for surface 0.01
initial search radius for volume 0.05

This model is available at models/CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj

References

Issues
  • failed to load CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj

    failed to load CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj

    First of all, thank you so much for sharing this code! This is the first and maybe one of the best photon mapping project I can learn in GitHub!

    But I want to ask something about how to run this solution: I've finished CMake build and enter the .sln, but after I clicked Local Windows Debugger (under Release mode and x64) on solution, it shows that I can't load the obj file.

    [2022-06-18 22:20:49.938] [info] [Camera] position: (0, 1, 6)
    [2022-06-18 22:20:49.939] [info] [Camera] forward: (0, 0, -1)
    [2022-06-18 22:20:49.939] [info] [Camera] right: (1, -0, 0)
    [2022-06-18 22:20:49.939] [info] [Camera] up: (0, 1, 0)
    [2022-06-18 22:20:49.939] [info] [PinholeCamera] focalLength: 2.4142134
    [2022-06-18 22:20:49.939] [info] [Scene] loading: CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj
    [2022-06-18 22:20:49.940] [error] [Scene] failed to load CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj : 
    Cannot open file [CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj]
    

    I tried moving the model with materials to Include Directories, but that didn't seem to work either (since I haven't used tinyobjloader before, so forgive me if I'm wrong) I checked GitHub's tinyobjloader repo related content, but it didn't solve my problem.

    Can you help me? Thank you very much!

    I don't know if it has any effect, but I set project main not ALL_BUILD as start up project, and I put the model under /volppm/build/examples/main.dir

    opened by VCVina 1
Owner
yumcyawiz
Master student. I am interested in statistics, mathematical finance, ray tracing
yumcyawiz
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

yumcyawiz 62 Jul 20, 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

spyroot 4 Feb 7, 2022
Treexy is a library that implements a compact hierarchical data structure that can store and manipulate volumetric data, discretized on a three-dimensional grid

Treexy is a library that implements a compact hierarchical data structure that can store and manipulate volumetric data, discretized on a three-dimens

Davide Faconti 284 Aug 8, 2022
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

Tixiao Shan 1k Aug 10, 2022
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

Xinliang Zhong 139 Aug 5, 2022
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

Stephen Ferrell 4 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?

Saki-Chen 45 Jun 14, 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 project is based on https://github.com/ethz-asl/ethzasl_icp_m

Jin Wu 10 Feb 25, 2022
⌨️ 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

Zihua Li 1 Dec 25, 2021
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

null 201 Jul 31, 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

Błażej Roszkowski 1 Apr 11, 2022
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

Ziyin Qu 332 Jul 18, 2022
Semantic version library written in ANSI C

semver.c Semantic version v2.0 parser and render written in ANSI C with zero dependencies. Features Standard compliant (otherwise, open an issue) Vers

Tom 169 Aug 1, 2022
Cross-platform, Serial Port library written in C++

Serial Communication Library (Linux and OS X) (Windows) This is a cross-platform library for interfacing with rs-232 serial like ports written in C++.

William Woodall 1.6k Aug 7, 2022
Jittey - A public domain text editor written in C and Win32

Jittey (Jacob's Terrific Text Editor) is a single-file basic text editor written in pure C and Win32, there is no real reason to use it, but it

Jakub Šebek 24 Aug 7, 2022
This is the source code of SATCH a SAT solver written from scratch in C.

The main purpose of this solver is to provide a simple and clean code base for explaining and experimenting with SAT solvers. It is simpler than the source code of CaDiCaL and of Kissat in particular, while still featuring most important implementation techniques needed to obtain a state-of-the-art SAT solver

Armin Biere 65 Jul 31, 2022
Simple Pacman clone written in Zig.

pacman.zig Like https://github.com/floooh/pacman.c, but in Zig Zig bindings for the sokol headers are here: https://github.com/floooh/sokol-zig Build

Andre Weissflog 113 Aug 4, 2022
A light lisp written in C++

wisp A light lisp written in C++ Why write a lisp? Lisp is one of those niche, beautiful languages that people only really use to either Write a lisp

adam mcdaniel 161 Aug 8, 2022
Vireo is a lightweight and versatile video processing library written in C++11

Overview Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems an

Twitter 855 Jul 28, 2022