Fat borders: gap filling for efficient view-dependent LOD NURBS rendering
Introduction
The recent developments in computer-aided design technologies steadily increase the size of geometric models. The enormous size of these models calls for sophisticated rendering techniques that support view-dependent level of detail (LOD), culling techniques and efficient memory management. There are essentially three types of algorithms dealing with this problem:
1. One approach to deal with this problem is to subdivide the models hierarchically into subparts which are simplified and rendered independently. This results in simple yet efficient algorithms. Unfortunately, subdividing models and processing the subparts individually introduces disturbing artifacts due to gaps along the cuts during view-dependent rendering, even if the gaps are less than half of a pixel wide. The reason for this is that the graphics hardware does point sampling, as it is shown in Fig. 7. This remains a problem, even if subsampling is used and several discrete points are sampled instead of the one and therefore the background color is replaced by an interpolated color. This causes flickering in animations, since the exact locations of such gaps keep changing from frame to frame.
2. Continuous LOD approaches employ complex and memory intensive data structures to manage connected triangle meshes over all LODs. Due to the elaborate dependencies of data in these hierarchical data structures the design and implementation of really fast algorithms remain a challenging task. Furthermore, to handle the memory requirements special out-of-core techniques have to be devised. They also have the disadvantage of treating the model as one single object. Therefore, most culling techniques are applicable only at polygon level.
3. Some recent approaches try to overcome the problems of continuous LODs by subdividing the whole object into independent subparts with individual LOD hierarchies. During rendering time appropriate LODs are selected for each subpart and these subparts are geometrically stitched together. This makes it possible to employ culling techniques, but requires a priori connectivity information between the subparts. This connectivity information is usually not present in the model and thus has to be computed in a preprocessing step. Even if this information is already present, the use of dynamic scenes where the connectivity information changes at runtime is not possible, since the computation of connectivity information is too expensive.
In this paper we follow the third approach, but introduce a method that abandons the idea of stitching together different subparts. Instead we suggest to eliminate the gaps by drawing appropriately shaded fat borders along the boundaries of subparts using a vertex program running on state of the art graphics hardware. The only requirement we impose is the knowledge of the approximation error along the boundaries and access to the boundary polylines of the subparts. We neither assume knowledge about the representation of the subparts nor about their adjacency. This gap filling algorithm allows us to devise a simple and efficient view-dependent level of detail rendering algorithm since we do not have to take care of shared triangulations of the subpart borders. Therefore, our method opens new possibilities for the development of further out-of-core simplification and view-dependent rendering algorithms for complex triangle meshes and complex models composed of higher order surfaces.
Using our new approach we are able to visualize dynamic trimmed NURBS models with changing neighborhoods in real-time combining our new gap filling algorithm with an on-the-fly tesselation of the individual trimmed NURBS patches.
Section snippets
NURBS rendering
The rendering of trimmed NURBS surfaces has received a lot of attention from researchers over the last few years due to its industrial relevance. Different approaches emerged for visualization, e.g. ray-tracing the surfaces (e.g. [1]), pixel level subdivision (e.g. [2]), or polygon tessellation (e.g. [3], [4], [5]), of which the triangle-based methods are generally much faster due to recent advances in graphics hardware. While these traditional approaches deal with individual curves or surfaces
The gap filling algorithm
In our new gap filling algorithm, the gaps between adjacent patches introduced by independent triangulations are filled by appropriately shaded fat borders. These fat borders consist of several triangles with predefined connectivity. Their orientation and width as well as their colors are view-dependent and calculated in each frame using a vertex program.
The input for our gap filling algorithm consists of an arbitrary number N of LOD-sets , of independent patches
Application to NURBS models
Our method would also fit nicely into the framework of [6]: one could avoid their computationally complex sewing part and use our solution instead. One of the reason for not choosing this path is that the problem of clustering the model into super-surfaces still remains and it makes it rather difficult to employ this approach to render dynamic models. Instead we tessellate the individuals trimmed NURBS patches independently with a guaranteed approximation error on the fly and fill the emerging
Results
We applied our method to render static and dynamic NURBS models, using normal maps [16]. Our implementation generates 2 vertices for each boundary vertex during the fat border generation, as described in 3.2. We have chosen 0.5 pixels as εimg which means the gaps between the patches can be at most one pixel wide. Nevertheless, our method still provides a considerable improvement in image quality.
Since we are able to use standard culling techniques we implemented viewfrustrum culling and
Conclusions and future work
In this paper we described a novel method for efficient view-dependent LOD rendering via gap filling. We introduced the notion of “fat borders”, a rendering aid that covers the cracks between unconnected components of complex models which have different LOD levels. We have proven that while using our technique has a negligible effect on the framerate, it is effective in hiding LOD artifacts that arise on the borders of unconnected subparts of complex models.
Our implementation runs on an Athlon
Acknowledgements
This project was partially funded by the German Federal Ministry of Education and Research (BMBF) under the project of OpenSG Plus. We thank Volkswagen for providing us with the trimmed NURBS models.
We thank ATI for kindly providing us with a Radeon 9700 Pro graphics board prior to its official release.
We would also like to thank Andreas Schilling for many fruitful discussions on this topic.
References (16)
- Nishita T, Sederberg TW, Kakimoto M. Ray tracing trimmed rational surface patches. In: Baskett F. editor. Computer...
- Shantz M, Chang S-L. Rendering trimmed nurbs with adaptive forward differencing. In: Dill J. editor. Computer graphics...
- Herzen BV, Barr AH. Accurate triangulations of deformed, intersecting surfaces. In: Stone M.C. editor. Computer...
- Rockwood AP, Heaton K, Davis T. Real-time rendering of trimmed surfaces. In: Lane J. editor. Computer graphics...
- Forsey DR, Klassen RV. An adaptive subdivision algorithm for crack prevention in the display of parametric surfaces....
- Kumar S, Manocha D, Zhang H, Hoff KE. Accelerated walkthrough of large spline models. In: 1997 Symposium on Interactive...
- et al.
Geometry based triangulation of multiple trimmed NURBS surfaces
Computer-Aided Design
(2001) - Guthe M, Meseth J, Klein R. Fast and memory efficient view-dependent trimmed NURBS rendering. In: Proceedings of...
Cited by (9)
Filling trim cracks on GPU-rendered solid models
2013, CAD Computer Aided DesignCitation Excerpt :Modeling kernels assign a unique ID to each surface of the model internally.) Next, similar to previously proposed “fat edge/lines” approaches [8,6], we draw triangle-strips around the model edges. However, in contrast to those approaches, our algorithm only selectively renders portions from these triangle-strips in the third stage–to avoid introducing additional artifacts yet filling all the cracks–resulting in a clean, watertight appearance.
A methodology for solid modelling in a virtual reality environment
2005, Robotics and Computer-Integrated ManufacturingCitation Excerpt :A fundamental problem for solid modelling in a virtual environment is model representation. In the graphics and VR community, active research projects on model decimation, multi-resolution, level-of-detail management and zone culling are currently being carried out [39–41]. Comparatively little research has been conducted for accommodating precise CAD models in a VR environment [42,43].
An effective RGB color selection for complex 3D object structure in scene graph systems
2020, International Journal of Electrical and Computer EngineeringEfficient and anti-aliased trimming for rendering large NURBS models
2019, IEEE Transactions on Visualization and Computer GraphicsCrack-free rendering of dynamically tesselated B-rep models
2014, Computer Graphics ForumHardware accelerated multi-resolution geometry synthesis
2006, Proceedings of the Symposium on Interactive 3D Graphics