# Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 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 Stockholm, Sweden Abstract By applying a filter this algorithm can reduce the number of polygons generated by subdividing a mesh dynamically. This algorithm is designed especially for real-time engines where the geometrical complexity is critical. It also avoids edge cracks and is generally more efficient than a general-purpose polygon reduction algorithm. Keywords: Subdivision complexity reduction. Real-Time, Loop, Catmull-Clark, Hardware. 1. Introduction While subdivision surfaces are quickly becoming the primitive of choice for modeling and animation, they have yet to become widely used in the real-time simulation and game communities. Even though subdivision surfaces by nature are recursively generated and therefore can be generated in different levels of detail (LOD) they are limited in the way they add complexity. For each generation of Catmull- Clark[1] or Loop[2] subdivision that is generated the amount of geometry quadruples making the LOD steps fairly large. In theory an extended Catmull-Clark subdivision scheme with creases appears as the ultimate CGI primitive, it is compatible with polygons and NURBS, making it backwards compatible with old art work, it has been properly evaluated[3,4], it is supported in various commercial modeling and animation tools and it is a joy to model with. Unfortunately our general conclusion is that Catmull- Clark subdivision surfaces are not useful in real time engines unless there is some geometry-reduction algorithm in place. The performance hit taken by the quadrupling face count for each iteration of subdivision can not be justified by the added smoothness of the surface. The main problem is that when a mesh is subdivided all polygons are equally subdivided regardless of whether extra detail is needed at that particular location or not. The algorithm does not take into account proximity to the viewpoint, curvature, frustum clipping or polygon size, something that many other LOD algorithms consider [7,8,9,10,11,12]. This makes subdivision surfaces not too well suited for environments with large objects where local LOD is needed. This problem becomes even more apparent if the subdivision scheme includes some sort of crease algorithm delivering meshes with many flat areas that don t need to be divided [14]. It becomes apparent that what is needed is some type of local LOD. One possible approach would be to apply a standard polygon reduction algorithm on the subdivided mesh but this would not be very efficient. Since we have access to the control mesh we can analyze it rather than the subdivided mesh to get some higher level control of the surface complexity. 2. Understanding Optimization In order to understand how to optimize an algorithm we need to understand how the mesh will be used. It is a common misconception that in a real time engine everything has to be computed for each frame, whereas in reality only a small portion of a scene changes for every frame making caching very rewarding. The highest priority is given to the actual drawing of the

2 frame. Second comes the animation that should be updated every frame, but in extreme circumstances it can be dropped to every second or third frame. The change of an objects LOD is more rare and only occurs when there is a significant change to the relation of the camera and the object. Topological changes to the control mesh may never occur and or occur very rarely. This leads us to write a "kernel" in our engine that much like a multitasking operating system can prioritize and schedule tasks that needs to be computed. It can also maximize the use of the 3D hardware and multiple processors. The biggest speed gain to be made on modern processors is to keep algorithms cache coherent, this means that an algorithm should not access memory randomly, but to work through it from one end to the other. This means that static lists are faster than linked list and that pointer references to other parts of memory are generally slow to follow. This makes many of the conventional mesh optimization algorithms very hard to implement since they are dependent on the ability to split and remove polygons and to compute each polygons relation to its neighbors. 2.1 The Geometry Pipeline Our geometry pipeline will therefore be in four steps: The first step is the one that subdivides the control mesh in to a finer polygon mesh and creates relational data between the control vertices and the vertices on the subdivided surface. This part of the algorithm is in fact a conventional subdivision algorithm and will therefore not be discussed in this paper [1, 2]. The second stage analyses the mesh and creates a reduced version of it by applying a filter to it. The third stage takes the topology data, and the vertex relation data along with the positions of the control vertexes and computes the animation of the object. The relational data will be explained later in section four. The fourth stage renders the mesh. So to get a new image we only redo the last step, if we need to animate the object we redo the last two steps, if we need a new level of detail we re compute the three last steps and only in the rare occasion of a topological change do we need to recompute all of the steps including the first and most time consuming step. In-data Step 1 Step 2 Step 3 Step 4 Reference data Subdivision Geometry reduction Rendering Animation Figure 1: The geometry pipeline. Vertex data Reference Dependency Vertex 3. Tessellation Selection - Step II The simple approach is of course to divide different polygons different number of times, giving you a flexible way of choosing where you want your complexity. Pixars Photo Realistic Renderman does this to create sub-pixel-sized quadrilaterals. Unfortunately cracks will appear in the edges between two differently tessellated polygons. In the case of a rendering architecture like Rendermans REYES[5] this is a limited problem since the cracks are very small, but in a real-time orientated engine the cracks are not acceptable due to the larger polygons. So our algorithm must be able to subdivide different edges differently in order to fit each polygon with its neighbors. We choose to compute the level of tesselation per edge, to do this we use both the vertexes in the ends of the edge and one vertex in the middle of the edge. If we measure the distance between the edge point and the mid points between the two end vertexes and divide it by the length of the edge, we will obtain a value that represent the curvature of the edge (see Figure 2). We can also compute the distance between the edge point and the view position to create a view-dependent tessellation level. The great benefit with this is that since the tessellation selection algorithm uses only data

