Environment and Bump Mapping

Jake Juszak
CSC 572 - Dr. Zoe Wood

For my final project, I implemented Environment Cube Mapping. The idea is to read in a triangle mesh object, calculate a reflection vector based on a specified view vector and the normal at a point on a mesh, and then map that to a color in the surrounding environment cube. The result is a glossy-looking object that appears to be highly reflective and smooth.

I also implemented Bump (or Normal) Mapping and attempted to combine that with the Environment Mapping to try and create an effect of a bumpy, yet reflective surface in the environment. The results I had were not completely converted into tangent space, so the refelction is a little bit skewed, but the images still look good and present the basic idea of what the final image should look like.

Many of the images also used the Gaussian Blur implemented earlier in the quarter

Here are some of the unfolded environment cubes that I pulled off of Google Search, and below are the environments being mapped onto objects with various other effects:

This is the Bump Map I used to try to add a texture to some of the objects:

Here is the Outdoor Environment getting mapped to objects with various effects added in:

Mapped to Bunny Object

Mapped to Sphere with background blurred

Mapped to Sphere with background blurred and sphere blurred once

Mapped to Sphere with bump texturing added

Other various images with similar effects on different environments:

And here is an interesting error image that appeared once:

Thanks to Austin Dworaczyk Wiltshire, as much of his CUDA code was also used for speed optimizations in this project.