Nonuniform rational B-Splines (NURBS) have become a standard primitive for
use in computer aided graphic design [1]. They are, however, inconvenient
to render using ray tracing methods. The simplest approach is to
tessellate the object into a polyhedron as a preprocess and render the
polyhedron. As Martin et al. [1] points out, this is undesirable for two
main reasons: tessellation of the model requires significant memory usage
and can introduce visual artifacts (especially when transparency is
involved).
Martin et al. [1] describe a method for rendering trimmed NURBS surfaces
numerically, without the need for the huge memory overhead that
tessellation requires. I have implemented the method described in this
paper as well as the basic "tessellation" method. I have
compared Martin's numerical method with tessellation for execution time,
memory overhead and image quality.
In addition, an improvement to the method described by Martin et al. is
suggested. We then apply ray tracing of trimmed NURBS to the creation of a
"text" primitive as well as two original models created by the author.
[1] W. Martin, E. Cohen, R. Fish, P. Shirley. Practical Ray Tracing of
Trimmed NURBS Surfaces. Journal of Graphic Tools. 5(1):27-52, 2000.m.