{"id":13574677,"url":"https://github.com/yumcyaWiz/volppm","last_synced_at":"2025-04-04T18:31:49.763Z","repository":{"id":117977166,"uuid":"439417445","full_name":"yumcyaWiz/volppm","owner":"yumcyaWiz","description":"Volumetric progressive photon mapping written in C++.","archived":false,"fork":false,"pushed_at":"2022-11-12T09:46:09.000Z","size":2420,"stargazers_count":54,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-05T10:44:30.214Z","etag":null,"topics":["3dcg","computer-graphics","photon-mapping","progressive-photon-mapping","raytracing","rendering","rendering-3d-graphics","rendering-engine","volume-rendering"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yumcyaWiz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-12-17T17:52:43.000Z","updated_at":"2024-10-20T12:56:48.000Z","dependencies_parsed_at":"2024-01-14T04:07:46.362Z","dependency_job_id":null,"html_url":"https://github.com/yumcyaWiz/volppm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yumcyaWiz%2Fvolppm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yumcyaWiz%2Fvolppm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yumcyaWiz%2Fvolppm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yumcyaWiz%2Fvolppm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yumcyaWiz","download_url":"https://codeload.github.com/yumcyaWiz/volppm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247229531,"owners_count":20905069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3dcg","computer-graphics","photon-mapping","progressive-photon-mapping","raytracing","rendering","rendering-3d-graphics","rendering-engine","volume-rendering"],"created_at":"2024-08-01T15:00:53.653Z","updated_at":"2025-04-04T18:31:49.002Z","avatar_url":"https://github.com/yumcyaWiz.png","language":"C++","funding_links":[],"categories":["Table of Contents"],"sub_categories":["Data Visualization and Rendering"],"readme":"# volppm\n\n![](img/water_cornellbox.png)\n\nVolumetric progressive photon mapping written in C++.\n\nWIP.\n\n## Features\n\n* Homogeneous medium\n* [Hero wavelength sampling](https://doi.org/10.1145/3306346.3323025) for chromatic absorption/scattering coefficient\n* [Artist friendly parameter](https://doi.org/10.1145/2897839.2927433) to control absorption/scattering coefficient\n* Random walk subsurface scattering\n* Load obj model\n\n## Requirements\n\n* C++ (20\u003e=)\n* CMake (3.20\u003e=)\n* OpenMP\n* [spdlog](https://github.com/gabime/spdlog)\n* [Embree](https://github.com/embree/embree) (\u003e=3)\n\n## Build\n\n|CMake option|Description|\n|:--|:--|\n|BUILD_TESTS|build tests|\n\n```\ngit submodule update --init\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake\n```\n\n## Gallery\n\n### Water cornell box\n\n|Parameter|Value|\n|:--|:--|\n|number of iterations|1000|\n|number of photons in each iteration|200000|\n|alpha|3/4|\n|initial search radius for surface|0.01|\n|initial search radius for volume|0.05|\n\n![](img/water_cornellbox.png)\n\nThis model is available at `models/CornellBox-Water-Small-Light-Covered-Cube-Floor-No-Backwall.obj`\n\n## References\n\n* [Physically Based Rendering:From Theory To Implementation, Matt Pharr, Wenzel Jakob, and Greg Humphreys](https://pbr-book.org/)\n* [Efficient simulation of light transport in scenes with participating media using photon maps](https://doi.org/10.1145/280814.280925)\n* [Hachisuka, Toshiya, Shinji Ogaki, and Henrik Wann Jensen. \"Progressive photon mapping.\" ACM SIGGRAPH Asia 2008 papers. 2008. 1-8.](https://doi.org/10.1145/1457515.1409083)\n* [Hachisuka, Toshiya, and Henrik Wann Jensen. \"Stochastic progressive photon mapping.\" ACM SIGGRAPH Asia 2009 papers. 2009. 1-8.](https://doi.org/10.1145/1661412.1618487)\n* [Knaus, Claude, and Matthias Zwicker. \"Progressive photon mapping: A probabilistic approach.\" ACM Transactions on Graphics (TOG) 30.3 (2011): 1-13.](https://doi.org/10.1145/1966394.1966404)\n* [Wilkie, Alexander, et al. \"Hero wavelength spectral sampling.\" Computer Graphics Forum. Vol. 33. No. 4. 2014.](https://doi.org/10.1111/cgf.12419)\n* [Chiang, Matt Jen-Yuan, Peter Kutz, and Brent Burley. \"Practical and controllable subsurface scattering for production path tracing.\" ACM SIGGRAPH 2016 Talks (2016): 1-2.](https://doi.org/10.1145/2897839.2927433)\n* [Fong, Julian, et al. \"Production volume rendering: Siggraph 2017 course.\" ACM SIGGRAPH 2017 Courses. 2017. 1-79.](https://doi.org/10.1145/3084873.3084907)\n* [Wrenninge, Magnus, Ryusuke Villemin, and Christophe Hery. Path traced subsurface scattering using anisotropic phase functions and non-exponential free flights. Tech. Rep. 17-07, Pixar. https://graphics. pixar. com/library/PathTracedSubsurface, 2017.](https://graphics.pixar.com/library/PathTracedSubsurface/paper.pdf)\n* [Novák, Jan, et al. \"Monte Carlo methods for volumetric light transport simulation.\" Computer Graphics Forum. Vol. 37. No. 2. 2018.](https://doi.org/10.1111/cgf.13383)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FyumcyaWiz%2Fvolppm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FyumcyaWiz%2Fvolppm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FyumcyaWiz%2Fvolppm/lists"}