# Tessellation and rendering of trimmed NURBS models in scene graph systems

## Abstract

Today scene graphs are ubiquitous in computer graphics: since they provide both a well suited data structure and an abstraction layer, almost all modern graphics applications employ some sort of scene graph. Unfortunately most scene graphs do not support higher order primitives (such as trimmed NURBS) adequately, even though in Computer Aided Design (CAD) systems the de facto standard surface representation is trimmed NURBS surfaces. This thesis describes how the trimmed NURBS representation can be seamlessly integrated into a scene graph system.

For rendering purposes, geometries in the trimmed NURBS representation are almost always transformed into a polygonal representation. However, since this process is quite complicated if trimming is involved, creating a robust implementation is not straightforward. Another related problem is that when exporting complex NURBS models from CAD/CAM systems the topology information is sometimes lost and is usually very hard to reconstruct. This may result in annoying rendering artifacts when two adjacent surfaces do not join seamlessly.

If rendering is fillrate-limited (e.g. because of the usage of expensive fragment shaders) overdraw can also become a significant problem. One solution for example is to use the occlusion culling capabilities of modern graphics hardware. However, due to the fact that occlusion queries require a complete pipeline flush using too many such queries can even slow down rendering, if the depth complexity of the scene is low.

This thesis focuses on these problems: First a robust tessellation method for individual trimmed NURBS surfaces is presented which guarantees a geometric error threshold between the polygonal representation and the original analytic surface. For dealing with the rendering artifacts caused by incompatible patch boundaries two methods are presented: the first method is based on reconstructing the topological information using the guaranteed geometric tolerance of the tessellation method, and sewing the adjacent surfaces together, producing a watertight (but possibly non-manifold) mesh. The second presented method avoids rendering artifacts between adjacent surfaces by rendering small billboards at surface boundaries using programmable graphics hardware. This method keeps the scene graph hierarchy intact and allows further modifications, but does not produce a single watertight mesh. To deal with the overdraw problem an occlusion culling method is presented, which performs well even in extremely low depth complexity situations and performs at least on par with state of the art occlusion culling methods for high depth complexity scenes. Finally an overview is given on how the most widely used scene graphs support high level primitives (e.g. trimmed NURBS) and the integration into the OpenSG scene graph is discussed.

**Download:** http://nbn-resolving.de/urn:nbn:de:hbz:5N-16145

## Bibtex

@PHDTHESIS{balazs-2008-dissertation, author = {Bal{\'a}zs, {\'A}kos}, title = {Tessellation and rendering of trimmed NURBS models in scene graph systems}, type = {Dissertation}, year = {2008}, month = sep, school = {Universit{\"a}t Bonn}, abstract = {Today scene graphs are ubiquitous in computer graphics: since they provide both a well suited data structure and an abstraction layer, almost all modern graphics applications employ some sort of scene graph. Unfortunately most scene graphs do not support higher order primitives (such as trimmed NURBS) adequately, even though in Computer Aided Design (CAD) systems the de facto standard surface representation is trimmed NURBS surfaces. This thesis describes how the trimmed NURBS representation can be seamlessly integrated into a scene graph system. For rendering purposes, geometries in the trimmed NURBS representation are almost always transformed into a polygonal representation. However, since this process is quite complicated if trimming is involved, creating a robust implementation is not straightforward. Another related problem is that when exporting complex NURBS models from CAD/CAM systems the topology information is sometimes lost and is usually very hard to reconstruct. This may result in annoying rendering artifacts when two adjacent surfaces do not join seamlessly. If rendering is fillrate-limited (e.g. because of the usage of expensive fragment shaders) overdraw can also become a significant problem. One solution for example is to use the occlusion culling capabilities of modern graphics hardware. However, due to the fact that occlusion queries require a complete pipeline flush using too many such queries can even slow down rendering, if the depth complexity of the scene is low. This thesis focuses on these problems: First a robust tessellation method for individual trimmed NURBS surfaces is presented which guarantees a geometric error threshold between the polygonal representation and the original analytic surface. For dealing with the rendering artifacts caused by incompatible patch boundaries two methods are presented: the first method is based on reconstructing the topological information using the guaranteed geometric tolerance of the tessellation method, and sewing the adjacent surfaces together, producing a watertight (but possibly non-manifold) mesh. The second presented method avoids rendering artifacts between adjacent surfaces by rendering small billboards at surface boundaries using programmable graphics hardware. This method keeps the scene graph hierarchy intact and allows further modifications, but does not produce a single watertight mesh. To deal with the overdraw problem an occlusion culling method is presented, which performs well even in extremely low depth complexity situations and performs at least on par with state of the art occlusion culling methods for high depth complexity scenes. Finally an overview is given on how the most widely used scene graphs support high level primitives (e.g. trimmed NURBS) and the integration into the OpenSG scene graph is discussed.}, url = {http://nbn-resolving.de/urn:nbn:de:hbz:5N-16145} }