3 that is shared with the neighboring polygon there is no need to store the result of the computations to match it with the tessellation of the neighboring polygon. If the neighboring polygon uses the same input it will obtain the same result and will therefore be tessellated to match its neighboring polygon. This approach sidesteps the process of having two neighboring polygons "agree" on the level of tessellation needed, a process that can be difficult to implement and not very cache friendly. Figure 2: The tessellation selection algorithm. 3.1 The Tessellation Table Our suggested approach, to first subdivide the mesh a given number of times and then apply a filter that picks out a different amount of detail in different edges so that each edge can be tessellated individually, makes it possible to precompute this filter in the form of a look up table that contains two arrays of data per polygon. One holds the indexes of the vertexes needed in the filtered polygon and the other holds the references describing how to bind those vertexes in to polygons. (See listing 1). This means that we need one table element, for each possible combination of how the edges in a polygon can be tessellated. In our particular implementation we have implemented two sets of tables, one for quadrillions and one for triangles since our engine is a Catmull-Clark / Loop hybrid. If you want to have a more general solution for n-sided polygons you can choose first to tessellate all polygons using one generation of Catmull-Clark to turn all polygons in to quadrilateral v e0 (v0 + v1) / v If we consider the reference data for the tessellated quad in fig 3 as an array of 16 elements, and we want to create the less tessellated polygon in fig 4. The new tessellated polygon will only need 5 out of the 9 vertexes. In order to acquire them we read the first vector in the look-up table element containing the entries 0, 1, 15, 10 and 5. We can then copy the vertex data referenced to in the original reference array elements 0, 1, 15, 10 and 5. Now that we have a reduced vertex array we need a reduced reference. This reference can simply be copied from the look up table element s other vector in this case containing the data 0, 1, 2, 1, 3, 2, 1, 4 and 3. (See Listing 1). One important criteria for this algorithm is that the subdivision algorithm is able to backtrack in a repeatable way how polygons were created and from what control polygons they origin. For each time we subdivide the polygons we get four times as many polygons, if we choose to put those four new polygons in order we can easily back track the origin of them. So if we for example choose to tessellate a subdivision mesh three times we will know that every 4 3 :rd polygon entry will origin from the same control mesh polygon since each control polygon has been divided in to 4 3 (64) polygons. This makes it possible to make a table that can easily find the vertexes that are needed. In our implementation tables have been generated for up to six levels of subdivision taking almost a minute on a standard pc. vertex_count = 0; for(i = 0; i < control_polygon_count; i++) element = get_table_element(); for(j = 0; j < element->reference_count; j++) reduced_reference[k++] = element- >reference[j] + vertex_count; for(j = 0; j < element->vertex_count; j++) vertex_index = original_reference[element-> vertex_index[j] + i * pow(4, base_level + 1)]; new_vertex[vertex_count].x = old_vertex[vertex_index].x; new_vertex[vertex_count].y = old_vertex[vertex_index].y; new_vertex[vertex_count].z = old_vertex[vertex_index].z; vertex_count++; Figure 3 Step I Figure 4 Step II Listing 1. The inner loop that copies the subdivided data in to the reduced data.

