cs6620 Project 8

Abe Stephens

Required Images


Notice that the shading of the soft tissue (noise)  is consistent in the reflection.
1spp.
2.86759 (4 threads)
7.3732 (1 thread)
(Dual Xeon 3.0 Ghz)
2x2 spp Lanczos Sinc Filter.
My volume renderer supports both self shadowing and casts shadows on other objects. Self shadowing is insanely expensive for this type of dataset but is necessary for certain hypertexture effects.  The renderer also allows other objects to intersect the volume.

Creative Images



Perlin hypertexture in a spherical volume domain and its reflection.

Box shaded with a solid Lambertian material.

Dielectric material ignoring shadows.

Dielectric box with solid shadows.

Dielectric box with color & opacity attenuated shadows.

I allowed my volumes to cast shadows on other objects by adding a volume shade method to each material. I tested the technique with a dielectric cube. The front side of the cube is open and the single light source is inside the cube.

Unlike the lecture slides, I used a derivative filter which operated on interpolated values rather then the values at grid points. This was necessary because my volume renderer has a general design and can be used with volumes that don't have grids, like hypertextures. I also corrected the opacity for step size in the transfer function rather then precomputing the value. This allows the renderer to change step size although it doesn't do this with the type of dataset rendered in the assignment.

My renderer is heavily templated, the volume domain, interpolation, transfer function and lighting shaders are templated parameters. Hopefully this will let me volume render inside of interesting objects like meshes or heightfields. So far the design works well for axis aligned boxes and spheres.

Performance Template.

Time:
I was confused for quite some time about why my normals were different then the required image on the web page (I computed the normals differently from the course notes from the beginning). It also seemed odd that the highlights on that image didn't match the orientation of those on the sphere.  Eventually someone stopped by and set me straight.