Introduction
Photon is a simple Monte-Carlo path tracer made out of my personal interest in computer graphics. The engine served as a playground as I learned and tried to implement new graphics stuff. The core of the renderer is written in Java, and supports path tracing primarily. Its acceleration structure is a kD-tree with optimal SAH splits (when filled with triangle mesh). The material system is based on Cook-Torrance BSDF, which is famous for its physics-based derivation and modulable surface roughness.
List of Main Features
- Primitive intersection test
- Ray-sphere intersection
- Ray-triangle intersection
- Anti-aliasing samples
- kD-tree with optimal SAH splits
- Physically based materials
- Lambertian diffuse
- Cook-Torrance microfacet model (both BRDF & BTDF variants)
- Supports MERL BRDF database
- Texture for material & emission
- Fully support .obj model (with .mtl loading)
- Dynamic camera control during rendering (WASD-style movement)
Images
More on the Project
- This is an open-source project. Full source code available.