4 Exactly how the tables are generated is an implementation detail that will not be covered in this paper but it is important to note that the middle of the control polygons should be divided roughly the same number of times as the edges. Since Catmull-Clark subdivision surfaces are based on quads you want your subdivision scheme to output quads while your 3D hardware expects triangles. The tessellation tables we have implemented outputs triangle but it is of course not necessary. 3D hardware, and then when the animation occurs only send the new control vertexes. This will drastically reduce the bandwidth needed to perform complex animations. Sending only 500 control points over the bus can animate a polygon character. In order to test this we have implemented our own lowlevel experimental 3D API. This API called NGL features a stack based shader system and a programmable geometry pipeline. 4. Animation - Step III In the first step we do not handle the actual positions of any geometry but only how the vertexes in the subdivided mesh relates to the control mesh. So instead of computing the position of a vertex, we store references to the control vertexes that influence that vertex and how much they influence(see Table 1). This means that at any time we can re-compute the position of a vertex on the surface by weighting in the control vertices (see Listing 2). All animation is therefore preformed only on the control mesh that in turn influences the subdivided surface. Reference Weight Table 1. The data for a vertex may look like this (this is the data produced by an edge vertex between two quadrillions). This idea of storing the relationship between control vertexes and surface vertexes has many advantages if implemented in hardware. First of all it is a very simple algorithm that can be used for a variety of surface types like Bezers, trimmed NURBS, Catmull-Clark, Loop, butterfly subdivision surfaces, edge collapse based polygon reduction algorithm [8,9]. It can also be used to create hardware-accelerated displacement mapping by weighting in normals. But the biggest gain is that it makes it possible to upload the relational data to the for(i = 0; i < vertex_count; i++) x = 0; y = 0; z = 0; for(j = 0; j < *influence_list_length; j++) index = *index_array++; value = *value_array++; x += value * control_vertex_array[index].x; y += value * control_vertex_array[index].y; z += value * control_vertex_array[index].z; surface_vertex_array[i].x = x; surface_vertex_array[i].y = y; surface_vertex_array[i].z = z; influence_list_length++; Listing 2. The inner loop that weights the control vertices to the surface vertices. 5. Results / Future work In our implementation we have seen vast improvement in efficiency especially on objects with few curved areas(see Figures 5-6). The largest shortcoming of this algorithm is that flat areas with curved edges tend to be over tessellated. This is something we intend to combat by having a separate set of look up tables for flat polygons. Another potential problem is that the algorithm can never reduce the mesh below its control mesh polygon count. Still it produces very good results especially with architectural objecs. The biggest features with this algorithm is of course that it is fast, contains no iterative searching and that all data can be stored in arrays since there are no insert/delete operations, something that 3D hardware APIs such as OpenGL like. The biggest problem is that the algorithm is so large and contains so many steps that it becomes very hard to implement and debug. In the future we would like to try to instead of generating a look-up table generate compliable code that would contain the tessellation information to see if there is a possible speed gain.

5 The original mesh subdivided 3 levels contains polygons. All images are flat shaded. The control mesh consists of roughly 1200 control polygons and has a number of creased features. 6. Acknowledgments We would like to thank Emil Brink, Oskar Wahlberg, Mark Ollila, the Interactive Institute and everyone who has supported the Verse project and us. 7. References [1] Catmull E. and J. Clark "Recursively Generated B-spline Surfaces on Arbitrary Topology Meshes". Computer Aided Design 1978 [2] C. Loop "Smooth Subdivision Surfaces Based on Triangles" Masters Thesis, University of Utah, [3] J. Stam, "Exact Evaluation of Catmull-Clark Subdivision Surfaces at Arbitrary Parameter Values", SIGGRAPH'98 Proceedings, pages [4] J. Stam, "Evaluation of Loop Subdivision Surfaces", SIGGRAPH'99 Course Notes, The same mesh in a reduced state only contains polygons, about 7.5% of the original geometry complexity. Note that flat areas have been reduced down to a minimum while the curved areas are still tessellated. [5] R. L. Cook, L. Carpenter, and E. Catmull, "The Reyes Image Rendering Architecture" Computer Graphics, Volume 21, Number 4, July [6] S. Junkins and A. Hux "subdividing Reality: Employing Subdivision Surface for Real-time Scalabel 3D" Game Developers Conference 2000, Proceedings page [7] D. Luebke and C. Eickson. "View Dependent Simplification of Arbitrary Polygonal Enviorments" SIGGRAPH 1997, Proceedings page [8] H. Hoppe, T. DeRose, T. Duchamp, J. McDonald, W. Stuetzle. "Mesh optimization" SIGGRAPH 1993 Proceedings pages [9] H. Hoppe. "Progressive meshes" SIGGRAPH 1996 Proceedings pages [10] H. Hoppe. "View-dependent Refinement of Progressive Meshes" SIGGRAPH 1997 Proceedings pages

