CS488 Final Project

Objective 1: Primitives

felix chen
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:

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade