PA1 Supplementary notes 1 Programming assignment You need to implement the following: 1. Display basic mesh Information Find the number of vertices, edges,

Slides:



Advertisements
Similar presentations
Example 1 Translate a Figure Example 2 Find a Translation Matrix
Advertisements

Steady-state heat conduction on triangulated planar domain May, 2002
Overlay of Two Subdivisions
Discrete Exterior Calculus. More Complete Introduction See Chapter 7 “Discrete Differential Forms for Computational Modeling” in the SIGGRAPH 2006 Discrete.
2D/3D Shape Manipulation, 3D Printing
Computational Geometry -- Voronoi Diagram
Siggraph Course Mesh Parameterization: Theory and Practice Barycentric Mappings.
Polygonal Mesh – Data Structure and Processing
1cs533d-term Notes  Required reading: Baraff & Witkin, “Large steps in cloth animation”, SIGGRAPH’98 Grinspun et al., “Discrete shells”, SCA’03.
INFORMATIK Differential Coordinates for Interactive Mesh Editing Yaron Lipman Olga Sorkine Daniel Cohen-Or David Levin Tel-Aviv University Christian Rössl.
Optimizing Content-Preserving Projections for Wide-Angle Images ACM SIGGRAPH 2009 Robert Carroll (University of California, Berkeley) Maneesh Agrawal (University.
Polygonal Mesh – Data Structure and Smoothing
CS CS 175 – Week 5 Mesh Decimation Fairness Criteria.
Voronoi Diagrams.
CS CS 175 – Week 4 Triangle Mesh Smoothing Discrete Differential Geometry.
Smooth Geometry Images Frank Losasso, Hugues Hoppe, Scott Schaefer, Joe Warren.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
Computer Graphics Lecture 13 Curves and Surfaces I.
Curves and Surfaces (cont’) Amy Zhang. Conversion between Representations  Example: Convert a curve from a cubic B-spline curve to the Bézier form:
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
Antigone Engine Kevin Kassing – Period
4/15/04© University of Wisconsin, CS559 Spring 2004 Last Time More modeling: –Hierarchical modeling –Instancing and Parametric Instancing –Constructive.
V. Space Curves Types of curves Explicit Implicit Parametric.
Polygon Modelling. 3D Representation Wire frame NURBS surface Solid Voxel Mesh.
1 Surface Applications Fitting Manifold Surfaces To 3D Point Clouds, Cindy Grimm, David Laidlaw and Joseph Crisco. Journal of Biomechanical Engineering,
Mesh Data Structure. Meshes Boundary edge: adjacent to 1 face Regular edge: adjacent to 2 faces Singular edge: adjacent to >2 faces Mesh: straight-line.
1 Manifolds from meshes Cindy Grimm and John Hughes, “Modeling Surfaces of Arbitrary Topology using Manifolds”, Siggraph ’95 J. Cotrina Navau and N. Pla.
Object Representation Rama C Hoetzlein, 2010 Univ. of California Santa Barbara Lecture Notes.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
1 Triangle Surfaces with Discrete Equivalence Classes Published in SIGGRAPH 2010 報告者 : 丁琨桓.
Geometric Objects and Transformation
Subdivision Schemes Basic idea: Start with something coarse, and refine it into smaller pieces for rendering –We have seen how subdivision may be used.
Representation. Objectives Introduce concepts such as dimension and basis Introduce coordinate systems for representing vectors spaces and frames for.
Introduction to Computer Graphics: Object Representation Rama C Hoetzlein, 2010 Univ. of California Santa Barbara Lecture Notes.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
CAP4730: Computational Structures in Computer Graphics
Computer Graphics Basic 3D Geometry CO2409 Computer Graphics Week 5-1.
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
Arrangements and Duality Sanjay Sthapit Comp290 10/6/98.
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
Subdivision Surfaces Ref: Subdivision Surfaces in Character Animation, DeRose et. al, SIGGRAPH98.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 8 Ravi Ramamoorthi
Geometric Modeling using Polygonal Meshes Lecture 3: Discrete Differential Geometry and its Application to Mesh Processing Office: South B-C Global.
CS418 Computer Graphics John C. Hart
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
Bump Map 1. High Field Function: H(u, v) New Normal : N’
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
Robust Watermarking of 3D Mesh Models. Introduction in this paper, it proposes an algorithm that extracts 2D image from the 3D model and embed watermark.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Subdivision surfaces.
Introduction to Meshes Lecture 22 Mon, Oct 20, 2003.
11/16/04© University of Wisconsin, CS559 Fall 2004 Last Time Texture Anti-Aliasing Texture boundaries Modeling introduction.
11/12/02(c) University of Wisconsin, CS559 Last Time Texturing Details Homework 5.
3D Object Representations. Introduction Line and circle and polygon algorithms- represented simple and smooth object. Some Natural object are neither.
Angles and Parallel Lines
Morphing and Shape Processing
Angle Relationships.
Data Structure of Triangle Meshes
Data Structure of Triangle Meshes
Suggestive Contours with Geometry Shader
CSC461: Lecture 23 Shading Computation
Vectors, Normals, & Shading
Craig Schroeder October 26, 2004
Angles and Parallel Lines
Introduction to Meshes
Angles and Parallel Lines
Splash Screen.
Discrete Mathematics for Computer Science
Angles and Parallel Lines
Introduction to Meshes
Presentation transcript:

PA1 Supplementary notes 1 Programming assignment You need to implement the following: 1. Display basic mesh Information Find the number of vertices, edges, faces, boundaries, and compute Euler characteristic and number of genus Corresponding to function Mesh::DisplayMeshInfo() 2. Compute normal at each vertex Corresponding to function Mesh::ComputeVertexNormals() 3. Compute mean curvature at each vertex Corresponding to function Mesh:: ComputeVertexCurvatures ()

PA1 Supplementary notes 2 Programming assignment 4.Explicit umbrella smoothing Corresponding to function Mesh::UmbrellaSmooth () Implicit umbrella smoothing Corresponding to function Mesh::ImplicitUmbrellaSmooth ()

PA1 Supplementary notes 3 Wavefront OBJ file format  comment  three vertices of each face  coordinates of vertex 1 v1 v2 v3 v4  counter-clockwise order as you look at the face from outside

PA1 Supplementary notes 4 How to modify program arguments 1) Select the menu item “Project  Property”

