View-dependent Refinement of Multiresolution Meshes Using Programmable Graphics Hardware <CGI special issue>

Size: px
Start display at page:

Download "View-dependent Refinement of Multiresolution Meshes Using Programmable Graphics Hardware <CGI special issue>"

Transcription

1 The Visual Computer manuscript No. 642 (will be inserted by the editor) JUNFENG JI 1,3,4, ENHUA WU 1,2, SHENG LI 1,5, XUEHUI LIU 1 View-dependent Refinement of Multiresolution Meshes Using Programmable Graphics Hardware <CGI special issue> 1 State Key Lab. of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing, China 2 Department of Computer and Information Science, Faculty of Science and Technology, University of Macau, Macao, China 3 Graduate University of Chinese Academy of Sciences, Beijing, China 4 State Information Center, Beijing, China 5 School of Electronics Engineering and Computer Science, Peking University, Beijing, China jijfn@cei.gov.cn, ehwu@umac.mo, lisheng@graphics.pku.edu.cn, lxh@ios.ac.cn, vertex texturing, and then the node culling and Abstract View-dependent multiresolution rendering triangulation can be performed in the vertex shaders. Our demands a heavy load on CPU. This paper presents a new approach can generate adaptive meshes in real time, and method on view-dependent refinement of multiresolution can be fully implemented on GPU. The method improves meshes by using the computation power of modern the efficiency of mesh simplification, and significantly programmable graphics hardware (GPU). By the method, alleviates the computing load on CPU. two rendering passes are included. During the first pass, the level of detail selection is performed in the fragment Keywords: View-dependent multiresolution rendering, shaders. And the resultant buffer from the first pass is Level of Detail (LOD), Quadtree, Texture atlas, Graphics taken as the input texture to the second rendering pass by Processing Unit (GPU). 1 Introduction Multiresolution rendering is an efficient approach to accelerating the rendering of large models in real-time applications. To perform the multiresolution rendering, we need to build a hierarchical structure, implemented by mesh simplification [15, 21]) or level of detail (LOD) methods [8, 9]. View-dependent multiresolution rendering needs to perform LOD selection dynamically, and requires intensive computation for the on-the-fly tree traversal and re-triangulations, which induces a heavy load on CPU. It becomes desirable that if a part or large part of the load in this processing could be migrated from CPU to the programmable graphics hardware. Programmable graphics hardware, or GPU (Graphics Processing Unit), is a flexible programmable processor for graphics rendering, and has powerful computational ability from its parallel processing architecture. The vertex shaders in conventional GPU operate on each vertex independently, and the fragment shaders gather data from texture read operation, and process data on each fragment. With the support of float-point types for the rasterization pipeline, the geometry itself is allowed to flow through the GPU as a texture signal. The fragment shaders

2 gather data through texture accesses, where texture elements (texels) are organized into regular grids. Surface geometry is traditionally represented using irregular triangle meshes, but processing the irregular meshes is a daunting task for a fragment shader program. To perform geometry processing on GPU, the representation of the 3D surfaces needs to be converted into the regular form. The geometry images introduced by Gu et al [6] represent an arbitrary surface using a regular 2D grid sampling, which allows geometry to flow more naturally as a signal through the current GPU architecture. To permit this sampling, the surface is parameterized onto a square using a network of cuts. The cuts can result in complicated continuity constraints along the boundary of the square domain. Poly-cube maps [20], an extension of the cube map, can generate smooth atlas for arbitrary meshes. In this paper, we present an efficient multiresolution rendering framework for view-dependent LOD generation and rendering of large triangle meshes by using the programmable graphics hardware. The key point in our approach is to use a quadtree-based LOD structure, which is constructed from the geometry images, and then all the nodes in the quadtree are packed into a mipmap-like texture atlas, called LOD atlas textures. Since the multiresolution structure of the models is available to GPU in our approach, view-dependent refinement of multiresolution meshes can be done on GPU fully. The presented algorithm performs view-dependent level of detail on fragment shaders, and the adaptive meshes can be generated on vertex shaders dynamically. Because several fragment shaders in the GPU operate in parallel, there is significant opportunity for speed-up over a sequential CPU computation. Meanwhile, it substantially reduces the workload of CPU. Another advantage of our approach is that the data transmission through graphic bus would be reduced greatly, and thus higher efficiency could be achieved. 2 Previous Work Multiresolution rendering techniques have been investigated for many years. Various mesh simplification and LOD approaches have been proposed, such as progressive meshes [8, 9], hierarchical dynamic simplification [15]. These approaches consume much CPU resources at run-time, and it is difficult to transfer them onto GPU due to their complex data structure. Irregular meshes can be converted into those with (semi-) regular connectivity by surface parameterization and re-meshing, and multiresolution representation can be constructed from regular meshes by subdivision. Eck et al [4] and Lee et al [12] built regular triangular subdivision mesh from arbitrary meshes. The simplicity of regular meshes is amiable to the pipeline of graphics hardware. Terrain data sets in Digital Elevation Models (DEM) have a regular grid structure, and quadtree based hierarchical multi-resolution triangulations were studied for adaptive triangulation of DEM models [13, 16]. It is proved that quadtree based LOD methods are very efficient in terms of LOD selection, triangulation and rendering performance. DEM is similar to the texture in structure, and fits the GPU processing well. Several GPU-accelerated approaches to multiresolution rendering for terrain models have been proposed [3]. Gu and Hoppe et al [6] proposed the geometry image (GIM), a completely regular representation of 3D models. By the scheme, surfaces are converted into a topological disk using a network of cuts, and the surface geometry is mapped and sampled regularly in square or rectangle on parameter plane. The GIM s regular structure is similar to DEM, and thus the quadtree based LOD structure could be used naturally.

3 To alleviate the limitation on shape modelling, Sander et al [19] cut the surface as a series of topologically disk-like patches, or charts, and construct a multi-chart geometry image (MCGIM). However, the adjacent charts must be zippered or stitched together by a processing algorithm. To tackle this problem, Losasso et al [14] and Hoppe et al [10] created the smooth geometry images by spherical parameterization. Tarini et al [20] extended the cube-maps to poly-cube maps to deal with high-genus meshes [1, 3]. Point representations completely lack topological information [17, 18], so level of detail can be adapted easily by adding or removing single point. QSplat [18] uses a hierarchy of bounding spheres for LOD control and points-based rendering. In order to select the level of detail on the graphics processor, the hierarchical structure of QSplat is converted into a sequential data structure, called sequential point tree (SPT) [2]. SPT allows adaptive rendering of point clouds completely on the vertex processor. Although it can be extended to hybrid point-polygon rendering, it is still hard to process the adaptive mesh with topological connections. Recently introduced GPUs by Matrox and nvidia allow texture fetch within the vertex shaders, called vertex texturing [5]. The feature can be used to implement displacement mapping in hardware. Our algorithm employs vertex texturing to perform LOD culling and triangulation in the vertex shaders. 3 Conceptual Overview The goal of the presented approach is to utilize the parallel computation ability of modern programmable graphics hardware. However, GPU is a stream processor, and has distinct difference from CPU in programming architecture. The hierarchical representation and recursive traversal algorithm for multiresolution rendering implemented on CPU could not be transferred onto GPU directly. Therefore the data structure and algorithm for LOD selection on GPU must be designed dedicatedly [11]. 3.1 Geometry Images The presented algorithm would process the surface geometry on fragment processor, whose input data structure is texture. Geometry image (GIM) [6] is a texture-like representation of surfaces using a network of cuts and surfaces parameterizations. A pixel in the geometry image maps the 3D coordinates of a vertex of the meshes in object space, and four neighbouring pixels correspond to a quadrilateral on the surface in the object space. The GIM could fit well for the fragment shaders, and thus the geometry signal of a surface model can be sent to GPU by the float-point texture. The boundary pixels on GIM correspond to the cut on the surface. This results in complicated continuity and makes the LOD selection to be uncontrollable in the fragment shaders. To cut down extra work on the boundary stitching, we convert the arbitrary meshes into smooth multi-chart geometry images, which combine the features of smooth geometry images [14, 10] and multi-chart geometry images [19]. The creation of smooth multi-chart geometry images can be done by using poly-cube maps [20], a generic extension of cube maps. A poly-cube is a shape composed of axis-aligned unit cubes that are attached face to face. Its shape roughly resembles the given mesh, and then the meshes can be projected on its faces. Fig 1(b) is the poly-cube model of Fig. 1(a). The faces of a poly-cube can be cut and mapped onto the 2D parameter space, as shown in Fig. 1 (c). Since the boundary of the neighbouring charts are sampled in the same density and direction, the boundary could be stitched exactly (see Fig. 1 (d)), and thus a smooth geometry image atlas can be obtained.

4 (a) The original model (b) The poly-cube (c) The smooth GIM Fig. 1: Smooth geometry images (d) Remeshed model 3.2 GPU-based Multiresolution Representation To perform multiresolution rendering on GPU, we construct a quadtree-based multiresolution representation from geometry images, called P-Quadtree. The traversal of the quadtree can be implemented simply on CPU. However, it is difficult to be implemented on GPU. Although implementation could be done by a multi-pass rendering approach [1], the cost in render setting, and a large amount of data transmission over the graphics bus would be a heavy penalty. Our strategy to solve the problem is to stack each level of quadtree into a flat texture, called LOD atlas texture, as shown in Fig. 2. Each pixel in the atlas texture maps a unique node in the quadtree, so that the LOD selection can be implemented in a single rendering pass, and then the parallel computation power of the GPU can be utilized. LOD atlas texture is a new multiresolution representation of the geometric model. There are four textures for a model, including the normal map, the geometry map, the LOD parameter map and the index map. The geometry map and the normal map store the centre position and the normal of the nodes, which can be generated by the geometry image and the normal map of the vertices. These two maps are utilized to perform backface culling in view-dependent LOD selection. The LOD parameter map is used to store the node s LOD error, the normal cone and the radius of the bounding sphere of the node. The normal cone and the radius of the bounding sphere are also used for backface culling. The node s error is the metric for LOD selection. Because each node is performed independently in the fragment shaders, it may induce a new problem. If a node with its error below the LOD threshold is selected, all its children (or its sub-tree) would also be selected, and results in many redundant nodes selected. To combat this problem, the parent node must have been tested before the node itself is tested. If the parent node were selected, current node would be redundant, and must be discarded. The index map keeps the index of the parent node s parent, and facilitates addressing the hierarchical structure in the fragment processor. Fig. 2: The LOD atlas texture (GIM atlas) Beside LOD atlas texture, the triangle meshes need to feed GPU in the final rendering pass. Therefore, the nodes in the quadtrees should be converted into sequential form, called sequential nodes trees, whose structure is similar to that of Sequential Points Trees [2]. Each element in the sequential nodes trees is a quadtree node, whose shape is a triangle fan.

5 3.3 Algorithm Overview The whole process of our approach includes two stages: the preprocessing stage, an off-line stage to construct data structure, and the run-time stage to perform the LOD selection and render the models on GPU (see Fig. 3). Setting up the LOD atlas textures from a poly-cube model is in the preprocessing stage. It is composed of four steps: poly-cube creation, regular re-sampling to build smooth GIM atlas, P-Quadtree construction and LOD atlas texture conversion. This process is as shown in Fig. 3(a), and we will explain these steps in section 4. Multiresolution rendering is performed on GPU in runtime stage. It includes two passes. The first pass is used to perform the LOD selection, and all nodes are checked by a series of LOD tests with a fragment program in this pass. The triangulation and the final rendering are done in the second pass (see Fig. 3(b)). In this pass, the resultant buffer of the first pass is mapped to the vertices of the nodes using vertex texturing, and then the vertex program performs nodes culling and triangulation. Then the adaptive mesh is generated and rendered. Section 5 will examine this stage in detail. 3D Model Projection & Parameterization Poly-Cube Maps Mapping & Re-sampling Smooth GIM Atlas P-Quadtree Stacking LOD Atlas (a) The process to create LOD atlas textures LOD Atlas Textures Drawing a Rectangle & Mapping the Textures LOD Selection in the Fragment Shaders Pass 1 LOD Buffer Nodes of P-Quadtree Mapping Rendering Nodes Culling & Triangulation in the vertex Shaders Pass 2 Final Image (b) The pipeline for LOD selection and rendering Fig. 3: Diagram overview of our approach 4 Preprocessing The purpose of preprocessing is to convert the arbitrary meshes into the GPU-based multiresolution representation, including LOD atlas texture and the sequential nodes trees. 4.1 Smooth GIM Atlas Creation Firstly, the arbitrary meshes need to be converted into the smooth multi-chart geometry images, and then the poly-cube map is constructed. The poly-cube can be obtained by the semi-automatic technique introduced in [20]. In order to map the mesh to 2D parameter space, the faces of the poly-cube must be cut into planar faces, i.e. the charts. Tarini et al [20] subdivide the 3D texture space into cubic cells, and each cell is cut to be several face-lets. However, it is not suited well for LOD selection. We cut the ploy-cube along its edges and produce larger charts (see Fig. 4 (b)). After the poly-cube faces are cut into the charts, which may be square or rectangle in shape, the charts can be packed into a square or a rectangle on the parameter plane. Although the rectangle charts could result in a fewer number of charts, it is not a trivial work to pack the charts

