CS184 Final Project Milestone Update
Realistic Real-time Rendering of Real Scenes using Ray-Tracing
By Adam Chang, Leo Adberg, and Mitchell Chase
Update on real-time rendering
- Implemented texture baking for diffuse textures
- Directly visible diffuse surfaces are now rasterized instead of raytraced
- Rasterization framebuffer is also used to perform the first intersection of every ray
- Only 1 ray is used per pixel (but can generate more when intersecting glass, mirrors, etc.)
- Implemented bidirectional raytracing / photon mapping
- Currently only for environment lights, is only used as a baking pass
- Can bake caustics and reflections much faster (needed as our scene will have most light going through windows)
- Performance estimates
- Rendering custom CBSpheres at 960x720
- 10 FPS at default view (glass + mirrors)
- 20 FPS if no glass in view (mirrors OK)
- 1 FPS if glass takes up entire FOV
Update on real scene reconstruction
- Implemented conversion from .ply to .dae files
- Implemented diffuse BSDF for individual triangles within a mesh
- Currently non-real-time performance
TODO
- Stretch goal: hardware acceleration for raytracing
- Significant amount of work and our rasterization techniques already speed it up a lot
- Implement alternative mesh storage system
- Different BSDF than diffuse for reconstructed scenes
- Texture + normal maps for reconstructed scenes
- Implement glossy BRDF for blurred/diffuse reflective material