RAY TRACING
Ray tracing is the technique used to generate highly realistic
images
of 3-D geometry.
Some tech specs on the ray-tracing code I have written
-
User interface provides a real-time display of
solid shaded
objects with a software Z-Buffer polygon drawing algorithm that I
developed
to draw directly to dibs.
-
Illumination and shading using diffuse reflection,
specular
reflection, coloured lights, atmospheric attentuation, shadows,
transparency,
chrome reflection, phong normal vector interpolation.
-
Planar/Cubic/Spherical texture mapping including
point sampling
through to full antialiased mip-map texture mapping
-
Bump mapping.
-
Noise/Turbulence solid textures, marble etc..
-
Importing of 3-D geometry stored in Lightwave
Object File
Format, also imports texture definitions.
-
Exporting of 3-D geometry to Lightwave format or to
my own
proprietry format.
-
Adaptive super sampling and sub-division of pixels
to shoot
more rays through pixels where needed to provide full scene antialiasing
-
Adaptive object hierarchy creation before rendering
to speed
up and avoid polygon/ray intersection calculations with view rays,
shadow
rays and reflected rays.
Screen shots and history of the ray-tracing applications I have
written
Started writing the algorithms for ray tracing in 1994 on the Amiga.
Switched
to the PC around about 1995. The dos version of my raytracer which I
wrote
in 1996 (using Borland Turbo C++) had an entirely text based interface.
There was a main menu and objects were created by typing in x,y,z
co-ordinates
! You could load and save objects to disk once you created them. A
scene
containing 500 polygons would be considered large due to the memory
allocated
would reach the 640K limit. This version contained many features which
I still haven't implemented in the windows version yet. It included
high
quality mip-map texture mapping, bump mapping, csg (constructive solid
geometry), solid textures, adaptive pixel supersampling (full scene
antialiasing),
and many other features.
Here
is the first windows version which I developed over most of 1997. One
of
the main new features added to this version was that you could load
objects
that were stored in lightwave file format. You could define a curved
camera
path over a series of points and generate an avi animation. It also
contained
a simple text based animation language. I wrote a separate utility that
would create 3-d letters from true type fonts (eg the gallery title).
Some
of the images and animations on this page were created with this
version.
Here is a screen shot from early 1999. I had just
implemented fast display
of solid shaded objects using a z-buffer polygon drawing algorithm. The
software z-buffer polygon drawing algorithm is very fast, I spent a
fair bit of time optimizing it with the profiler.



Heres a few snaps from 1999. It has many advanced GUI features
for manipulating objects.

These are some of the images generated from the programs I developed.
 |
 |
 |
 |
 |
 |
|
|
 |
I created the mesh for the lettering on the left with a
utility I wrote
that allowed creating solid objects from true type fonts. |
|
|
 |
 |
The two cars here were added onto an existing image that I
captured
from my video camera. I added support for alpha channel compositing and
post processing so I could render the cars onto the image slightly out
of focus. I also added support for alpha channel shadows. |
|
Back to http://www.megaderek.com/