Geometric modeling 1

Similar documents
Geometric Modeling 1 1/69

Subdivision Surfaces

Subdivision Surfaces

Curve Corner Cutting

Subdivision Curves and Surfaces: An Introduction

Computergrafik. Matthias Zwicker. Herbst 2010

Subdivision Curves and Surfaces

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

3D Modeling Parametric Curves & Surfaces

Modeling. Simulating the Everyday World

Curves and Surfaces 1

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

Curves and Surfaces 2

04 - Normal Estimation, Curves

Introduction to the Mathematical Concepts of CATIA V5

B-spline Curves. Smoother than other curve forms

Computer Graphics Fundamentals. Jon Macey

UNIVERSITY OF CALGARY. Subdivision Surfaces. Advanced Geometric Modeling Faramarz Samavati

Subdivision. Outline. Key Questions. Subdivision Surfaces. Advanced Computer Graphics (Spring 2013) Video: Geri s Game (outside link)

Geometric Modeling and Processing

COMP3421. Global Lighting Part 2: Radiosity

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Key 3D Modeling Terms Beginners Need To Master

Laplacian Meshes. COS 526 Fall 2016 Slides from Olga Sorkine and Yaron Lipman

Removing Polar Rendering Artifacts in Subdivision Surfaces

Physically-Based Modeling and Animation. University of Missouri at Columbia

Shape Modeling and Geometry Processing

Subdivision overview

Generating analysis-ready NURBS models of cloth for isogeometric analysis

Bezier Curves, B-Splines, NURBS

Images from 3D Creative Magazine. 3D Modelling Systems

Non-Uniform Recursive Doo-Sabin Surfaces (NURDSes)

