Number of images: 4
Created on: Monday 16 August 2004
524 x 410
Fourth Step

524 x 410
Third Step

524 x 410
Second Step

524 x 410
First Step

Determination of the normal vectors of 3D scalar fields presents a software engineering problem if we are to approximate the gradient with a finite differencing scheme. This project presents a method for approximating the gradient a without the need of passing specific viewing orientation information. New images are comming soon.... 
Quaternion Julia fractals are created by the same principle as the more traditional Julia set except that it uses 4 dimensional complex numbers instead of 2 dimensional complex numbers. A 2D complex number is written as z = r + a i where i^2 = 1. A quaternion has two more complex components and might be written as q = r + a i + b j + c k where r, a, b, and c are real numbers. I learned and used the four dimensional data information from the Web Site http://astronomy.swin.edu.au/~pbourke/fractals/quatjulia/. 
First Step: My first step in rendering was to ray trace participating media fractals. These images are not as realistic as they are in the next step, but it still was pretty interesting. 
Second Step: The second step was finding surface normal vectors of fractals and general implicit functions. The images immediately began to look more realistic after incorporating the normal vectors and applying Phong shading. 
Third Step: The third step was to render a gold fractal on a wooden/marble checker board colored with perlin noise. This step tested the pathtracing abilities of my ray tracer. 
Fourth Step: My fourth step was to render the fractals, while reflecting and refracting the rays off of water simulated by perlin noise. 
Fifth Step: Render a nontrivial scene under water  demonstrating photon mapping, participating media, and subsurface scattering. Hopefully I will be able to pull off a couple cool lighting effects, such as underwater caustics, translucency, lightbleeding, volumetric scattering, and socalled god rays. 