6 into a 2D texture efficiently. Both schemes can be used in our approach. Though chart packing is a NP-hard problem, regular squares can be packed by the heuristic approximation. We first sort the charts by their size in descending order, and the charts with the same level are organized in one group. The charts in groups are packed into a bounding box one by one (see Fig. 4 (b)). Once the charts are packed into a square or a rectangle, the 2D grid sampling is performed to generate the geometry images. The sampling density of the edges must be matched with the corresponding edges in the neighbour charts. The sampled dimension of the chart in GIM pixels should be 2 m +1 to improve efficiency of quadtree traversal, where m is an integer. of the node, and r is the radius of its bounding sphere. According to the states of edge vertices (activated or not), the node can be efficiently triangulated, and its rendering can be accelerated in hardware by using a triangle fan. So the node is chosen as the basic rendering primitive in our approach. We construct quadtree top-down. The node attributes, such as radius of the bounding sphere, normal and the angle of normal cone (see Fig. 5(c)), are computed during the quadtree construction. These attributes will be utilized in the following step towards LOD tests n SW n NW C n C n NE n SE n C α r (a) Parameter space; (b) Object space; (c) Normal cone (a) The cutting scheme Fig. 4: The faces cutting of the poly-cube (b) The packing result 4.2 P-Quadtree Construction P-Quadtree can be constructed from the geometry images directly. Construction of quadtree requires the size of square in sampling to be (2 m +1) (2 m +1). The dimension of the square charts must meet this requirement. We construct the quadtree for each chart separately. A node in the presented algorithm is a 3 3 pixels block in geometry images, whose structure in parameter space is shown in Fig. 5(a). It contains 9 vertices, including 1 centre vertex (0), 4 corner vertices (2, 4, 6, 8) and 4 edge vertices (1, 3, 5, 7). Fig. 5(b) shows the quadrilateral in object space of the node, where n is the normal vector Fig. 5: The structure of a node Since the presented algorithm generates adaptive meshes dynamically, T-junction may appear when states of the edge vertex on both sides of the adjacent squares are not at the same level. A mesh containing T-junction tends to produces cracks in rendering. To overcome the artifacts, the restricted quadtree triangulation (RQT), an adaptive triangulation introduced in [7] to tessellate parametric surfaces, is used in our algorithm. RQT subdivision is constrained such that the levels of adjacent quadtree nodes differ by at most one, as shown in Fig. 6. To ensure the quadtree is restricted in our LOD algorithm, we construct the quadtree by pre-computing the error of the nodes. The error of a node is not only greater than that of its own children, but also greater than that of its adjacent nephew nodes 1. For example, the error of node C 1 The nephew nodes of a node are its adjacent siblings children.

7 must be greater than the node A and B, which are southern nephew nodes of C in south edge (see Fig. 6). Whether an edge vertex is activated can be determined by the state of its nephew nodes, which can be obtained by two texture-lookup instructions. Because of the smooth geometry images, the nephew of the boundary nodes in the quadtree can be found in the adjacent chart, and then the boundary nodes can be processed in the same way to the interior nodes. Thus the adaptive mesh can be obtained. Bad B C A Level n Level 1 Level 0 Fig. 7: P-Quadtree Stacking Level 0 5 GPU Implementation Level 1 This Section is the core of our approach. Section 5.1 gives the details in performing view-dependent LOD on the fragment shaders, and Section 5.2 explains how to cull the nodes and triangulate the meshes on the vertex shaders. Fig. 6: Restricted Quadtree Triangulation 4.3 P-Quadtree Stacking In order to implement the LOD selection on the fragment shaders efficiently, all nodes in the quadtree are packed into a LOD atlas. The hierarchical structure of P-Quadtree needs to be converted into flat textures to fit the architecture of the fragment shaders. Since the geometry image atlas is a square or a rectangle, we can stack all levels of quadtree side by side, as shown in Fig. 7. A quadtree node, or a 3 3 pixels block in GIM, is mapped onto one pixel in the LOD atlas. The bottom level of quadtree in the LOD atlas (level 0) is half of GIM atlas, and the size of level 1 is the half size of level 0, and so on, until the root s size is 1. All of the nodes can be stacked in a rectangle with ratio in 1: 1.5 (See Fig. 7). Sequential nodes trees can be constructed by a top-down traversal of P-Quadtree. This process is similar to the conversion of the hierarchical QSplat trees [18] into sequential point trees [2]. 5.1 LOD Selection The LOD atlas textures flow to the fragment shaders by drawing a square or a rectangle, whose pixels are 1-1 mapping to the texels of LOD atlas textures. The error threshold for LOD test is computed from the viewpoint on CPU, and is passed to fragment program through a parameter register. We perform the LOD selection using a fragment program, which includes a series of LOD tests. The test result is stored in a buffer, called the LOD buffer. Although the result of a node selection is a Boolean data, the LOD buffer should be in float-point data format for vertex texturing. The fragment program tests each fragment. Firstly, we discard the null texels by conditionally killing the corresponding fragment. To skip the null texels in the test, it requires to assign a special value to the parent s index of the null texels. Since we stacked the level 0 of P-Quiadtree at the coordinate origin of the texture (see Fig 7), (0, 0) can be employed as the special value. For all of the valid nodes, the LOD test would be performed. The error threshold for LOD test is

8 read from the parameter register. If the error of a node exceeds the threshold, the node is discarded; otherwise the node is tested in the following tests. As each node is tested independently in parallel, it induces a new problem. If a node with its error below the LOD threshold is selected, all its children (or its sub-tree) would also be selected, and results in many redundant nodes selected. This problem can be solved by performing two LOD tests for each node. One is used to test its parent, and the other to test itself. If the parent of a node is passed the test, the node should be a redundant node, and must be discarded; otherwise we perform the LOD test for the node itself. We use the index map to address the parent node in the fragment program. Once a node passed the LOD selection, the visibility culling would be performed. We perform backface culling using the normal and the normal cone. The backface can be determined by using the following criterion proposed in [15]: α + β + θ < π /2 (1) where α and β are the angles of normal cone and viewing cone separately, and θ is the angle between the center vectors of normal cone and viewing cone (see Fig.8). These angles can be estimated in the fragment program using an approximate approach. If a node passes all the tests above, it is a selected node. The test result is output to the LOD buffer. In our implementation, P-Buffer is served as the LOD buffer, and so the render-to-texture techniques can be employed to send the output to the next rendering pass. Bounding sphere β Fig. 8: Backface culling [15] Viewing cone Normal cone θ 5.2 Nodes Culling and Triangulation The LOD buffer generated from the first pass is applied to the rendering nodes in the final rendering pass to cull the discarded nodes and triangulate the selected ones in the vertex shaders. During this pass, Sequential nodes trees are sent to GPU one by one. The nodes are drawn in object space by using triangle fans. To apply the LOD selection result to the nodes, the LOD buffer is required to be accessible to the nodes. However, reading the buffer back into host memory and sending the result back to the graphics card would be prohibitively expensive. We use the render-to-texture technique to send the LOD buffer to the second pass, and then map LOD buffer to vertices of the nodes by using vertex texturing in the vertex shaders to cull the nodes that fail to be selected. Nodes culling. We perform nodes culling by processing their vertices. A pixel in the LOD buffer corresponds to the LOD selection result of a node, and maps to all vertices of the node. Each vertex is tested by the pixel s (or texel s) value mapped from the LOD buffer. Vertices that passed the test would keep intact, but those failed in the test are culled by moving them to infinity. A node would be culled when all of its vertices have failed the test. Mesh triangulation. The presented algorithm requires generating adaptive meshes view-dependently. This may cause T-junction between the adjacent nodes with different levels. We must triangulate the node after the node culling. The vertex shaders process each vertex independently, and thus each node must be triangulated based on its local information. As the restricted quadtree triangulation in our approach is in constraint that the levels of adjacent quadtree nodes differ by at most one, only the 4 edge vertices (the white dot 1, 3, 5 and 7 in Fig. 5(a)), located in the middle of the

