This project is based on the GAMES101 homework 7 raytracer. It is my GAMES101 final project! I have integrated basic photon mapping functionality into this raytracer, and build some simple scene (these figures use SSP 1024):
Although it is not perfect, but the caustics effect is lovely!
For photon mapping:
- Trace photons to diffuse object.
- Define specular reflection and transmission material model.
- Store photons into left-balanced kd-tree photon map.
- Draw a heart! (as Valentine's Day is around XD)
- Progressive photon mapping is still pending!
-
Framework
- GAMES101 homework (in Chinese)
- GAMES101 framework guide (in Chinese)
-
Photon mapping
- Realistic Image Synthesis Using Photon Mapping (there is code reference, and I mainly follows this book)
- A Practical Guide to Global Illumination using Photon Maps (a summary of Realistic Image Synthesis Using Photon Mapping)
- photonmapping lecture (princeton.edu) (lecture note for photon mapping, I start from this)
- 《全局光照技术:从离线到实时渲染》(much easier than the PBR book, and in Chinese!)
- PBR book (too hard for me...)
- 光子映射总结(1/4):基本全局光子映射(Basic Photon Mapping) - 知乎 (zhihu.com) (useful summary!)
- ... (lots of other notes form zhihu, CSDN, and github)
-
Draw heart
- Explicit representation for a heart
- Shader toy heart, Another shader toy heart
- An Introduction to Raymarching | Maxime Garcia (typhomnt.github.io) (I draw the heart with raymarching idea)
- 数学图形之心形 - 叶飞影 - 博客园 (cnblogs.com)