Advanced 3D Computer Graphics

Total Page:16

File Type:pdf, Size:1020Kb

Advanced 3D Computer Graphics Advanced 3D Computer Graphics Prof. Dr. Renato Pajarola Information & Computer Science University of California Irvine ICS 186b, October 20. 2000 1 Polygonal Meshes Polygonal meshes are (still) the most common representations of 3D surfaces for interactive render- ing. Even complicated smooth surfaces are often approximated as a collection of planar polygons. Also more complicated modeling primitives such as spheres and curved surfaces, or solid modeling constructions used in advanced modeling applications, or rendering systems such as ray-tracing often have to be tessellated for interactive rendering or further processing. Furthermore, today’s graphics hardware is optimized for fast processing of triangle meshes. Handling triangle meshes is sufficient in the sense that planar polygons can easily be triangulated to form a collection of triangles covering exactly the same planar region. If not specified otherwise, we refer to triangle meshes in this section. 1.1 Mesh Representation 1.1.1 Mesh properties To talk about triangle meshes it is important to define the following few terms that are very often used, and that characterize a triangle mesh. Incidence is defined between vertices, edges, and faces. All faces sharing an edge are incident to that edge, all faces sharing a vertex are incident to that ver- tex, all edges sharing a vertex are incident to that vertex, and vice versa. Definition 1.1 The boundary or boundaries of a mesh is defined by the set of edges that have only one incident face. Definition 1.2 A mesh is called manifold if the surrounding of every point on the surface is homeo- morphic, or topologically equivalent to a disk, or half-disk if the point is on the boundary. Definition 1.3 The genus of a closed manifold surface (with no boundaries) is defined as the number of topologically different closed paths (cycles, or loops) on the surface that cannot be contracted along the surface to a singular point. Sometimes this is also referred to as the number of handles of the shape. Definition 1.4 A mesh is called orientable if a consistent orientation of the vertices of the planar faces exists such that the two vertices of each edge are ordered oppositely for the incident faces. A polygonal mesh is also often called matching or conforming if every edge has exactly two incident faces, or one if the edge is on the boundary. A mesh is not matching if there exist so called T-vertices that lie exactly on an edge but are not an endpoint of that edge. Even if T-vertices are manifold with respect to the surface topology, they are regarded as a singularity since they form a boundary of col- linear edges. Non-matching triangulations can also create rendering artifacts when using vertex nor- mals for shading properties. Most of the time a triangulation is assumed to be matching. Mesh Representation Boundary edges Non-manifold vertex Non-manifold edge Non-orientable mesh Shape of genus 1 The Euler formula of planar graphs with V vertices, E edges, F faces, and C connected components is given by VE– +1F = + C . For planar triangulations – one component, orientable, manifold, matching – where each edge is shared by two faces, and each face has three edges 2E = 3F one can get the relation for vertices and faces as V –22F = , thus there are roughly twice as many faces as vertices in a typical triangular mesh (and three times as many edges as vertices). 1.1.2 Indexed face list The indexed face list is a very simple structure to represent a polygonal mesh M consisting of n ver- tices V = {v1, v2, …, vn} and m faces F = {f1, f2, …, fm}. Since each k-sided planar face can uniquely be defined by its k vertices (i.e. ordered counter clockwise), a list of k indices into the list of vertices can be used to represent one face. For triangle meshes an indexed face list consists of an array of ver- tices each having three coordinates, and an array of faces each having three indices into the vertex array. faces vertices xyz f1 v1 vk vi v f f vi vj vk i vk vj vj Since triangle meshes have about m = 2·n faces, each triangle has to index 3 vertices, and n vertices can be indexed by log2n bits, the indexed triangle list requires 6·n·log2n bits to represent the inci- 2 Mesh Representation dence relations, or connectivity of the triangle mesh. Additionally, 3·n·q bits are required to store the 3D vertex coordinates with fixed resolution of q bits, this is also called the geometry information. 1.1.3 Half-edge data structure While representing the mesh structure exactly, the indexed face list does not provide an efficient way of traversing the mesh, or accessing adjacent elements through incidence relations. Given a vertex, it is very time consuming to find all incident faces or edges, or given a triangle it is complicated to retrieve its incident triangle on a particular edge. Mesh traversal and neighbor finding are very important operations on polygonal meshes and efficiently supported by the half-edge data structure. The half-edge data structure represents a polygonal mesh as a list of vertices, and a list of directed half-edges, each k-sided planar face is represented by k consecutive entries in the half-edges array. Each entry h[i] in the half-edge array has to following fields: h[i].s - index of start vertex of the half-edge h[i].r - index of reverse half-edge of adjacent face incident upon this edge h[i].n - index of the next half-edge that follows in counter clockwise ordering h[i].p - index of the previous half-edge h.r h.n h h.s h.p For triangular meshes with all 3-sided faces, the next and previous pointers h.n and h.p can be omit- ted, since organizing the 3 half-edges of each face consecutively in the array allows for simple mod- ulo arithmetic to access next and previous edges (but we will keep the notation): h[i].n = (i + 1) MOD 3 + 3 (i DIV 3) h[i].p = (i + 2) MOD 3 + 3 (i DIV 3) Faces are also easily indexed, edge i belongs to face i DIV 3, and the first half-edge of face j is j · 3. Given such a half-edge data structure, most incidence relations can easily be accessed without searching all list elements. For simplicity we will abbreviate array indexing h[i].s by h.s in the fol- lowing examples. • vertices of and edge are given by h.s and h.n.s (note that using h.r.s will not work for edges on the boundary of the mesh!) • index of adjacent face upon h is given by h.r DIV 3 • rotating counter clockwise around the start vertex of h is performed by h = h.p.r • clockwise rotation about start vertex is performed by h = h.r.n Operations accessing the reverse half-edge index must always be performed very carefully for meshes with boundaries, and special cases must handle boundary conditions. Building a half-edge data structure from an indexed face input list can also be done very efficiently as follows: 3 Mesh Representation 1. Copy or keep the vertex array. 2. Read the indexed faces list and initialize the half-edge triples per face with the correct start- ing vertices. 3. Read the indexed faces list again, and create an auxiliary edge list with 3 entries per face, however, each such entry consists of both endpoints of the edge and an index to the half- edge created in the previous step. The vertex indices of the two endpoints are stored with the smaller vertex index first, and the larger vertex index in the second field. 4. Order the auxiliary edge list lexicographically according to the two vertex indices of each entry. Thus shared edges between two faces will now be adjacent in the auxiliary table, and the reverse half-edge information can be completed for every half-edge. Omitting the reverse information that can be recomputed when loading the data-structure, the half- edge structure needs exactly the same storage for representing a mesh as the indexed face list. If it includes the reverse information, a mesh with n vertices would require 6·n (log2n + log26n) bits on average. Doubly-connected edge list The doubly-connected edge list (DCL) often used in computational geometry and graph methods consists of three set of records: one for vertices, one for faces, and one for half-edges. Each vertex v stores its coordinates, and a pointer to an arbitrary half-edge that has v as its origin. Each face stores one pointer to a outside bounding half-edge (and a list of half-edge pointers to inner boundaries of holes). Each half-edge stores a pointer to its origin vertex, a pointer to its reverse (twin) edge, and a pointer to the face it bounds, as well as two pointers to the next and previous half-edges bounding the same face. The half-edge data structure is a simplified version of the DCL without vertex-to-edge and face-to- edge relations, and omitted face pointer per edge. Face to edge relations are rather captured by con- secutively ordering and grouping the half-edges that bound a particular face. Winged-edge list The winged-edge data structure, another commonly used graph or mesh representation, stores for each edge pointers to its endpoints, the two faces sharing the edge, and the four incident edges that bound the same faces.
Recommended publications
  • Lecture 3 1 Geometry of Linear Programs
    ORIE 6300 Mathematical Programming I September 2, 2014 Lecture 3 Lecturer: David P. Williamson Scribe: Divya Singhvi Last time we discussed how to take dual of an LP in two different ways. Today we will talk about the geometry of linear programs. 1 Geometry of Linear Programs First we need some definitions. Definition 1 A set S ⊆ <n is convex if 8x; y 2 S, λx + (1 − λ)y 2 S, 8λ 2 [0; 1]. Figure 1: Examples of convex and non convex sets Given a set of inequalities we define the feasible region as P = fx 2 <n : Ax ≤ bg. We say that P is a polyhedron. Which points on this figure can have the optimal value? Our intuition from last time is that Figure 2: Example of a polyhedron. \Circled" corners are feasible and \squared" are non feasible optimal solutions to linear programming problems occur at \corners" of the feasible region. What we'd like to do now is to consider formal definitions of the \corners" of the feasible region. 3-1 One idea is that a point in the polyhedron is a corner if there is some objective function that is minimized there uniquely. Definition 2 x 2 P is a vertex of P if 9c 2 <n with cT x < cT y; 8y 6= x; y 2 P . Another idea is that a point x 2 P is a corner if there are no small perturbations of x that are in P . Definition 3 Let P be a convex set in <n. Then x 2 P is an extreme point of P if x cannot be written as λy + (1 − λ)z for y; z 2 P , y; z 6= x, 0 ≤ λ ≤ 1.
    [Show full text]
  • An Introduction to Topology the Classification Theorem for Surfaces by E
    An Introduction to Topology An Introduction to Topology The Classification theorem for Surfaces By E. C. Zeeman Introduction. The classification theorem is a beautiful example of geometric topology. Although it was discovered in the last century*, yet it manages to convey the spirit of present day research. The proof that we give here is elementary, and its is hoped more intuitive than that found in most textbooks, but in none the less rigorous. It is designed for readers who have never done any topology before. It is the sort of mathematics that could be taught in schools both to foster geometric intuition, and to counteract the present day alarming tendency to drop geometry. It is profound, and yet preserves a sense of fun. In Appendix 1 we explain how a deeper result can be proved if one has available the more sophisticated tools of analytic topology and algebraic topology. Examples. Before starting the theorem let us look at a few examples of surfaces. In any branch of mathematics it is always a good thing to start with examples, because they are the source of our intuition. All the following pictures are of surfaces in 3-dimensions. In example 1 by the word “sphere” we mean just the surface of the sphere, and not the inside. In fact in all the examples we mean just the surface and not the solid inside. 1. Sphere. 2. Torus (or inner tube). 3. Knotted torus. 4. Sphere with knotted torus bored through it. * Zeeman wrote this article in the mid-twentieth century. 1 An Introduction to Topology 5.
    [Show full text]
  • Using Typography and Iconography to Express Emotion
    Using typography and iconography to express emotion (or meaning) in motion graphics as a learning tool for ESL (English as a second language) in a multi-device platform. A thesis submitted to the School of Visual Communication Design, College of Communication and Information of Kent State University in partial fulfillment of the requirements for the degree of Master of Fine Arts by Anthony J. Ezzo May, 2016 Thesis written by Anthony J. Ezzo B.F.A. University of Akron, 1998 M.F.A., Kent State University, 2016 Approved by Gretchen Caldwell Rinnert, M.G.D., Advisor Jaime Kennedy, M.F.A., Director, School of Visual Communication Design Amy Reynolds, Ph.D., Dean, College of Communication and Information TABLE OF CONTENTS TABLE OF CONTENTS .................................................................................... iii LIST OF FIGURES ............................................................................................ v LIST OF TABLES .............................................................................................. v ACKNOWLEDGEMENTS ................................................................................ vi CHAPTER 1. THE PROBLEM .......................................................................................... 1 Thesis ..................................................................................................... 6 2. BACKGROUND AND CONTEXT ............................................................. 7 Understanding The Ell Process ..............................................................
    [Show full text]
  • 3D Graphics Fundamentals
    11BegGameDev.qxd 9/20/04 5:20 PM Page 211 chapter 11 3D Graphics Fundamentals his chapter covers the basics of 3D graphics. You will learn the basic concepts so that you are at least aware of the key points in 3D programming. However, this Tchapter will not go into great detail on 3D mathematics or graphics theory, which are far too advanced for this book. What you will learn instead is the practical implemen- tation of 3D in order to write simple 3D games. You will get just exactly what you need to 211 11BegGameDev.qxd 9/20/04 5:20 PM Page 212 212 Chapter 11 ■ 3D Graphics Fundamentals write a simple 3D game without getting bogged down in theory. If you have questions about how matrix math works and about how 3D rendering is done, you might want to use this chapter as a starting point and then go on and read a book such as Beginning Direct3D Game Programming,by Wolfgang Engel (Course PTR). The goal of this chapter is to provide you with a set of reusable functions that can be used to develop 3D games. Here is what you will learn in this chapter: ■ How to create and use vertices. ■ How to manipulate polygons. ■ How to create a textured polygon. ■ How to create a cube and rotate it. Introduction to 3D Programming It’s a foregone conclusion today that everyone has a 3D accelerated video card. Even the low-end budget video cards are equipped with a 3D graphics processing unit (GPU) that would be impressive were it not for all the competition in this market pushing out more and more polygons and new features every year.
    [Show full text]
  • Surface Physics I and II
    Surface physics I and II Lectures: Mon 12-14 ,Wed 12-14 D116 Excercises: TBA Lecturer: Antti Kuronen, [email protected] Exercise assistant: Ane Lasa, [email protected] Course homepage: http://www.physics.helsinki.fi/courses/s/pintafysiikka/ Objectives ● To study properties of surfaces of solid materials. ● The relationship between the composition and morphology of the surface and its mechanical, chemical and electronic properties will be dealt with. ● Technologically important field of surface and thin film growth will also be covered. Surface physics I 2012: 1. Introduction 1 Surface physics I and II ● Course in two parts ● Surface physics I (SPI) (530202) ● Period III, 5 ECTS points ● Basics of surface physics ● Surface physics II (SPII) (530169) ● Period IV, 5 ECTS points ● 'Special' topics in surface science ● Surface and thin film growth ● Nanosystems ● Computational methods in surface science ● You can take only SPI or both SPI and SPII Surface physics I 2012: 1. Introduction 2 How to pass ● Both courses: ● Final exam 50% ● Exercises 50% ● Exercises ● Return by ● email to [email protected] or ● on paper to course box on the 2nd floor of Physicum ● Return by (TBA) Surface physics I 2012: 1. Introduction 3 Table of contents ● Surface physics I ● Introduction: What is a surface? Why is it important? Basic concepts. ● Surface structure: Thermodynamics of surfaces. Atomic and electronic structure. ● Experimental methods for surface characterization: Composition, morphology, electronic properties. ● Surface physics II ● Theoretical and computational methods in surface science: Analytical models, Monte Carlo and molecular dynamics sumilations. ● Surface growth: Adsorption, desorption, surface diffusion. ● Thin film growth: Homoepitaxy, heteroepitaxy, nanostructures.
    [Show full text]
  • The Uses of Animation 1
    The Uses of Animation 1 1 The Uses of Animation ANIMATION Animation is the process of making the illusion of motion and change by means of the rapid display of a sequence of static images that minimally differ from each other. The illusion—as in motion pictures in general—is thought to rely on the phi phenomenon. Animators are artists who specialize in the creation of animation. Animation can be recorded with either analogue media, a flip book, motion picture film, video tape,digital media, including formats with animated GIF, Flash animation and digital video. To display animation, a digital camera, computer, or projector are used along with new technologies that are produced. Animation creation methods include the traditional animation creation method and those involving stop motion animation of two and three-dimensional objects, paper cutouts, puppets and clay figures. Images are displayed in a rapid succession, usually 24, 25, 30, or 60 frames per second. THE MOST COMMON USES OF ANIMATION Cartoons The most common use of animation, and perhaps the origin of it, is cartoons. Cartoons appear all the time on television and the cinema and can be used for entertainment, advertising, 2 Aspects of Animation: Steps to Learn Animated Cartoons presentations and many more applications that are only limited by the imagination of the designer. The most important factor about making cartoons on a computer is reusability and flexibility. The system that will actually do the animation needs to be such that all the actions that are going to be performed can be repeated easily, without much fuss from the side of the animator.
    [Show full text]
  • Surface Water
    Chapter 5 SURFACE WATER Surface water originates mostly from rainfall and is a mixture of surface run-off and ground water. It includes larges rivers, ponds and lakes, and the small upland streams which may originate from springs and collect the run-off from the watersheds. The quantity of run-off depends upon a large number of factors, the most important of which are the amount and intensity of rainfall, the climate and vegetation and, also, the geological, geographi- cal, and topographical features of the area under consideration. It varies widely, from about 20 % in arid and sandy areas where the rainfall is scarce to more than 50% in rocky regions in which the annual rainfall is heavy. Of the remaining portion of the rainfall. some of the water percolates into the ground (see "Ground water", page 57), and the rest is lost by evaporation, transpiration and absorption. The quality of surface water is governed by its content of living organisms and by the amounts of mineral and organic matter which it may have picked up in the course of its formation. As rain falls through the atmo- sphere, it collects dust and absorbs oxygen and carbon dioxide from the air. While flowing over the ground, surface water collects silt and particles of organic matter, some of which will ultimately go into solution. It also picks up more carbon dioxide from the vegetation and micro-organisms and bacteria from the topsoil and from decaying matter. On inhabited watersheds, pollution may include faecal material and pathogenic organisms, as well as other human and industrial wastes which have not been properly disposed of.
    [Show full text]
  • Flood Insurance Rate Map (FIRM) Graphics Guidance
    Guidance for Flood Risk Analysis and Mapping Flood Insurance Rate Map (FIRM) Graphics November 2019 Requirements for the Federal Emergency Management Agency (FEMA) Risk Mapping, Assessment, and Planning (Risk MAP) Program are specified separately by statute, regulation, or FEMA policy (primarily the Standards for Flood Risk Analysis and Mapping). This document provides guidance to support the requirements and recommends approaches for effective and efficient implementation. The guidance, context, and other information in this document is not required unless it is codified separately in the aforementioned statute, regulation, or policy. Alternate approaches that comply with all requirements are acceptable. For more information, please visit the FEMA Guidelines and Standards for Flood Risk Analysis and Mapping webpage (www.fema.gov/guidelines-and-standards-flood-risk-analysis-and- mapping). Copies of the Standards for Flood Risk Analysis and Mapping policy, related guidance, technical references, and other information about the guidelines and standards development process are all available here. You can also search directly by document title at www.fema.gov/library. FIRM Graphics November 2019 Guidance Document 6 Page i Document History Affected Section or Date Description Subsection This guidance has been revised to align various November descriptions and specifications to standard operating Sections 4.3 and 5.2 2019 procedures, including labeling of structures and application of floodway and special floodway notes. FIRM Graphics November
    [Show full text]
  • Simulating Humans: Computer Graphics, Animation, and Control
    University of Pennsylvania ScholarlyCommons Center for Human Modeling and Simulation Department of Computer & Information Science 6-1-1993 Simulating Humans: Computer Graphics, Animation, and Control Bonnie L. Webber University of Pennsylvania, [email protected] Cary B. Phillips University of Pennsylvania Norman I. Badler University of Pennsylvania, [email protected] Follow this and additional works at: https://repository.upenn.edu/hms Recommended Citation Webber, B. L., Phillips, C. B., & Badler, N. I. (1993). Simulating Humans: Computer Graphics, Animation, and Control. Retrieved from https://repository.upenn.edu/hms/68 Reprinted with Permission by Oxford University Press. Reprinted from Simulating humans: computer graphics animation and control, Norman I. Badler, Cary B. Phillips, and Bonnie L. Webber (New York: Oxford University Press, 1993), 283 pages. Author URL: http://www.cis.upenn.edu/~badler/book/book.html This paper is posted at ScholarlyCommons. https://repository.upenn.edu/hms/68 For more information, please contact [email protected]. Simulating Humans: Computer Graphics, Animation, and Control Abstract People are all around us. They inhabit our home, workplace, entertainment, and environment. Their presence and actions are noted or ignored, enjoyed or disdained, analyzed or prescribed. The very ubiquitousness of other people in our lives poses a tantalizing challenge to the computational modeler: people are at once the most common object of interest and yet the most structurally complex. Their everyday movements are amazingly uid yet demanding to reproduce, with actions driven not just mechanically by muscles and bones but also cognitively by beliefs and intentions. Our motor systems manage to learn how to make us move without leaving us the burden or pleasure of knowing how we did it.
    [Show full text]
  • Archimedean Solids
    University of Nebraska - Lincoln DigitalCommons@University of Nebraska - Lincoln MAT Exam Expository Papers Math in the Middle Institute Partnership 7-2008 Archimedean Solids Anna Anderson University of Nebraska-Lincoln Follow this and additional works at: https://digitalcommons.unl.edu/mathmidexppap Part of the Science and Mathematics Education Commons Anderson, Anna, "Archimedean Solids" (2008). MAT Exam Expository Papers. 4. https://digitalcommons.unl.edu/mathmidexppap/4 This Article is brought to you for free and open access by the Math in the Middle Institute Partnership at DigitalCommons@University of Nebraska - Lincoln. It has been accepted for inclusion in MAT Exam Expository Papers by an authorized administrator of DigitalCommons@University of Nebraska - Lincoln. Archimedean Solids Anna Anderson In partial fulfillment of the requirements for the Master of Arts in Teaching with a Specialization in the Teaching of Middle Level Mathematics in the Department of Mathematics. Jim Lewis, Advisor July 2008 2 Archimedean Solids A polygon is a simple, closed, planar figure with sides formed by joining line segments, where each line segment intersects exactly two others. If all of the sides have the same length and all of the angles are congruent, the polygon is called regular. The sum of the angles of a regular polygon with n sides, where n is 3 or more, is 180° x (n – 2) degrees. If a regular polygon were connected with other regular polygons in three dimensional space, a polyhedron could be created. In geometry, a polyhedron is a three- dimensional solid which consists of a collection of polygons joined at their edges. The word polyhedron is derived from the Greek word poly (many) and the Indo-European term hedron (seat).
    [Show full text]
  • 3D Modeling: Surfaces
    CS 430/536 Computer Graphics I Overview • 3D model representations 3D Modeling: • Mesh formats Surfaces • Bicubic surfaces • Bezier surfaces Week 8, Lecture 16 • Normals to surfaces David Breen, William Regli and Maxim Peysakhov • Direct surface rendering Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University 1 2 http://gicl.cs.drexel.edu 1994 Foley/VanDam/Finer/Huges/Phillips ICG 3D Modeling Representing 3D Objects • 3D Representations • Exact • Approximate – Wireframe models – Surface Models – Wireframe – Facet / Mesh – Solid Models – Parametric • Just surfaces – Meshes and Polygon soups – Voxel/Volume models Surface – Voxel – Decomposition-based – Solid Model • Volume info • Octrees, voxels • CSG • Modeling in 3D – Constructive Solid Geometry (CSG), • BRep Breps and feature-based • Implicit Solid Modeling 3 4 Negatives when Representing 3D Objects Representing 3D Objects • Exact • Approximate • Exact • Approximate – Complex data structures – Lossy – Precise model of – A discretization of – Expensive algorithms – Data structure sizes can object topology the 3D object – Wide variety of formats, get HUGE, if you want each with subtle nuances good fidelity – Mathematically – Use simple – Hard to acquire data – Easy to break (i.e. cracks represent all primitives to – Translation required for can appear) rendering – Not good for certain geometry model topology applications • Lots of interpolation and and geometry guess work 5 6 1 Positives when Exact Representations Representing 3D Objects • Exact
    [Show full text]
  • Introduction to Scalable Vector Graphics
    Introduction to Scalable Vector Graphics Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Introduction.............................................................. 2 2. What is SVG?........................................................... 4 3. Basic shapes............................................................ 10 4. Definitions and groups................................................. 16 5. Painting .................................................................. 21 6. Coordinates and transformations.................................... 32 7. Paths ..................................................................... 38 8. Text ....................................................................... 46 9. Animation and interactivity............................................ 51 10. Summary............................................................... 55 Introduction to Scalable Vector Graphics Page 1 of 56 ibm.com/developerWorks Presented by developerWorks, your source for great tutorials Section 1. Introduction Should I take this tutorial? This tutorial assists developers who want to understand the concepts behind Scalable Vector Graphics (SVG) in order to build them, either as static documents, or as dynamically generated content. XML experience is not required, but a familiarity with at least one tagging language (such as HTML) will be useful. For basic XML
    [Show full text]