This thesis describes a method for the creation and smooth-shading of Steiner patch tessellations. The software which implements the tessellation method is incorporated into the geometric preprocessor of the ray-tracer of the rendering subsystem of The Clockworks. Steiner surface smooth-shading is implemented in a subroutine in The Clockworks' ray-tracer, BART. The Clockworks is a general-purpose visual simulation software system being developed at RPI's Center for Interactive Computer Graphics. The final output of The Clockworks is a sequence of computer-generated images of user-specified quality which simulates the motion of 3-D objects. The purpose of the geometric preprocessor is to prepare high-order biparametric surfaces for ray-tracing by approximating them with triangular quadratic patches - Steiner patches.
The project can be divided into three major subprojects. The first subproject is the creation of an algorithm to approximate arbitrary high-order biparametric surfaces (HOBSs) with Steiner patches. The second subproject is the implementation and testing of the algorithm on a particular HOBS - superquadrics. The final part of the project is the development and implementation of the smooth-shading algorithm.
With the knowledge that a Steiner patch can be represented as a quadratic triangular Bernstein-Bezier patch, a method for calculating the Bernstein-Bezier control points of a Steiner patch was produced. The first three control points of the Steiner patch are on the approximated surface. The other three are calculated by intersecting the tangent planes at the corner points with a third plane for each edge of the Steiner patch. The third intersection plane can be defined in a number of ways. The intersection of these three planes along each edge gives the final three control points needed for the definition of a Steiner patch. Smooth-shading of the patches can be attained through normal vector interpolation.
The algorithm was first implemented to approximate superquadric shapes. Superquadrics were the first primitive implemented in The Clockworks' geometric subsystem. So it was reasonable to first attempt superquadric approximation in the geometric preprocessor. Superquadrics' spherical parameter space presented a mild complication. It encouraged the development of routines which are, for the most part, independent of the parameter space of the approximated primitive. Little difficulty is expected in implementing other high-order biparametric surfaces in the geometric preprocessor in the future.