9 node s edge, need to be checked. The other vertices can skip over this test stage Fig. 9: Triangulation in the vertex shader Since it is hard to delete or add a vertex in the vertex shaders, we send all the 9 vertices of the node to GPU, which can be implemented by drawing a triangle fan. The 4 edge vertices have two different position attributes: one is for itself, and the other is for a corner. If the edge vertex is not activated, we move it to the position of that corner, and thus the vertex seems to disappear. For example, the vertex 1 could be moved to corner vertex 2, and 3 to 4, etc (see Fig 9). That corner s position can be sent to the vertex shaders by a generic attribute input register. To test whether an edge vertex is activated, we check the state of its nephew nodes adjacent to the vertex (see section 4.2). As we use the restricted quadtree, only 1 level below the current level needs to be tested, so there are only two adjacent nodes need to be tested. Their states can also be looked up from the LOD buffer, and can be determined by two sets of coordinates for the edge vertex. The result of the vertex program is fed to the rasterization pipeline. The lighting can be computed in the vertex shaders or in the fragment shaders, and the final image of the model is generated. windows 2000 operating system. The GPU program described above are implemented by NVIDIA s OpenGL extension. All the test cases run on a PC with a 2.8GHz Pentium 4 processor with 2G DRAM having an NVIDIA GeforceFX 5950 GPU supported by 256MB of DDR RAM. Fig. 10 shows the different stages of our approach. The image of the LOD buffer in the first pass is shown in (a), where the red pixels are the selected nodes and the others are discarded or invalid. It shows that most of the nodes are culled. After culling and triangulation of the nodes, the resultant mesh s structure in the parameter space is as shown in (b). The red dots are the centre of the nodes, and the blue lines draw the structure of the selected nodes. The discontinuity of the mesh is due to the backface culling. To demonstrate clearly, we use lower resolution GIM (54,465 GIM atlas pixels) and medium error threshold. It also shows that the restricted quadtree triangulation generated. The final rendered result in the object space is shown in (c) and (d). Our algorithm is able to generate the adaptive meshes dynamically according to the viewpoint. Fig. 11 shows the rendering result of Bunny at different viewing distances. As the model recedes further, more decimated level of the hierarchy is chosen and the number of the selected nodes is reduced with a higher frame rate. The rendering result of the model with high genus is shown in Fig. 12. Multiple models can be packed into a single LOD atlas, and can be processed by our approach (see Fig. 13). 6 Results and Discussions We have implemented the data processing pipeline by using VC++ and OpenGL under

10 (a) The image of the LOD buffer after the first pass. Each pixel is a node (the red pixels are the selected nodes, in 1,445 among the total number of 18,083 nodes) (b) The adaptive meshes in the image domain generated by the selected nodes Fig. 11: Bunny at different viewing distances. Left: Close range (11,521 nodes). Middle: At a distance (2,968 nodes). Right: Even further away (1,337 nodes). (c) The generated mesh (d) The rendering result Fig. 10: The results at different stages The performance of our algorithm is summarized in Table 1. It shows that the GPU implementation is about one order of magnitude more efficient than the corresponding CPU implementation, and it is also more efficient than the tree traversal approach on CPU. Moreover, the CPU load is also reduced. For the large datasets, CPU load of our approach is increased due to the limitation of the video memory. By using NVIDIA's SLI (Scalable Link Interface) multiple-gpu technique, the performance of our algorithm may be doubled due to its highly parallel computing feature. Fig. 12: Rendering results of model with high genus. The left image is rendered using 1,436 nodes, and the right one is rendered by using 500 nodes. The total number of the nodes is 34,108 Since the multiresolution representation of the geometric model is fully available on GPU, most of the work can be done on GPU, and CPU just need to send rendering functions and a few parameters. So the data transmission would be minimal through graphics bus. The memory usage of our algorithm is very low, as shown in Table 1.

11 Table 1: Performance of our LOD selection algorithm Models Laurana Bunny Laurana & Armadillo # Charts Valid GIM Pixels 54, , ,496 Total nodes 18,083 96,210 93,116 Our GPU implementation Time (ms) CPU load 4-8 % 10 17% 14-26% Fig. 13: The multiple models rendering results. Laurana and Armadillo are packed into a single atlas. The left image is rendered by using 24,950 nodes, and the right one is rendered by using 7380 nodes In our current implementation, we fetch the LOD buffer from GPU, and assign the result to the nodes and their vertices. This process is expensive (about 0.7 to several ms). For the latest GPU, such as NVIDIA GeforceFX 6xxx (NV40 GPU), the result can be mapped onto the vertices of the nodes directly in the vertex shaders, so the performance could be expected to have further improvement greatly. Our LOD approach also has limits in the scope of the applicability. If the topology of a mesh is too complex or has features at very different scales, it is not efficient to represent by poly-cube maps. Another limit is the size of video memory and the data-transmission rate of graphics bus. Larger memory and PCI Express interface would be expected to deal with larger datasets more efficiently. 7 Conclusion and Future Work We have brought forward a new method to refine multiresolution meshes view-dependently by Our CPU implementation Tree traversing on CPU Time (ms) CPU load ~43% ~70% ~75% Time (ms) CPU load 25 33% 50 75% % using modern programmable graphics hardware. The results have proved that the method is robust and efficient, and the computing load of CPU is also alleviated. The presented algorithm can produce the adaptive tessellation for the detailed surfaces dynamically, and could be fully implemented on GPU. Due to the quadrilateral structure, one of our future works may be to extend our approach to complex scenes, so that adaptive tessellation for radiosity computation may be implemented on GPU. Because of the limits of the vertex shaders, we merge vertices to suppress the T-junction. This could cause the generation of degenerated triangles. Although we have not seen apparent popping or aliasing effects in our current implementation, there might be the problem in the photo-realistic rendering. We use only one channel of LOD buffer to save the result (a Boolean data type). Therefore,

