Ability | Degree Implemented | Comment |
Primitives | Spheres, Extrusions, Planes, Bezier Patches, Boxes | Only non-rational beziers supported |
Shaders | Constant, Lambertian, Plastic, Glass | None |
Materials | Anything you like | None |
Trimming | Of planes, with polygons, circles, and squares | Alternating rule used |
Description Language | Support for DEFINEs and INCLUDEs. Hierarchial in nature. | No forward references |
Geometry Import | Can import Houdini style GEO files | Only supports Bezier surfaces, Polygons, and Spheres. |
Cameras | Pinhole, with variance based antialiasing | None |
CSG | Intersection, union, inverse difference, difference, A, B | All primitives work. |
Optimizations | BBox for trims, and objects. Automatic spatial hierarchy generation. | None |
Miscellaneous | Reflections, transparencies, transparency falloff with depth | None |
To give some indication of the flexibility available, a partial listing of projectors is: PROJ_LOAD, PROJ_CHECKER, PROJ_MOVE, PROJ_ADD, PROJ_MULT, PROJ_ABS, PROJ_MIX, PROJ_CLIP, PROJ_NORMALIZE, PROJ_HASH, PROJ_NOISE, PROJ_DNOISE, PROJ_TURBULENCE, PROJ_MAPPROJ_LUT, PROJ_BITMAPPROJ_DIST, PROJ_BUMPMAP, PROJ_SIN, PROJ_TRIPLICATE.
Some of these have been reduced to 256 colours to save space. Some have lost quality in JPEG saving for the same reason. The provided source text is not guaranteed to work with the latest version of my ray tracer, but was used to generate the image.
While all images in the previous raytracer could be recreated, there is no point relisting them here. Instead, only new images are shown. Also, while many of these make reference to external geometry files, such files are not included as they would consume inordinate amounts of disk space.
320x240 | 160x120, AntiAliased | 160x120, Point sampled |
![]() |
![]() |
![]() |
It's a SLUG, damnit. Not a worm! Note the bumpmaps just about everywhere, and the excessive use of geometry. The horn and fangs, furthermore, are a mottled yellow, not a solid colour. Click here for the source