Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonfryd/photontracer
Experimental Global Illumination Renderer
https://github.com/jonfryd/photontracer
computer-graphics global-illumination irradiance photon-mapping raytracer
Last synced: 22 days ago
JSON representation
Experimental Global Illumination Renderer
- Host: GitHub
- URL: https://github.com/jonfryd/photontracer
- Owner: jonfryd
- License: mit
- Created: 2019-08-18T18:36:47.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-07T09:54:19.000Z (almost 3 years ago)
- Last Synced: 2024-10-24T17:49:45.994Z (2 months ago)
- Topics: computer-graphics, global-illumination, irradiance, photon-mapping, raytracer
- Language: C#
- Homepage:
- Size: 358 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
# PhotonTracer: Experimental Global Illumination Renderer
This is a hobby project in C# that I worked on between 2006 and 2009 derived on Java code I did back in my university days.
It's basically a classic photon mapping implementation and global illumination renderer done pretty much as
described in [Henrik Wann Jensen's book](https://www.amazon.com/Realistic-Synthesis-Mapping-Revised-Paperback/dp/B011DC2J3O). The renderer runs in 3 stages:1. Photon emission
2. Rendering an approximate solution
3. Rendering the final, accurate solutionThe implementation does support multiple cores and produces nicely anti-aliased images like the one below. Stuff like texture mapping,
bump mapping, and caustics rendering are supported, as well. There's also a half-baked attempt to do irradiance caching which was never
completed. Debugging all the edge cases right turned out to be really challenging and I turned my attention to other projects.There's no scene input file format or anything fancy like that. Changing the scene requires changing the code.
A final rendering of the classic Cornell box:
A window shows the absorbed photon locations:
# Building
Clone the repository and execute Maven from the root directory:
$ git clone https://github.com/jonfryd/PhotonTracer
$ cd PhotonTracer/
$ ./build.shThis is for Linux or Mac OS X. For Windows run .bat-file:
$ build.bat
# Usage
After building, run ```Photontracer.exe``` on Mac OS X using Mono (64-bit is not yet supported):
$ mono32 Photontracer.exe
In Linux using Mono:
$ mono Photontracer.exe
Windows users are able to run the .exe directly, of course.
After the program finishes all its number crunching, a JPEG image called ```photontraced.jpg``` is produced.
Cheers!# Author
This application created by Jon Frydensbjerg - email: [email protected]