12 it is possible to do more complex operation in the fragment program for LOD selection. Acknowledgements The work is supported by the National Fundamental Research Grant of Science and Technology (973 Project: 2002CB312102), NSFC ( , , ), and the Research Grant of University of Macau. References 1. Bogomjakov A, Gotsman C (2004) GPU-Assisted Z-Field Simplification. 3D Data Processing, Visualization and Transmission 2004: Dachsbacher C, Vogelgsang C, Stamminger M (2003). Sequential Point Trees. Proceedings of SIGGRAPH 2003, pp , Dachsbacher C, Stamminger M. Rendering Procedural Terrain by Geometry Image Warping. Eurographics Symposium on Rendering Eck M, DeRose T, Duchamp T, Hoppes H, Lounsbery M and Stuetzle W (1995) Multiresolution Analysis of Arbitrary Meshes. Proceedings of SIGGRAPH 1995, pp Gerasimov P, Fernando R, Green S (2003) Shader Model 3.0 Using Vertex Textures. Technical White Paper, NVIDIA Corporation. 6. Gu X, Gortler S, Hoppe H (2002) Geometry Images. Proceedings of SIGGRAPH 2002, pp Herzen B, Barr A. Accurate (1987) Triangulations of Deformed, Intersecting Surfaces. Proceedings SIGGRAPH 1987, pp Hoppe H (1996) Progressive Meshes. Proceedings of SIGGRAPH 1996, pp Hoppe H (1997) View-dependent Refinement of Progressive Meshes. Proceedings of SIGGRAPH 1997, pp Hoppe H, Praun E (2005) Shape Compression Using Spherical Geometry Images. Advances in Multiresolution for Geometric Modelling. Springer, pp Ji J, Wu E, Li S and Liu X (2005). Dynamic LOD on GPU. Proceedings of CGI 2005, June 2005, Stony Brook, New York, USA, pp Lee A, Sweldens W, Schroder P, Cowsar L, Dobkin D (1998) MAPS: Multiresolution Adaptive Parametrization of Surfaces. SIGGRAPH 1998, pp Lindstrom P, Koller D, Ribarsky W, Hodges L, Faust N, Turner G (1996) Real-time, Continuous Level of Detail Rendering of Height Fields. Proceedings. of ACM SIGGRAPH 1996, pp Losasso F, Hoppe H, Schaefer S, Warren J (2003) Smooth Geometry Images, Proceedings of the Eurographics/ACM SIGGRAPH symposium on Geometry processing. 15. Luebke D, Erikson C (1997) View-Dependent Simplification of Arbitrary Polygonal Environments, Proceedings of SIGGRAPH 1997,pp Pajarola P (1998) Large Scale Terrain Visualization Using the Restricted Quadtree Triangulation. Proceedings IEEE Visualization 98, pp Pfister H, Zwicker M, Baar J, Gross M (2000) Surfels: Surface Elements as Rendering Primitives, Proceedings of SIGGRAPH 2000, pp Rusinkiewicz S, Levoy M (2000) QSplat: A Multiresolution Point Rendering System for Large Meshes, Proceedings of SIGGRAPH 2000, pp Sander P, Wood Z, Gortler S, Snyder J, Hoppe H (2003) Multi-Chart Geometry Images. Eurographics Symposium on Geometry Processing 2003, pp Tarini M, Hormann K, Cignoni P, Montani C (2004) PolyCube-Maps. Proceedings of SIGGRAPH 2004, pp Xia J, Varshney A (1996) Dynamic View-dependent Simplification for Polygonal Models. Proceedings of IEEE Visualization 1996, pp

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and

More information

Parameterization of Triangular Meshes with Virtual Boundaries

Parameterization of Triangular Meshes with Virtual Boundaries Parameterization of Triangular Meshes with Virtual Boundaries Yunjin Lee 1;Λ Hyoung Seok Kim 2;y Seungyong Lee 1;z 1 Department of Computer Science and Engineering Pohang University of Science and Technology

More information

Real-time Rendering of Complex Vector Data on 3d Terrain Models

Real-time Rendering of Complex Vector Data on 3d Terrain Models Real-time Rendering of Complex Vector Data on 3d Terrain Models M. Schneider, M. Guthe, and R. Klein 1 Universität Bonn, Römerstraße 164, 53117 Bonn, Germany Figure 1: Rendering of vector data with our

More information

A New Constrained Texture Mapping Method

A New Constrained Texture Mapping Method A New Constrained Texture Mapping Method Yan-Wen Guo 1,2,,JinWang 1,Xiu-FenCui 1, and Qun-Sheng Peng 1,2 1 State Key Lab of CAD&CG, Zhejiang University, Hangzhou 310027, China 2 Department of Mathematics,

More information

Perception-motivated multiresolution rendering on sole-cube maps

Perception-motivated multiresolution rendering on sole-cube maps DOI 10.1007/s11042-012-1335-2 Perception-motivated multiresolution rendering on sole-cube maps Bin Sheng Weiliang Meng Hanqiu Sun Wen Wu Enhua Wu Springer Science+Business Media New York 2013 Abstract

More information

Point based Rendering

Point based Rendering Point based Rendering CS535 Daniel Aliaga Current Standards Traditionally, graphics has worked with triangles as the rendering primitive Triangles are really just the lowest common denominator for surfaces

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005 A Developer s Survey of Polygonal Simplification algorithms CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005 Some questions to ask Why simplification? What are my models like? What matters

More information

An Algorithm of 3D Mesh Reconstructing Based on the Rendering Pipeline

An Algorithm of 3D Mesh Reconstructing Based on the Rendering Pipeline 3rd International Conference on Mechatronics and Information Technology (ICMIT 2016) An Algorithm of 3D Mesh Reconstructing Based on the Rendering Pipeline Zhengjie Deng1, a, Shuqian He1,b, Chun Shi1,c,

More information

Simple Silhouettes for Complex Surfaces

Simple Silhouettes for Complex Surfaces Eurographics Symposium on Geometry Processing(2003) L. Kobbelt, P. Schröder, H. Hoppe (Editors) Simple Silhouettes for Complex Surfaces D. Kirsanov, P. V. Sander, and S. J. Gortler Harvard University Abstract

More information

View-dependent fast real-time generating algorithm for large-scale terrain

View-dependent fast real-time generating algorithm for large-scale terrain Procedia Earth and Planetary Science 1 (2009) 1147 Procedia Earth and Planetary Science www.elsevier.com/locate/procedia The 6 th International Conference on Mining Science & Technology View-dependent

More information

Mesh Repairing and Simplification. Gianpaolo Palma

Mesh Repairing and Simplification. Gianpaolo Palma Mesh Repairing and Simplification Gianpaolo Palma Mesh Repairing Removal of artifacts from geometric model such that it becomes suitable for further processing Input: a generic 3D model Output: (hopefully)a

More information

Hierarchical surface fragments *

Hierarchical surface fragments * Hierarchical surface fragments * HUA Wei**, BAO Hujun, PENG Qunsheng (State Key Laboratory of CAD & CG, Zhejiang University, Hangzhou 310027, China) Abstract A new compact level-of-detail representation,

More information

View-dependent Polygonal Simplification

View-dependent Polygonal Simplification View-dependent Polygonal Simplification Pekka Kuismanen HUT pkuisman@cc.hut.fi Abstract This paper describes methods for view-dependent simplification of polygonal environments. A description of a refinement

More information

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts MSc Computer Games and Entertainment Maths & Graphics II 2013 Lecturer(s): FFL (with Gareth Edwards) Fractal Terrain Based on

More information

Multiresolution Remeshing Using Weighted Centroidal Voronoi Diagram

Multiresolution Remeshing Using Weighted Centroidal Voronoi Diagram Multiresolution Remeshing Using Weighted Centroidal Voronoi Diagram Chao-Hung Lin 1, Chung-Ren Yan 2, Ji-Hsen Hsu 2, and Tong-Yee Lee 2 1 Dept. of Geomatics, National Cheng Kung University, Taiwan 2 Dept.

More information

REAL-TIME RENDERING OF LARGE TERRAIN ON MOBILE DEVICE

REAL-TIME RENDERING OF LARGE TERRAIN ON MOBILE DEVICE REAL-TIME RENDERING OF LARGE TERRAIN ON MOBILE DEVICE JiangWen a, BaoshanZhu a, FanWang a a Zhengzhou Institute of Surveying and Mapping, No.66, Longhai Road, Zhengzhou, China - kissfro9642@sina.com Commission

More information

COMP 175: Computer Graphics April 11, 2018

COMP 175: Computer Graphics April 11, 2018 Lecture n+1: Recursive Ray Tracer2: Advanced Techniques and Data Structures COMP 175: Computer Graphics April 11, 2018 1/49 Review } Ray Intersect (Assignment 4): questions / comments? } Review of Recursive