6 [11] S. Melax "Asimple, Fast and Efective Polygon Reduction Algorithm" Game Developer November 1998 [12] A. Certain, J. Popovic, T. DeRose T. Duchamp, D. Salesin and W. Stuetzle "interactive multiresolution Surface Viewing" SIGGRAPH 1996 Proceedings pages91-98 [13] T. DeRose, M. Kass and T. Truong "Subdivision Surfaces in the Making of GerisGame" SIGGRAPH 99 Subdivision course notes Chapter 10. [14] H. Hoppe, T. DeRose, T. Duchamp, M. Halstead, H. Jin, J. McDonald, J. Schweitzer and W. Stuetzle. "Piecewise Smooth Surface Reconstruction". SIGGRAPH 1994 Proceedings pages

### Curves and Surfaces 2

Curves and Surfaces 2 Computer Graphics Lecture 17 Taku Komura Today More about Bezier and Bsplines de Casteljau s algorithm BSpline : General form de Boor s algorithm Knot insertion NURBS Subdivision

### Fast Rendering of Subdivision Surfaces

Fast Rendering of Subdivision Surfaces Kari Pulli (Univ. of Washington, Seattle, WA) Mark Segal (SGI) Abstract Subdivision surfaces provide a curved surface representation that is useful in a number of

### 3D Modeling techniques

3D Modeling techniques 0. Reconstruction From real data (not covered) 1. Procedural modeling Automatic modeling of a self-similar objects or scenes 2. Interactive modeling Provide tools to computer artists

### Rendering Subdivision Surfaces Efficiently on the GPU

Rendering Subdivision Surfaces Efficiently on the GPU Gy. Antal, L. Szirmay-Kalos and L. A. Jeni Department of Algorithms and their Applications, Faculty of Informatics, Eötvös Loránd Science University,

### Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces Shuhua Lai and Fuhua (Frank) Cheng (University of Kentucky) Graphics & Geometric Modeling Lab, Department of Computer Science,

### Real-Time Graphics Architecture

Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall Geometry Outline Vertex and primitive operations System examples emphasis on clipping Primitive

### Subdivision Surfaces

Subdivision Surfaces 1 Geometric Modeling Sometimes need more than polygon meshes Smooth surfaces Traditional geometric modeling used NURBS Non uniform rational B-Spline Demo 2 Problems with NURBS A single

### Postprocessing of Compressed 3D Graphic Data

Journal of Visual Communication and Image Representation 11, 80 92 (2000) doi:10.1006/jvci.1999.0430, available online at http://www.idealibrary.com on Postprocessing of Compressed 3D Graphic Data Ka Man

### 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

### Example: Loop Scheme. Example: Loop Scheme. What makes a good scheme? recursive application leads to a smooth surface.

Example: Loop Scheme What makes a good scheme? recursive application leads to a smooth surface 200, Denis Zorin Example: Loop Scheme Refinement rule 200, Denis Zorin Example: Loop Scheme Two geometric

### Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 13: Reyes Architecture and Implementation Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) A gallery of images rendered using Reyes Image credit: Lucasfilm (Adventures

### Adaptive Tessellation for Trimmed NURBS Surface

Adaptive Tessellation for Trimmed NURBS Surface Ma YingLiang and Terry Hewitt 2 Manchester Visualization Centre, University of Manchester, Manchester, M3 9PL, U.K. may@cs.man.ac.uk 2 W.T.Hewitt@man.ac.uk

### 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

### Subdivision Depth Computation for Extra-Ordinary Catmull-Clark Subdivision Surface Patches

Subdivision Depth Computation for Extra-Ordinary Catmull-Clark Subdivision Surface Patches Fuhua Frank Cheng,GangChen, and Jun-Hai Yong University of Kentucky, Lexington, KY, USA Tsinghua University, Beijing,

### 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

### Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Computergrafik Matthias Zwicker Universität Bern Herbst 2016 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 2 Piecewise Bézier curves Each

### 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

### Computer Graphics. Prof. Feng Liu. Fall /21/2016

Computer Graphics Prof. Feng Liu Fall 2016 http://www.cs.pdx.edu/~fliu/courses/cs447/ 11/21/2016 Last time Polygon Mesh and Modeling 2 Today Modeling Technologies Final Exam: 12:30-2:00, December 7, 2016

