Henry Johan

Assistant Professor

School of Computer Engineering

Nanyang Technological University

e-mail: henryjohan(at)ntu.edu.sg


Teaching:

Refereed Publications:

Not Refereed Publications:

Thesis:


Some CG related programs:


Ray Tracing

I wrote the program in C. To accelerate the ray tracing process, I also wrote the version for parallel shared memory machine Ultra Enterprise 10000(64 PE). I implemented Phong illumination model and Whitted illumination model on this ray tracer. The result of ray tracing is in PPM format andI used xv to convert it to JPEG format. To produce better quality image I also implemented adaptive supersampling method.
  1. Reflection, Refraction and Shadow Effect

    The point light source is located at the center of the ceiling. All of the balls are reflective. The floor, the walls and the surfaces between the floor and the walls are reflective too. It considers the contribution of indirect reflected light sources (such as mirrors and reflective planes).

    Whitted illumination model, Adaptive Supersampling.


  2. Spot Light


  3. Specular Reflection
     
  4. Solid Texturing

    Displacement mapping


    Filtering


  5. Fractal Mountain (Midpoint Displacement Algorithm)

    The displacement function for the midpoint between point (x, d[i],z[i]) and point (x, d[i+1], z[i+1]) is d[mid] = 0.5 * (d[i] + d[i+1]) +P(z[i+1] - z[i]) * R(z[mid]) , where z[mid] = 0.5 * (z[i] + z[i+1]). P(dz)is a pertubation function and R(z) returns a random number between 0 and1.

    I used two different pertubation functions to produce the pictures below.

    As for R(z), I wrote a random number generator which returns a random numberbetween 0 and 1 not bigger than z.

    The mountain is represented by polygon meshes.Texture mapping is usedto make the mountain looks more real. Consider point p on the surface ofthe mountain. Let N be the normal vector at that point (the normal vectorof the polygon which point p belongs to) and V be a random unit vector.Define N' = N + s * V , (s is a constant). N'' = N' / |N'| (|N'| is thelength of vector N') is considered to be point p's normal vector.

    # Mountain type 1 (12800 polygons)

    # Mountain type 2 (12800 polygons)


Bezier Surface

The Bezier surface is approximated by using triangular patches. I put some ofthe rendering results (flat shading) of degree 3 Bezier surface below.


Marching Cube

I wrote a program to polygonize the iso-surface of volume data using the marchingcube algorithm. Here are some of the rendering results (flat shading).