CHANGES AND ADDITIONS
A list of the major things that have been changed or added since the previous project:
- Transparency with refraction
- Total internal reflection
- Used the Fresnel equations to get the proper transmission and reflection coefficients
- New objects:
- Flat polygons, points can be non-planar (i.e.: 5-point star may be specified w/ 5 points)
- Specialized quadrics: ellipsoid, cylinder, and cone
- Inverse spherical mapping for pigment and bump maps
- Smart pointers for all objects and textures to avoid memory leaks
- Support any image format that ImageMagick can handle (read and write)
- Started a framework for animation (linear splines are implemented)
- Rewrite of materials/textures using POV-Ray as a guideline
- Separates pigment, normal, and finish
- Nested patterns
- Additional matrix functions that made development easier
- A few bug fixes and improvements
- All of the known bugs in the previous project were fixed
-
One major speed improvement: using vector multiplication instead of division
for boxes and bounding boxes sped up rendering the chess scene by about 30%
(rendering time went from roughly 1:35 to 1:05 (that's minutes:seconds) on
an AMD Athlon64 X2 4400+ with adaptive anti-aliasing). That's HUGE for such
a simple change!
OMISSIONS
I had to leave out a few things this time...mainly the convex quadrilateral inverse
mapping and an external scene description parser. I just ran out of time. I'll
get them next time around.
IMAGES
This one shows the nested pigment patterns:
This one shows pigment maps and polygons:
This one shows pigment maps, bump maps, refraction, and reflection:
Click here to download the source code
(authorization required)