### A Sub-Atomic Subdivision Approach

A Sub-Atomic Subdivision Approach S. Seeger 1 K. Hormann 2 G. Häusler 1 G. Greiner 2 1 University of Erlangen, Chair for Optics Staudtstr. 7/B2, 91058 Erlangen, Germany Email: {sseeger,ghaeusler}@optik.uni-erlangen.de

### Geometry Processing & Geometric Queries. Computer Graphics CMU /15-662

Geometry Processing & Geometric Queries Computer Graphics CMU 15-462/15-662 Last time: Meshes & Manifolds Mathematical description of geometry - simplifying assumption: manifold - for polygon meshes: fans,

### The Design of RenderMan

Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall The Design of RenderMan 1 Religious Issue #1 The world is not made of polygons In fact,

### Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

Computer Graphics 1 Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons

### Ternary Butterfly Subdivision

Ternary Butterfly Subdivision Ruotian Ling a,b Xiaonan Luo b Zhongxian Chen b,c a Department of Computer Science, The University of Hong Kong b Computer Application Institute, Sun Yat-sen University c

### Streaming Massive Environments From Zero to 200MPH

FORZA MOTORSPORT From Zero to 200MPH Chris Tector (Software Architect Turn 10 Studios) Turn 10 Internal studio at Microsoft Game Studios - we make Forza Motorsport Around 70 full time staff 2 Why am I

### Tamy Boubekeur & Christophe Schlick

Graphics Hardware (2005) M. Meissner, B.- O. Schneider (Editors) Generic Mesh Refinement on GPU Tamy Boubekeur & Christophe Schlick LaBRI INRIA CNRS University of Bordeaux, France Abstract Many recent

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

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

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

CSE 167: Introduction to Computer Graphics Lecture #13: Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 4 due Monday Nov 27 at 2pm Next Tuesday:

### Could you make the XNA functions yourself?

1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which

### Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

1 Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine. Three parts to this talk. A lot of content, so I

### PowerVR Hardware. Architecture Overview for Developers

Public Imagination Technologies PowerVR Hardware Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.

### Development of Computer Graphics

1951 Whirlwind, Jay Forrester (MIT) CRT displays mid 1950s SAGE air defense system command & control CRT, light pens late 1950s Computer Art, James Whitney Sr. Visual Feedback loops 1962 Sketchpad, Ivan

### Animation & Rendering

7M836 Animation & Rendering Introduction, color, raster graphics, modeling, transformations Arjan Kok, Kees Huizing, Huub van de Wetering h.v.d.wetering@tue.nl 1 Purpose Understand 3D computer graphics

### Intelligent Balloon: A Subdivision-Based Deformable Model For Surface Reconstruction Of Arbitrary Topology