PA1 Supplementary notes 5 How to modify program arguments 2) Select the “Debugging” tag 3) Type your arguments here 4) Press enter to comfirm

PA1 Supplementary notes 6 Normal at a vertex From Siggraph 2000 subdivision course notes, the normal vector at an interior vertex of valence k can be computed as t 1 x t 2, where t i are tangent vectors computed as: Example: for valence four, the masks are [1, 0, –1, 0] and [0, 1, 0, –1] t1 t2 Masks for valence four

PA1 Supplementary notes 7 Normal at a vertex At a boundary vertex p with valence k, the normal is computed as t along x t across computed as follows: p0p0 p1p1 p k-1 p

PA1 Supplementary notes 8 Mean curvature at a vertex From Siggraph99 Desbrun et al, the discrete mean curvature at an interior vertex p with valence k can be computed as the L2-norm of where A is the sum of areas of all the triangles sharing the vertex p p pjpj p p j-1 pjpj P j+1 one term of the summation, corresponding to edge p p j

PA1 Supplementary notes 9 Explicit Umbrella Smoothing Fairing operator In matrix form In your implementation you do not need to build the matrix Drawbacks: small time step for large mesh  slow Where t is time stamp

PA1 Supplementary notes 10 Implicit Umbrella Smoothing Explicit updating Allows large time step In your implementation setting to 1 is okay You can use biconjugate gradient (BCG) method to solve the linear system You need to solve a sparse linear system

PA1 Supplementary notes 11 Sparse Linear System You need to build the sparse linear system by create a Matrix object Use Matrix::AddElement to add an element Use Matrix::SortMatrix to sort the elements after adding all of them You need to implement the function Matrix::BCG() to solve the linear system Use Matrix::Multiply to compute b = Ax Use Matrix::PreMultiply to compute b T = x T A

PA1 Supplementary notes 12 Using Boundary Half-edge For open meshes, you can also maintain boundary half-edges such that the searching and updating will be much more easy. (every things are circular list, also no need to handle NULL pointers) Here the boundary half-edges are shown in red as the triangles are being loaded.

PA1 Supplementary notes 13 Useful Classes and Functions Classes OneRingHEdge and OneRingVertex provide an interface to access the one-ring neighboring half-edges and vertices of a given vertex. Function Vertex::Valence() let you know the valence (# of neighboring vertices) of a vertex.

PA1 Supplementary notes 14 Rendering in OpenGL (Flat) One normal for a triangle

PA1 Supplementary notes 15 Rendering in OpenGL (Smooth) One normal for each vertex