More information

Fan-Meshes: A Geometric Primitive for Point-based Description of 3D Models and Scenes

Fan-Meshes: A Geometric Primitive for Point-based Description of 3D Models and Scenes Fan-Meshes: A Geometric Primitive for Point-based Description of 3D Models and Scenes Xiaotian Yan, Fang Meng, Hongbin Zha National Laboratory on Machine Perception Peking University, Beijing, P. R. China

More information

Deferred Splatting. Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE.

Deferred Splatting. Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE. Deferred Splatting Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE http://www.irit.fr/~gael.guennebaud Plan Complex Scenes: Triangles or Points? High Quality Splatting: Really

More information

CS 465 Program 4: Modeller

CS 465 Program 4: Modeller CS 465 Program 4: Modeller out: 30 October 2004 due: 16 November 2004 1 Introduction In this assignment you will work on a simple 3D modelling system that uses simple primitives and curved surfaces organized

More information

CSL 859: Advanced Computer Graphics. Dept of Computer Sc. & Engg. IIT Delhi

CSL 859: Advanced Computer Graphics. Dept of Computer Sc. & Engg. IIT Delhi CSL 859: Advanced Computer Graphics Dept of Computer Sc. & Engg. IIT Delhi Point Based Representation Point sampling of Surface Mesh construction, or Mesh-less Often come from laser scanning Or even natural

More information

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces EUROGRAPHICS 2001 / Jonathan C. Roberts Short Presentations Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces Eskil Steenberg The Interactive Institute, P.O. Box 24081, SE 104 50 Stockholm,

More information

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October

More information

Ray Tracing Acceleration Data Structures

Ray Tracing Acceleration Data Structures Ray Tracing Acceleration Data Structures Sumair Ahmed October 29, 2009 Ray Tracing is very time-consuming because of the ray-object intersection calculations. With the brute force method, each ray has

More information

Accelerated Ambient Occlusion Using Spatial Subdivision Structures

Accelerated Ambient Occlusion Using Spatial Subdivision Structures Abstract Ambient Occlusion is a relatively new method that gives global illumination like results. This paper presents a method to accelerate ambient occlusion using the form factor method in Bunnel [2005]

More information

A Real-time Rendering Method Based on Precomputed Hierarchical Levels of Detail in Huge Dataset

A Real-time Rendering Method Based on Precomputed Hierarchical Levels of Detail in Huge Dataset 32 A Real-time Rendering Method Based on Precomputed Hierarchical Levels of Detail in Huge Dataset Zhou Kai, and Tian Feng School of Computer and Information Technology, Northeast Petroleum University,

More information

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400 Tel: (631)632-8450; Fax: (631)632-8334

More information

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging Fragment Processing The per-fragment attributes may include a normal vector, a set of texture coordinates, a set of color values, a depth, etc. Using these

More information

Direct Rendering of Trimmed NURBS Surfaces

Direct Rendering of Trimmed NURBS Surfaces Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended

More information

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces Using Semi-Regular 8 Meshes for Subdivision Surfaces Luiz Velho IMPA Instituto de Matemática Pura e Aplicada Abstract. Semi-regular 8 meshes are refinable triangulated quadrangulations. They provide a

More information

A Robust Procedure to Eliminate Degenerate Faces from Triangle Meshes

A Robust Procedure to Eliminate Degenerate Faces from Triangle Meshes A Robust Procedure to Eliminate Degenerate Faces from Triangle Meshes Mario Botsch, Leif P. Kobbelt Computer Graphics Group, RWTH Aachen, kobbelt,botsch @cs.rwth-aachen.de Abstract When using triangle

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Advanced Computer Graphics

Advanced Computer Graphics Advanced Computer Graphics Lecture 2: Modeling (1): Polygon Meshes Bernhard Jung TU-BAF, Summer 2007 Overview Computer Graphics Icon: Utah teapot Polygon Meshes Subdivision Polygon Mesh Optimization high-level:

More information

Impostors and pseudo-instancing for GPU crowd rendering

Impostors and pseudo-instancing for GPU crowd rendering Impostors and pseudo-instancing for GPU crowd rendering Erik Millan ITESM CEM Isaac Rudomin ITESM CEM Figure 1: Rendering of a 1, 048, 576 character crowd. Abstract Animated crowds are effective to increase

More information

3D Rasterization II COS 426

3D Rasterization II COS 426 3D Rasterization II COS 426 3D Rendering Pipeline (for direct illumination) 3D Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation

More information

Integrated Multiresolution Geometry and Texture Models for Terrain Visualization