Intelligent Balloon: A Subdivision-Based Deformable Model For Surface Reconstruction Of Arbitrary Topology Ye Duan Hong Qin Department of Computer Science State University of New York at Stony Brook {yduan

### Bonus Ch. 1. Subdivisional Modeling. Understanding Sub-Ds

Bonus Ch. 1 Subdivisional Modeling Throughout this book, you ve used the modo toolset to create various objects. Some objects included the use of subdivisional surfaces, and some did not. But I ve yet

Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

### Maths at the Movies. Chris Budd

Maths at the Movies Chris Budd See maths in the movies in different ways Sometimes maths in the background Moriarty Some movies hate maths Some feature mathematicians Some films are about mathematicians

### Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling Piecewise Bézier curves Each segment

### PNG1 Triangles for Tangent Plane Continuous Surfaces on the GPU

PNG Triangles for Tangent Plane Continuous Surfaces on the GPU Christoph Fünfzig, 2 Kerstin Müller, 2 Dianne Hansford Gerald Farin PRISM Lab, Arizona State University, Tempe, USA 2 Computer Graphics and

### Smooth Subdivision of Tetrahedral Meshes

Eurographics Symposium on Geometry Processing (2004) R. Scopigno, D. Zorin, (Editors) Smooth Subdivision of Tetrahedral Meshes S. Schaefer J. Hakenberg J. Warren Rice University Abstract We describe a

### Cornell CS4620 Fall 2011!Lecture Kavita Bala (with previous instructors James/Marschner) Cornell CS4620 Fall 2011!Lecture 1.

Computer graphics: The study of creating, manipulating, and using visual images in the computer. CS4620/5620: Introduction to Computer Graphics Professor: Kavita Bala 1 2 4 6 Or, to paraphrase Ken Perlin...

### 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

### GPU-AWARE HYBRID TERRAIN RENDERING

GPU-AWARE HYBRID TERRAIN RENDERING Christian Dick1, Jens Krüger2, Rüdiger Westermann1 1 Computer Graphics and Visualization Group, Technische Universität München, Germany 2 Interactive Visualization and

### CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

CS 380 - GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1 Markus Hadwiger, KAUST Reading Assignment #4 (until Feb. 23) Read (required): Programming Massively Parallel Processors book, Chapter

### CGS 3220 Lecture 17 Subdivision Surfaces

CGS 3220 Lecture 17 Subdivision Surfaces Introduction to Computer Aided Modeling Instructor: Brent Rossen Overview Converting from polygons to subdivision surfaces (sub-d) Modeling with sub-d using polygon

### Digital Geometry Processing. Computer Graphics CMU /15-662

Digital Geometry Processing Computer Graphics CMU 15-462/15-662 Last time: Meshes & Manifolds Mathematical description of geometry - simplifying assumption: manifold - for polygon meshes: fans, not fins

### Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Today Finishing up from last time Brief discussion of graphics workload metrics

### Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

Graphics Architectures and OpenCL Michael Doggett Department of Computer Science Lund university Overview Parallelism Radeon 5870 Tiled Graphics Architectures Important when Memory and Bandwidth limited

### 5 Subdivision Surfaces

5 Subdivision Surfaces In Maya, subdivision surfaces possess characteristics of both polygon and NURBS surface types. This hybrid surface type offers some features not offered by the other surface types.

### Adaptive Semi-Regular Remeshing: A Voronoi-Based Approach

Adaptive Semi-Regular Remeshing: A Voronoi-Based Approach Aymen Kammoun 1, Frédéric Payan 2, Marc Antonini 3 Laboratory I3S, University of Nice-Sophia Antipolis/ CNRS (UMR 6070) - France 1 kammoun@i3s.unice.fr

### Spline Surfaces, Subdivision Surfaces

CS-C3100 Computer Graphics Spline Surfaces, Subdivision Surfaces vectorportal.com Trivia Assignment 1 due this Sunday! Feedback on the starter code, difficulty, etc., much appreciated Put in your README

### CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 Announcements Project 3 due tomorrow Midterm 2 next

### Design and Simulation for Architectural Geometry

Design and Simulation for Architectural Geometry Figure 1: Daytime and nighttime scenes of designed roof by using the developed computational tools 031.PDF Keywords: Architectural Geometry, Procedural

### 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

### HomeWork 2 Rasterization

HomeWork 2 Rasterization Fall 2012 Submitted By - Nitin Agrahara Ravikumar 73714398 The First Part: Rasterization As required by the homework, the display function of the smooth program is hijacked and

### No.5 An Algorithm for LOD by Merging Near Coplanar Faces 451 The approaches mentioned above mainly make passes by calculating repeatedly the geometric

Vol.16 No.5 J. Comput. Sci. & Technol. Sept. 2001 An Algorithm for LOD by Merging Near Coplanar Faces Based on Gauss Sphere CAO Weiqun ( Π), BAO Hujun ( Λ) and PENG Qunsheng (ΞΠ±) State Key Laboratory

### Overview: Ray Tracing & The Perspective Projection Pipeline

Overview: Ray Tracing & The Perspective Projection Pipeline Lecture #2 Thursday, August 28 2014 About this Lecture! This is an overview.! Think of it as a quick tour moving fast.! Some parts, e.g. math,

### Polygonal Simplification: An Overview

L Polygonal Simplification: An Overview TR96-016 1996 UN LL U M I I V E RS IG S I T AT LUX LIBERTAS S EP TEN T CA RO Carl Erikson Department of Computer Science CB #3175, Sitterson Hall UNC-Chapel Hill

### Controlling the entire path of a virtual camera

Controlling the entire path of a virtual camera Abstract This paper considers the design of a camera path through a scene. Given a set of keyframes for the camera, we want to build a camera path that avoids

### Taxonomy of interpolation. constraints on recursive subdivision. Ahmad H. Nasri 1, Malcolm A. Sabin 2. 1 Introduction

1 Introduction Taxonomy of interpolation constraints on recursive subdivision surfaces Ahmad H. Nasri 1, Malcolm A. Sabin 2 1 Department of Mathematics and Computer Science, American University of Beirut,

### Deus Ex is in the Details

Deus Ex is in the Details Augmenting the PC graphics of Deus Ex: Human Revolution using DirectX 11 technology Matthijs De Smedt Graphics Programmer, Nixxes Software Overview Introduction DirectX 11 implementation

### 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

### Graphics and Imaging Architectures

Graphics and Imaging Architectures Kayvon Fatahalian http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/ About Kayvon New faculty, just arrived from Stanford Dissertation: Evolving real-time graphics

### Image-Based Deformation of Objects in Real Scenes

Image-Based Deformation of Objects in Real Scenes Han-Vit Chung and In-Kwon Lee Dept. of Computer Science, Yonsei University sharpguy@cs.yonsei.ac.kr, iklee@yonsei.ac.kr Abstract. We present a new method

### Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather

### Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Rendering Algorithms: Real-time indirect illumination Spring 2010 Matthias Zwicker Today Real-time indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant

### Free-Form Deformations via Sketching and Manipulating Scalar Fields

Free-Form Deformations via Sketching and Manipulating Scalar Fields Jing Hua Hong Qin Computer Science, SUNY @ Stony Brook {jinghua qin}@cs.sunysb.edu ABSTRACT This paper presents a novel Scalar-field

### 3 Polygonal Modeling. Getting Started with Maya 103

3 Polygonal Modeling In Maya, modeling refers to the process of creating virtual 3D surfaces for the characters and objects in the Maya scene. Surfaces play an important role in the overall Maya workflow

### Ptex: Per-face Texture Mapping for Production Rendering

EGSR 2008 Ptex: Per-face Texture Mapping for Production Rendering Brent Burley and Dylan Lacewell Walt Disney Animation Studios (See attached slide notes for details) Texture Mapping at Disney Chicken

### Progressive Mesh. Reddy Sambavaram Insomniac Games

Progressive Mesh Reddy Sambavaram Insomniac Games LOD Schemes Artist made LODs (time consuming, old but effective way) ViewDependentMesh (usually used for very large complicated meshes. CAD apps. Probably

### Polar Embedded Catmull-Clark Subdivision Surface

Polar Embedded Catmull-Clark Subdivision Surface Anonymous submission Abstract In this paper, a new subdivision scheme with Polar embedded Catmull-Clark mesh structure is presented. In this new subdivision

Efficient GPU Rendering of Subdivision Surfaces using Adaptive Quadtrees Wade Brainerd* Activision Tim Foley* NVIDIA Manuel Kraemer NVIDIA Henry Moreton NVIDIA Matthias Nießner Stanford University Figure

### Determination (Penentuan Permukaan Tampak)

Visible Surface Determination (Penentuan Permukaan Tampak) Visible Surface Determination 1/26 Outline Definisi VSD Tiga Kelas Algoritma VSD Kelas : Conservative Spatial Subdivison Bounding Volume Back

### Introduction to the Direct3D 11 Graphics Pipeline

Introduction to the Direct3D 11 Graphics Pipeline Kevin Gee - XNA Developer Connection Microsoft Corporation 2008 NVIDIA Corporation. Direct3D 11 focuses on Key Takeaways Increasing scalability, Improving

### Parallel Rendering. Johns Hopkins Department of Computer Science Course : Rendering Techniques, Professor: Jonathan Cohen

Parallel Rendering Molnar, Cox, Ellsworth, and Fuchs. A Sorting Classification of Parallel Rendering. IEEE Computer Graphics and Applications. July, 1994. Why Parallelism Applications need: High frame

### Taxonomy of interpolation constraints on recursive subdivision curves

1 Introduction Taxonomy of interpolation constraints on recursive subdivision curves Ahmad H. Nasri 1, Malcolm A. Sabin 2 1 Dept. of Math. & Computer Science, American University of Beirut, Beirut, PO

### Graphics Hardware and OpenGL

Graphics Hardware and OpenGL Ubi Soft, Prince of Persia: The Sands of Time What does graphics hardware have to do fast? Camera Views Different views of an object in the world 1 Camera Views Lines from

### 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

### Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

Curves and Curved Surfaces Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface

### Introduction to Geometry. Computer Graphics CMU /15-662

Introduction to Geometry Computer Graphics CMU 15-462/15-662 Assignment 2: 3D Modeling You will be able to create your own models (This mesh was created in Scotty3D in about 5 minutes... you can do much

### 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

### High-quality Shadows with Improved Paraboloid Mapping

High-quality Shadows with Improved Paraboloid Mapping Juraj Vanek, Jan Navrátil, Adam Herout, and Pavel Zemčík Brno University of Technology, Faculty of Information Technology, Czech Republic http://www.fit.vutbr.cz

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

CSE 167: Introduction to Computer Graphics Lecture #8: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #4 due Friday, November 2 nd Introduction:

### 13.472J/1.128J/2.158J/16.940J COMPUTATIONAL GEOMETRY

13.472J/1.128J/2.158J/16.940J COMPUTATIONAL GEOMETRY Lecture 23 Dr. W. Cho Prof. N. M. Patrikalakis Copyright c 2003 Massachusetts Institute of Technology Contents 23 F.E. and B.E. Meshing Algorithms 2

### An Adaptive Subdivision Method Based on Limit Surface Normal

An Adaptive Subdivision Method Based on Limit Surface Normal Zhongxian Chen, Xiaonan Luo, Ruotian Ling Computer Application Institute Sun Yat-sen University, Guangzhou, China lnslxn@mail.sysu.edu.cn Abstract

### Automatic Instancing of Hierarchically Organized Objects

Automatic Instancing of Hierarchically Organized Objects R Schultz, H Schumann University of Rostock Abstract Instancing is an approved concept to save space for the storage of three dimensional scenes

### Free-Form Deformation and Other Deformation Techniques

Free-Form Deformation and Other Deformation Techniques Deformation Deformation Basic Definition Deformation: A transformation/mapping of the positions of every particle in the original object to those

### Technical Report. GLSL Pseudo-Instancing

Technical Report GLSL Pseudo-Instancing Abstract GLSL Pseudo-Instancing This whitepaper and corresponding SDK sample demonstrate a technique to speed up the rendering of instanced geometry with GLSL. The

### CGS 3220 Lecture 13 Polygonal Character Modeling

CGS 3220 Lecture 13 Polygonal Character Modeling Introduction to Computer Aided Modeling Instructor: Brent Rossen Overview Box modeling Polygon proxy Mirroring Polygonal components Topology editing Procedural

### 5 PRIMITIVES AND INTERPOLATION

5 PRIMITIVES AND INTERPOLATION A large variety of different graphical primitives are routinely used for high-quality, offline rendering: spline patches, blobs, polygons, spheres, superquadrics, and many

### Overview of Quadtree-based Terrain Triangulation and Visualization

Overview of Quadtree-based Terrain Triangulation and Visualization Renato Pajarola UCI-ICS Technical Report No. 02-01 Department of Information & Computer Science University of California, Irvine January

### Isosurface Rendering. CSC 7443: Scientific Information Visualization

Isosurface Rendering What is Isosurfacing? An isosurface is the 3D surface representing the locations of a constant scalar value within a volume A surface with the same scalar field value Isosurfaces form

### AutoCAD DWG Drawing Limitations in SAP 3D Visual Enterprise 9.0 FP02

AutoCAD DWG Drawing Limitations in SAP 3D Visual Enterprise 9.0 FP02 AutoCAD Import Limitations The following is a list of AutoCAD features that will not give an expected viewable when using SAP 3D Visual

### Image Morphing. The user is responsible for defining correspondences between features Very popular technique. since Michael Jackson s clips

Image Morphing Image Morphing Image Morphing Image Morphing The user is responsible for defining correspondences between features Very popular technique since Michael Jackson s clips Morphing Coordinate

### CS 532: 3D Computer Vision 12 th Set of Notes

1 CS 532: 3D Computer Vision 12 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Meshes Slides

### Viewport 2.0 API Porting Guide for Locators

Viewport 2.0 API Porting Guide for Locators Introduction This document analyzes the choices for porting plug-in locators (MPxLocatorNode) to Viewport 2.0 mostly based on the following factors. Portability:

### Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

### Werner Purgathofer

Einführung in Visual Computing 186.822 Visible Surface Detection Werner Purgathofer Visibility in the Rendering Pipeline scene objects in object space object capture/creation ti modeling viewing projection