CS488 Final Project
Objective 1: Primitives
Jul 21, 2017 · 3 min read
new primitive implemented: cone and cylinder.

Objective 2: Constructive Solid Geometry
implemented the difference between a cube and a cylinder.

Objective 3: Texture Mapping

Objective 4: Bump Mapping
Bump mapping implemented by using normals obtained from a pre-calculated normal map.

Objective 5: Refraction

Objective 6: Depth of Field
Depth of field was implemented by tracing rays from sample points in a disc whose centre is the eye position.


Objective 7: Glossy Reflection

Objective 8: Soft shadow
soft shadow was implemented by simulating an area light instead of a point light.


Objective 9: Anti-Aliasing
anti-aliasing was implemented by super-sampling each pixel and average the results.


Objective 10: Final Scene

Extra Feature: Multithreading
The rendering of each pixel is assigned to different threads to improve performance on multithreaded machines.
image rendered:

performance change:

