Skip to content

zimengyang/Graphics_BidirectionalPathTracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graphics_BidirectionalPathTracer

The final porject of CIS 560 Computer Graphics.
Major features include BDPT, Progressive Rendering, Depth of Field and heuristic BVH acceleration.

Bidirectional Path Tracer Implementation

Didirectional path tracer Naive Multiple Importance Sampling
cube_bdpt cubeMIS
disc_bdpt discMIS
spheres_bdpt spheresMIS

From the obove pictures, bidirectional path tracer performs better in dealing with the influences between adjacent geometries. And also have a better rendering in scenes where lights are obstructed by geometry.

Heuristic BVH Acceleraiton

Some test scenes are rendered with acceleration structure-bvh tree. BVH took 3221ms to render a scene with 33K triangles and 1 sample per pixel.

Fig. Heuristic BVH test - building.


Fig. Heuristic BVH test - wahoo & building.

Progressive Rendering

Implemented a new OpenGL shader to render the texture grabed from frame buffer to screen. And update the rendered texture in each render thread.

Screenshot of progressive rendering.

Depth of Field

Add lensRadius and focalLength variables to Camera class, sample camera.eye within a disc with radius: lensRadius. Then modify the reference point to focal plane. Cast a newRay by variables above.

long focal length short focal lenth
small lens radius medium lens radius large lens radius

Transmissive material

Transmissive and reflective material renderer

About

Bidirectional Path Tracer Implementation & Progressive Rendering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages