Rendering and processing parametric, procedurally-defined representations directly.
Traditional graphics represents an object as a triangle mesh. This represents a huge expansion relative to the object’s original CAD description which must be sent from network server or local disk to system memory, and then from CPU to GPU. Moreover, a polygonal tessellation is appropriate only for a limited range of viewing distances. Our research looks at rendering and processing procedural representations directly.
For parametric objects (described as the result of evaluating a function over a simple domain like the unit square), we can tessellate on the GPU so that data is amplified close to where it’s consumed for rendering. By tessellating adaptively given the current view, polygonal artifacts are avoided no matter how close the camera gets to an object. Our work also enables new forms of shape analysis, such as symbolic derivatives and robust CSG (Boolean operations on solid objects).
Shapes: Rendering and CSG using Parametric Descriptions. Each of these objects was created through CSG operations on procedural parametric surfaces. The largest object requires less than 12 kbytes of storage. Only the surface description is required; the normal function is computed automatically using a new efficient symbolic differentiation algorithm (see [symbol]). The parametric functions describing the surfaces are compiled to HLSL code. The GPU evaluates this code to compute position and normal values when the surface is tessellated dynamically. See [shapes].
For implicit objects (described as the solution to a system of equations, often low-order polynomials), we can compute ray intersections directly with the geometry without any polygonal approximation at all. We have developed efficient and robust GPU methods to compute these intersections. The implicit description also lends itself to antialiased rendering, since a display sample’s distance to the shape can be computed analytically.