Integrated Multiresolution Geometry and Texture Models for Terrain Visualization Integrated Multiresolution Geometry and Texture Models for Terrain Visualization Konstantin Baumann, Jürgen Döllner, Klaus Hinrichs Department of Computer Science, University of Münster {kostab, dollner,

More information

3/1/2010. Acceleration Techniques V1.2. Goals. Overview. Based on slides from Celine Loscos (v1.0)

3/1/2010. Acceleration Techniques V1.2. Goals. Overview. Based on slides from Celine Loscos (v1.0) Acceleration Techniques V1.2 Anthony Steed Based on slides from Celine Loscos (v1.0) Goals Although processor can now deal with many polygons (millions), the size of the models for application keeps on

More information

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 3 due Monday Nov 13 th at

More information

Level-of-Detail Triangle Strips for Deforming. meshes

Level-of-Detail Triangle Strips for Deforming. meshes Level-of-Detail Triangle Strips for Deforming Meshes Francisco Ramos 1, Miguel Chover 1, Jindra Parus 2 and Ivana Kolingerova 2 1 Universitat Jaume I, Castellon, Spain {Francisco.Ramos,chover}@uji.es 2

More information

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering

More information

The Terrain Rendering Pipeline. Stefan Roettger, Ingo Frick. VIS Group, University of Stuttgart. Massive Development, Mannheim

The Terrain Rendering Pipeline. Stefan Roettger, Ingo Frick. VIS Group, University of Stuttgart. Massive Development, Mannheim The Terrain Rendering Pipeline Stefan Roettger, Ingo Frick VIS Group, University of Stuttgart wwwvis.informatik.uni-stuttgart.de Massive Development, Mannheim www.massive.de Abstract: From a game developers

More information

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project

More information

Processing 3D Surface Data

Processing 3D Surface Data Processing 3D Surface Data Computer Animation and Visualisation Lecture 12 Institute for Perception, Action & Behaviour School of Informatics 3D Surfaces 1 3D surface data... where from? Iso-surfacing

More information

Multiresolution model generation of. texture-geometry for the real-time rendering 1

Multiresolution model generation of. texture-geometry for the real-time rendering 1 Multiresolution model generation of texture-geometry for the real-time rendering 1 Contents Contents...i Figures...iv 1. Introduction...1 1.1. Real-time rendering for complex object...1 1.2. Background...3

More information

Terrain rendering (part 1) Due: Monday, March 10, 10pm

Terrain rendering (part 1) Due: Monday, March 10, 10pm CMSC 3700 Winter 014 Introduction to Computer Graphics Project 4 February 5 Terrain rendering (part 1) Due: Monday, March 10, 10pm 1 Summary The final two projects involves rendering large-scale outdoor

More information

Rendering Grass Terrains in Real-Time with Dynamic Lighting. Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006

Rendering Grass Terrains in Real-Time with Dynamic Lighting. Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006 Rendering Grass Terrains in Real-Time with Dynamic Lighting Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006 Goal Rendering millions of grass blades, at any distance, in real-time, with:

More information

Quick-VDR: Interactive View-Dependent Rendering of Massive Models

Quick-VDR: Interactive View-Dependent Rendering of Massive Models Quick-VDR: Interactive View-Dependent Rendering of Massive Models Sung-Eui Yoon Brian Salomon Russell Gayle Dinesh Manocha University of North Carolina at Chapel Hill {sungeui,salomon,rgayle,dm}@cs.unc.edu

More information

Normal Mesh Compression

Normal Mesh Compression Normal Mesh Compression Andrei Khodakovsky Caltech 549B (e:54, p:45db) 1225B (e:20, p:54db) Igor Guskov Caltech 3037B (e:8.1, p:62db) 18111B (e:1.77, p:75db) original Figure 1: Partial reconstructions

More information

Per-pixel Rendering of Terrain Data

Per-pixel Rendering of Terrain Data Per-pixel Rendering of Terrain Data Taek Sang Jeong and JungHyun Han Department of Computer Science and Engineering, Korea University, Korea Abstract. This paper presents a novel approach to terrain rendering,

More information

GI-COLLIDE Collision Detection with Geometry Images

GI-COLLIDE Collision Detection with Geometry Images Collision Detection with Geometry Images Bedřich Beneš ITESM CCM Nestor Goméz Villanueva ITESM CCM Figure 1: 512 bunnies tested for collisions Abstract A new collision detection algorithm is presented.

More information

Manifold Parameterization

Manifold Parameterization Manifold Parameterization Lei Zhang 1,2, Ligang Liu 1,2, Zhongping Ji 1,2, and Guojin Wang 1,2 1 Department of Mathematics, Zhejiang University, Hangzhou 310027, China 2 State Key Lab of CAD&CG, Zhejiang

More information

DiFi: Distance Fields - Fast Computation Using Graphics Hardware

DiFi: Distance Fields - Fast Computation Using Graphics Hardware DiFi: Distance Fields - Fast Computation Using Graphics Hardware Avneesh Sud Dinesh Manocha UNC-Chapel Hill http://gamma.cs.unc.edu/difi Distance Fields Distance Function For a site a scalar function f:r

More information

RECENT advances in acquisition, modeling, and simulation

RECENT advances in acquisition, modeling, and simulation IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 11, NO. 4, JULY/AUGUST 2005 369 Quick-VDR: Out-of-Core View-Dependent Rendering of Gigantic Models Sung-Eui Yoon, Brian Salomon, Russell Gayle,

More information

Illumination and Geometry Techniques. Karljohan Lundin Palmerius

Illumination and Geometry Techniques. Karljohan Lundin Palmerius Illumination and Geometry Techniques Karljohan Lundin Palmerius Objectives Complex geometries Translucency Huge areas Really nice graphics! Shadows Graceful degradation Acceleration Optimization Straightforward

More information

Multiresolution Meshes. COS 526 Tom Funkhouser, Fall 2016 Slides by Guskov, Praun, Sweldens, etc.

Multiresolution Meshes. COS 526 Tom Funkhouser, Fall 2016 Slides by Guskov, Praun, Sweldens, etc. Multiresolution Meshes COS 526 Tom Funkhouser, Fall 2016 Slides by Guskov, Praun, Sweldens, etc. Motivation Huge meshes are difficult to render store transmit edit Multiresolution Meshes! [Guskov et al.]

More information

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment 3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment Özgür ULUCAY Sarp ERTÜRK University of Kocaeli Electronics & Communication Engineering Department 41040 Izmit, Kocaeli

More information

Parameterization with Manifolds

Parameterization with Manifolds Parameterization with Manifolds Manifold What they are Why they re difficult to use When a mesh isn t good enough Problem areas besides surface models A simple manifold Sphere, torus, plane, etc. Using

More information

Terrain Rendering Research for Games. Jonathan Blow Bolt Action Software

Terrain Rendering Research for Games. Jonathan Blow Bolt Action Software Terrain Rendering Research for Games Jonathan Blow Bolt Action Software jon@bolt-action.com Lecture Agenda Introduction to the problem Survey of established algorithms Problems with established algorithms

More information

A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets

A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets Kyungha Min and Moon-Ryul Jung Dept. of Media Technology, Graduate School of Media Communications, Sogang Univ., Seoul,

More information

Practical Algorithm for Unlimited Scale Terrain Rendering

Practical Algorithm for Unlimited Scale Terrain Rendering Practical Algorithm for Unlimited Scale Terrain Rendering vanek.conf@gmail.com JAN VANEK, BRUNO JEZEK Faculty of Military Health Sciences University of Defence Trebesska 1575, 50001 Hradec Kralove CZECH

More information

PolyCube-Maps. Abstract. 1 Introduction. Marco Tarini Kai Hormann Paolo Cignoni Claudio Montani Visual Computing Lab, ISTI / CNR, Pisa

PolyCube-Maps. Abstract. 1 Introduction. Marco Tarini Kai Hormann Paolo Cignoni Claudio Montani Visual Computing Lab, ISTI / CNR, Pisa PolyCube-Maps Marco Tarini Kai Hormann Paolo Cignoni Claudio Montani Visual Computing Lab, ISTI / CNR, Pisa Abstract Standard texture mapping of real-world meshes suffers from the presence of seams that

More information

Texture mapping. Computer Graphics CSE 167 Lecture 9

Texture mapping. Computer Graphics CSE 167 Lecture 9 Texture mapping Computer Graphics CSE 167 Lecture 9 CSE 167: Computer Graphics Texture Mapping Overview Interpolation Wrapping Texture coordinates Anti aliasing Mipmaps Other mappings Including bump mapping

More information

View-Dependent Selective Refinement for Fast Rendering

View-Dependent Selective Refinement for Fast Rendering 1 View-Dependent Selective Refinement for Fast Rendering Kyle Brocklehurst Department of Computer Science and Engineering The Pennsylvania State University kpb136@psu.edu Abstract Triangle meshes are used

More information

LOD and Occlusion Christian Miller CS Fall 2011

LOD and Occlusion Christian Miller CS Fall 2011 LOD and Occlusion Christian Miller CS 354 - Fall 2011 Problem You want to render an enormous island covered in dense vegetation in realtime [Crysis] Scene complexity Many billions of triangles Many gigabytes

More information

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification Last Time? Adjacency Data Structures Curves & Surfaces Geometric & topologic information Dynamic allocation Efficiency of access Mesh Simplification edge collapse/vertex split geomorphs progressive transmission

More information

Optimisation. CS7GV3 Real-time Rendering

Optimisation. CS7GV3 Real-time Rendering Optimisation CS7GV3 Real-time Rendering Introduction Talk about lower-level optimization Higher-level optimization is better algorithms Example: not using a spatial data structure vs. using one After that

More information

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models 3D Programming Concepts Outline 3D Concepts Displaying 3D Models 3D Programming CS 4390 3D Computer 1 2 3D Concepts 3D Model is a 3D simulation of an object. Coordinate Systems 3D Models 3D Shapes 3D Concepts

More information

Interactive Ray Tracing: Higher Memory Coherence

Interactive Ray Tracing: Higher Memory Coherence Interactive Ray Tracing: Higher Memory Coherence http://gamma.cs.unc.edu/rt Dinesh Manocha (UNC Chapel Hill) Sung-Eui Yoon (Lawrence Livermore Labs) Interactive Ray Tracing Ray tracing is naturally sub-linear

More information

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be

More information

Mesh morphing using polycube-based cross-parameterization

Mesh morphing using polycube-based cross-parameterization COMPUTER ANIMATION AND VIRTUAL WORLDS Comp. Anim. Virtual Worlds 2005; 16: 499 508 Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/cav.92 Animating Geometrical Models

More information

Single-Pass High-Quality Splatting

Single-Pass High-Quality Splatting Single-Pass High-Quality Splatting Tilo Ochotta Stefan Hiller Dietmar Saupe Department of Computer and Information Science University of Konstanz, Germany Abstract In this paper, we introduce a novel real-time

More information

Hardware Accelerated Rendering of Unprocessed Point Clouds

Hardware Accelerated Rendering of Unprocessed Point Clouds Hardware Accelerated Rendering of Unprocessed Point Clouds Claus Scheiblauer Institute of Computer Graphics and Algorithms Vienna University of Technology Vienna / Austria Abstract In this paper we present

More information

Half-edge Collapse Simplification Algorithm Based on Angle Feature

Half-edge Collapse Simplification Algorithm Based on Angle Feature International Conference on Automation, Mechanical Control and Computational Engineering (AMCCE 2015) Half-edge Collapse Simplification Algorithm Based on Angle Feature 1,2 JunFeng Li, 2 YongBo Chen, 3

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring

More information

Hardware Displacement Mapping

Hardware Displacement Mapping Matrox's revolutionary new surface generation technology, (HDM), equates a giant leap in the pursuit of 3D realism. Matrox is the first to develop a hardware implementation of displacement mapping and

More information

Texture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

Texture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture Texture CS 475 / CS 675 Computer Graphics Add surface detail Paste a photograph over a surface to provide detail. Texture can change surface colour or modulate surface colour. Lecture 11 : Texture http://en.wikipedia.org/wiki/uv_mapping

More information

Ray Casting of Trimmed NURBS Surfaces on the GPU

Ray Casting of Trimmed NURBS Surfaces on the GPU Ray Casting of Trimmed NURBS Surfaces on the GPU Hans-Friedrich Pabst Jan P. Springer André Schollmeyer Robert Lenhardt Christian Lessig Bernd Fröhlich Bauhaus University Weimar Faculty of Media Virtual

More information

CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture CS 475 / CS 675 Computer Graphics Lecture 11 : Texture Texture Add surface detail Paste a photograph over a surface to provide detail. Texture can change surface colour or modulate surface colour. http://en.wikipedia.org/wiki/uv_mapping

More information

All the Polygons You Can Eat. Doug Rogers Developer Relations

All the Polygons You Can Eat. Doug Rogers Developer Relations All the Polygons You Can Eat Doug Rogers Developer Relations doug@nvidia.com Future of Games Very high resolution models 20,000 triangles per model Lots of them Complex Lighting Equations Floating point

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

Culling. Computer Graphics CSE 167 Lecture 12

Culling. Computer Graphics CSE 167 Lecture 12 Culling Computer Graphics CSE 167 Lecture 12 CSE 167: Computer graphics Culling Definition: selecting from a large quantity In computer graphics: selecting primitives (or batches of primitives) that are

More information

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms Visible Surface Determination Visibility Culling Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms Divide-and-conquer strategy:

More information

Segmentation & Constraints

Segmentation & Constraints Siggraph Course Mesh Parameterization Theory and Practice Segmentation & Constraints Segmentation Necessary for closed and high genus meshes Reduce parametric distortion Chartification Texture Atlas Segmentation

More information

Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

Mesh Decimation Using VTK

Mesh Decimation Using VTK Mesh Decimation Using VTK Michael Knapp knapp@cg.tuwien.ac.at Institute of Computer Graphics and Algorithms Vienna University of Technology Abstract This paper describes general mesh decimation methods

More information

Cloning Skeleton-driven Animation to Other Models

Cloning Skeleton-driven Animation to Other Models Cloning Skeleton-driven Animation to Other Models Wan-Chi Luo Jian-Bin Huang Bing-Yu Chen Pin-Chou Liu National Taiwan University {maggie, azar, toby}@cmlab.csie.ntu.edu.tw robin@ntu.edu.tw Abstract-3D

More information

Multi-grained Level of Detail Using a Hierarchical Seamless Texture Atlas

Multi-grained Level of Detail Using a Hierarchical Seamless Texture Atlas Multi-grained Level of Detail Using a Hierarchical Seamless Texture Atlas Krzysztof Niski Johns Hopkins University Budirijanto Purnomo Johns Hopkins University Jonathan Cohen Lawrence Livermore National

More information

1. Meshes. D7013E Lecture 14

1. Meshes. D7013E Lecture 14 D7013E Lecture 14 Quadtrees Mesh Generation 1. Meshes Input: Components in the form of disjoint polygonal objects Integer coordinates, 0, 45, 90, or 135 angles Output: A triangular mesh Conforming: A triangle

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

Speeding up your game

Speeding up your game Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material

More information

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except

More information

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations Subdivision Surface based One-Piece Representation Shuhua Lai Department of Computer Science, University of Kentucky Outline. Introduction. Parametrization of General CCSSs 3. One-Piece through Interpolation

More information

Shadow Rendering EDA101 Advanced Shading and Rendering

Shadow Rendering EDA101 Advanced Shading and Rendering Shadow Rendering EDA101 Advanced Shading and Rendering 2006 Tomas Akenine-Möller 1 Why, oh why? (1) Shadows provide cues about spatial relationships among objects 2006 Tomas Akenine-Möller 2 Why, oh why?

More information

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. 1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,

More information

Normal Mapping for Surfel-Based Rendering

Normal Mapping for Surfel-Based Rendering Normal Mapping for Surfel-Based Rering Mathias Holst University of Rostock Albert-Einstein-Str. 21 18059 Rostock, Germany mholst@informatik.uni-rostock.de Heidrun Schumann University of Rostock Albert-Einstein-Str.

More information

GPU-Assisted Z-Field Simplification

GPU-Assisted Z-Field Simplification GPU-Assisted Z-Field Simplification Alexander Bogomjakov Craig Gotsman Center for Graphics and Geometric Computing, Computer Science Dept. Technion Israel Institute of Technology Haifa 32000, Israel {alexb

More information

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render

More information

M4G - A Surface Representation for Adaptive CPU-GPU Computation

M4G - A Surface Representation for Adaptive CPU-GPU Computation M4G - A Surface Representation for Adaptive CPU-GPU Computation Vision and Graphics Lab Institute of Pure and Applied Mathematics Trimester Program on Computational Manifolds and Applications November

More information