Polygonal Mesh. Geometric object made of vertices, edges and faces. Faces are polygons. Polyhedron. Triangular mesh Quad mesh. Pyramid Cube Sphere (?

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Geometric Modeling Assignment 5: Shape Deformation

Central issues in modelling

Introduction to Computer Graphics

Subdivision Surfaces. Course Syllabus. Course Syllabus. Modeling. Equivalence of Representations. 3D Object Representations

Dgp _ lecture 2. Curves

3D Modeling techniques

Information Coding / Computer Graphics, ISY, LiTH. Splines

CS354 Computer Graphics Surface Representation III. Qixing Huang March 5th 2018

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

Easy modeling generate new shapes by deforming existing ones

Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

Recursive Subdivision Surfaces for Geometric Modeling

u 0+u 2 new boundary vertex

05 - Surfaces. Acknowledgements: Olga Sorkine-Hornung. CSCI-GA Geometric Modeling - Daniele Panozzo

2D Spline Curves. CS 4620 Lecture 18

Technical Report. Removing polar rendering artifacts in subdivision surfaces. Ursula H. Augsdörfer, Neil A. Dodgson, Malcolm A. Sabin.

Subdivision curves and surfaces. Brian Curless CSE 557 Fall 2015

Curve and Surface Basics

CS354 Computer Graphics Surface Representation IV. Qixing Huang March 7th 2018

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Def De orma f tion orma Disney/Pixar

Computer Graphics Curves and Surfaces. Matthias Teschner

The TiGL Geometry Library and its Current Mathematical Challenges

Bézier Splines. B-Splines. B-Splines. CS 475 / CS 675 Computer Graphics. Lecture 14 : Modelling Curves 3 B-Splines. n i t i 1 t n i. J n,i.

Geometric Modeling Systems

On Smooth Bicubic Surfaces from Quad Meshes

Computational Design. Stelian Coros

CS123 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics 1/15

08 - Designing Approximating Curves

Sculpting 3D Models. Glossary

Local Modification of Subdivision Surfaces Based on Curved Mesh

Surface Modeling. Polygon Tables. Types: Generating models: Polygon Surfaces. Polygon surfaces Curved surfaces Volumes. Interactive Procedural

Parallel Computation of Spherical Parameterizations for Mesh Analysis. Th. Athanasiadis and I. Fudos University of Ioannina, Greece

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

G 2 Interpolation for Polar Surfaces

Distance Functions 1

Advanced Modeling 2. Katja Bühler, Andrej Varchola, Eduard Gröller. March 24, x(t) z(t)

Know it. Control points. B Spline surfaces. Implicit surfaces

CS337 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics. Bin Sheng Representing Shape 9/20/16 1/15

Shape modeling Modeling technique Shape representation! 3D Graphics Modeling Techniques

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

Ray Casting of Trimmed NURBS Surfaces on the GPU

Surfaces for CAGD. FSP Tutorial. FSP-Seminar, Graz, November

Interpolatory 3-Subdivision

Character Modeling COPYRIGHTED MATERIAL

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

CS130 : Computer Graphics Curves (cont.) Tamar Shinar Computer Science & Engineering UC Riverside

Normals of subdivision surfaces and their control polyhedra

Curves. Computer Graphics CSE 167 Lecture 11

T-Splines for Rhino manual Part II: How to get started

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

Curves and Surfaces. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd

Hand-Tracking Based Interactive 3D Modeling using Mesh Deformation

Objects 2: Curves & Splines Christian Miller CS Fall 2011

Surface Mesh Generation

QUADRATIC UNIFORM B-SPLINE CURVE REFINEMENT

Free-Form Deformation and Other Deformation Techniques

Polar Embedded Catmull-Clark Subdivision Surface

Sung-Eui Yoon ( 윤성의 )

Space deformation Free-form deformation Deformation control Examples: twisting, bending, tapering

CSE 554 Lecture 7: Deformation II

CS 475 / CS Computer Graphics. Modelling Curves 3 - B-Splines

Surface Quality Assessment of Subdivision Surfaces on Programmable Graphics Hardware

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

MODELING AND HIERARCHY

Character animation Christian Miller CS Fall 2011

Transcription:

Geometric Modeling 1

Look around the room. To make a 3D model of a room requires modeling every single object you can see. Leaving out smaller objects (clutter) makes the room seem sterile and unrealistic (e.g. similar to an IKEA furniture store)

The same is true for outdoor scenes

Movies

Movies

Games

Games

MeSH Construction

A polygonal mesh is represented on the computer using various primitives: vertices, edges, and faces (triangles are the most common) Problem: Manually specifying every vertex, edge, and face is cumbersome (even if it is slightly faster than chipping a model out of stone ) Solution: software packages can help automate some vertex placement (but it can still take a long time) Process: Mesh Construction Model a low resolution mesh by hand Refine that mesh with an *automatic* method/algorithm Edit the refined mesh with a semi-*automated* method/algorithm Refine more, Edit more, rinse, repeat, etc. etc.

Refinement via subdivision

Subdivision Given a coarse input mesh, generate a finer output mesh via subdivision For a given mesh, various smooth limit surfaces exist the exact smooth limit surfaces depends on the subdivision algorithm used After just a few refinements, additional changes become too small to see/matter

Subdivision Curves

Subdivision Surfaces

LOOP subdivision

Charles Loop 1824 citations

Loop Subdivision Subdivide each triangle into 4 triangles Move vertices to new positions Repeat the above two steps until you get the desired resolution Generates a C 2 continuous limit surface almost everywhere except at some extraordinary vertices where the limit is C 1 continuous

Subdivide Each Triangle into 4 Triangles

Subdivide Each Triangle into 4 Triangles

Move the Vertices Compute perturbed locations for new vertices (black) Move the original vertices too (grey) Original Subdivided

Move the Vertices Compute perturbed positions of new vertices (black) using a weighted average of the four adjacent original vertices (grey) Change the original vertex (grey) positions using a weighted average of six adjacent original vertices (grey) Repeat until converged (or a few times)

Extraordinary Points Most vertices are regular (degree 6), but not all If a mesh is topologically equivalent to a sphere, not all the vertices can have degree 6 Extraordinary point

Extraordinary Points Find weights for extraordinary points that generate a smooth surface (tangent plane continuous) Want the surface normal to be continuous Complex math problem Warren weights

An Example

Starting Mesh

Add New Vertices

New Vertex & Stencil

Move New Vertex

Original Vertex & Stencil

Move Original Vertex

Extraordinary Vertex & Stencil

Move Extraordinary Vertex

Subdivided Surface

Subdivide Again

And Again

And Again

Limit surface

Mesh editing

Mesh Editing Artist manipulates a few control points or mesh points and the system *automatically* deforms the mesh E.g., twist, bend, stretch, etc. Fast, intuitive, preserves details Widely used in CAD software such as Blender, Maya, etc. Spline (e.g. B-spline, NURBS) mesh editing uses control points Laplacian mesh editing allows one to directly move mesh points Mesh editing operations in Blender Spline mesh editing Laplacian mesh editing

B-splines

The i-th B-spline basis function of order jj is recursively defined as NN ii,0 uu = 1, iiii uu ii uu < uu ii+1 0, ooooooooooooooooo NN ii,jj uu = uu uu ii NN uu ii+jj uu ii,jj 1 uu + uu ii+jj+1 uu NN ii uu ii+jj+1 uu ii+1,jj 1 uu ii+1 where uu 0, uu 1, uu mm are the knots B-Spline NN 0,0 NN 1,0 NN 2,0 NN 0,1 NN 1,1 NN 0,2 Basis functions with different orders (pp = 0,1,2) for knots 0,1,2,3 Then the B-spline is defined as: nn CC uu = NN ii,pp uu PP ii ii=0 where PP 0, PP 1,, PP nn are the 2D/3D control points nn + 1 = mm pp determines how many control points are needed - based on the number of intervals m and the order p For example: 2 + 1 = 6 3 (for the figure to the right) the basis functions of an order 3 B-spline

B-Spline Use knots to subdivide the parametric domain of the curve into intervals Use control points to locally control the shape of the curve e.g., interval ss 0 is controlled by control points PP 0, PP 1, PP 2, PP 3 control point parametric domain: ss 0 ss 1 ss 2 ss 3 uu = 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 knot

NURBS

NURBS Curve NURBS (Non-Uniform Rational B-Spline) curve is defined by: CC uu = ii=0 nn NN ii,pp uu ww ii PP ii nn ii=0 NN ii,pp uu ww ii where NN ii,pp is a B-spline basis function, PP ii is a control point, and ww ii is the weight of PP ii. Increasing ww ii pulls the curve closer to the corresponding control point PP ii, while decreasing ww ii pushes the curve farther from PP ii Demo app: http://geometrie.foretnik.net/files/nurbs-en.swf

Extending the idea from curves to surfaces, a NURBS surface is defined as SS uu, vv = ii=0 NURBS Surface mm nn jj=0 mm ii=0 nn jj=0 NN ii,pp uu NN jj,qq vv ww ii,jj PP ii,jj NN ii,pp uu NN jj,qq vv ww ii,jj Now we have a 2D array of control points PP ii,jj with the associated basis function NN ii,pp uu NN jj,qq vv. http://www.3dmax-tutorials.com/cv_surface.html

Subdividing splines

Subdividing Spline Curves An spline curve can be subdivided by adding more knots and control points First, insert new knots without changing the shape of the curve Whenever inserting a knot, add a control point as well The positions of the control points need to be updated to preserve the shape of the curve E.g., given a spline curve of degree pp with knots {uu 0, uu 1, uu mm } and control points PP 0, PP 1,, PP nn, we insert a new knot uu between uu kk and uu kk+1, and add one more control point obtaining the new set of control points PP 0, PP 1,, PP nn+1. The positions of these control points are computed using linear interpolation: PP ii = (1 α ii )PP ii 1 + α ii PP ii where α ii = 1 ii < kk pp + 1 0 ii > kk uu uu ii uu ii+pp uu ii kk pp + 1 ii kk

Original Curve

Insert a Knot uu

Add/Adjust Control Points PP 7 PP 1 PP 2 PP 6 PP 3 PP 4 PP 5 PP 0 uu

Laplacian Mesh editing

Differential Coordinates For each vertex, we represent its differential coordinate by the difference between its position x i and the average position of its neighbors: d i = L( x Differential coordinates approximate the local shape The direction of d i approximates the normal The magnitude of d i approximates the mean curvature i ) A mesh/model can be described by a vector of differential coordinates of all its vertices D={d i } = x i D can be calculated by multiplying a constant coefficient sparse matrix L (each vertex only interacts with its local neighbors) with a position vector X (a vector of positions of all the vertices X={x i }) i.e., D = LX 1 n i j N i x j

Laplacian Mesh Editing User selects some control points x i, i = {1,..., n} in the region of interest (ROI), and sets the target position for each control point x i p i Solves for for all vertices in the region of interest in a least squares sense LX = D with (soft) constraints x i = p i for i { 1,..., n} Equivalent to minimizing the least squares error E 2 n * ( X ) = di L( xi ) + i ROI i= 1 Since differential coordinates are sensitive to local deformations, we need to compute an * appropriate transformation matrix ( X ) for each vertex obtaining the modified error function E T i 2 n ' * * ( X ) = Ti ( X ) di L( xi ) + i ROI i= 1 T i is expressed as a function of X by solving the following least squares problem analytically min( T x 2 i i xi + Ti j N i T x i x j i x p j i x 2 i 2 ) p i 2 [Sorkine et.al. 2004]

TUTORIALS & ADVICE

Modeling: Tutorials & Advice