-

Martin Rebas
HOME  ->   Creative  ->   Illuminatus

Four pool balls rendered with motion blur & focal blur.

Illuminatus

Ray tracing is a very calculation-intensive method for creating highly realistic images. Basically, it's the method they would've used for rendering dinosaurs in Jurassic Park or toys in Toy Story if it hadn't taken too much time to calculate the images that way.

In April 1999, instead of studying for a Computer Graphics exam, I got the ridiculous idea of writing a ray tracer in Java. Ridiculous, because writing a ray tracer seemed incredibly complicated, and because Java is a very slow language, and not anything you'd want to use for something that requires lots of computations.

I did it anyway. It turned out that writing a ray tracer wasn't as hard as I thought. Writing a simple ray tracer took two days; then I added features to it for four more days, so I've worked on it for six days total. It would've taken even less if I'd looked up the necessary formulas in a book instead of trying to derive them myself. It's slow, as expected, so right now it's only useful for very simple scenes, but it was fun to create. Perhaps I'll port it to C++, which is 7-20 times faster.


Illuminatus v0.6 supports:

  • spheres and convex polygons
  • light sources (ambient, diffuse and specular light)
  • phong shading (meshes, rotational surfaces)
  • specular and diffuse reflections
  • transparency and refraction
  • texture mapping (image mapping and procedural solid textures)
  • bump mapping, reflection mapping, transparency mapping
  • global environment mapping
  • antialiasing
  • area lights
  • interference pattern reduction
  • motion blur
  • volumetric fog
  • "auras"
  • depth of focus
  • animation
  • partial physics model (gravitation, sphere-to-sphere collision)


"To do" list:

  • cones, cylinders
  • constructive solid geometry
  • nurbs
  • plasma effects (fire, etc)
  • atmospherics
  • radiosity
  • a scene/object editor
  • .png image support
  • porting Illuminatus to C++

Picture gallery:

The only picture I've rendered with the latest version of Illuminatus is the one of the pool balls above. The pictures below were made during the development of Illuminatus. They look pretty similar, because I usually used the same basic scene (two rectangles and two spheres) to test the program. Click the thumbnails to view the images at full size.

Animations:

Do you want to see Illuminatus in action? If you've got a fast computer that supports Java, you can watch a real-time raytraced animation of a white pool ball knocking down a pyramid of four more pool balls. The animation restarts when the camera has panned 180 degrees around the scene. The speed and direction of the ball changes every time, as does the lighting.

->   Pretty slow and bad quality
->   Really slow and decent quality