Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Similar documents
Computergrafik. Matthias Zwicker. Herbst 2010

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

Today. B-splines. B-splines. B-splines. Computergrafik. Curves NURBS Surfaces. Bilinear patch Bicubic Bézier patch Advanced surface modeling

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

3D Modeling Parametric Curves & Surfaces

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

Curves. Computer Graphics CSE 167 Lecture 11

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 #13: Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

Rational Bezier Curves

Computer Graphics Curves and Surfaces. Matthias Teschner

2D Spline Curves. CS 4620 Lecture 18

Curves and Surfaces Computer Graphics I Lecture 10

The Free-form Surface Modelling System

Bezier Curves, B-Splines, NURBS

Curves and Surfaces Computer Graphics I Lecture 9

Information Coding / Computer Graphics, ISY, LiTH. Splines

2D Spline Curves. CS 4620 Lecture 13

Curves & Surfaces. MIT EECS 6.837, Durand and Cutler

Curves and Surfaces 1

B-spline Curves. Smoother than other curve forms

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

Spline Surfaces, Subdivision Surfaces

Dgp _ lecture 2. Curves

Intro to Curves Week 4, Lecture 7

Subdivision Surfaces. Homework 1: Last Time? Today. Bilinear Patch. Tensor Product. Spline Surfaces / Patches

CSE 167: Introduction to Computer Graphics Lecture 12: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

From curves to surfaces. Parametric surfaces and solid modeling. Extrusions. Surfaces of revolution. So far have discussed spline curves in 2D

Intro to Curves Week 1, Lecture 2

Lecture IV Bézier Curves

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

Subdivision Surfaces. Homework 1: Questions/Comments?

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

Subdivision Surfaces. Homework 1: Questions on Homework? Last Time? Today. Tensor Product. What s an illegal edge collapse?

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2

Review of Tuesday. ECS 175 Chapter 3: Object Representation

To Do. Resources. Algorithm Outline. Simplifications. Advanced Computer Graphics (Spring 2013) Surface Simplification: Goals (Garland)

Central issues in modelling

Curves and Surfaces for Computer-Aided Geometric Design

COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg

Curves and Surfaces 2

(Refer Slide Time: 00:02:24 min)

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

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Introduction p. 1 What Is Geometric Modeling? p. 1 Computer-aided geometric design Solid modeling Algebraic geometry Computational geometry

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques

Design considerations

08 - Designing Approximating Curves

Introduction to Computer Graphics

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.

Subdivision Curves and Surfaces: An Introduction

The Essentials of CAGD

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

Curve and Surface Basics

Curves D.A. Forsyth, with slides from John Hart

Parametric curves. Brian Curless CSE 457 Spring 2016

CS-184: Computer Graphics

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

Representing Curves Part II. Foley & Van Dam, Chapter 11

Objects 2: Curves & Splines Christian Miller CS Fall 2011

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics

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

Intro to Modeling Modeling in 3D

LECTURE #6. Geometric Modelling for Engineering Applications. Geometric modeling for engineering applications

ECE 600, Dr. Farag, Summer 09

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

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

Curves, Surfaces and Recursive Subdivision

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

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

09 - Designing Surfaces. CSCI-GA Computer Graphics - Fall 16 - Daniele Panozzo

CS 465 Program 4: Modeller

Properties of Blending Functions

Shape Representation Basic problem We make pictures of things How do we describe those things? Many of those things are shapes Other things include

Reading. Parametric surfaces. Surfaces of revolution. Mathematical surface representations. Required:

Subdivision Surfaces

Sung-Eui Yoon ( 윤성의 )

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

INF3320 Computer Graphics and Discrete Geometry

Subdivision overview

Rational Bezier Surface

Curves and Surfaces. Shireen Elhabian and Aly A. Farag University of Louisville

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

Introduction to the Mathematical Concepts of CATIA V5

An introduction to interpolation and splines

Advanced Computer Graphics

Further Graphics. Bezier Curves and Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

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

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

The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a

Mathematical Tools in Computer Graphics with C# Implementations Table of Contents

Remark. Jacobs University Visualization and Computer Graphics Lab : ESM4A - Numerical Methods 331

Roadmap for tonight. What are Bezier curves (mathematically)? Programming Bezier curves (very high level view).

Rendering Curves and Surfaces. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Chapter 4-3D Modeling

3D Modeling techniques

15.10 Curve Interpolation using Uniform Cubic B-Spline Curves. CS Dept, UK

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

Introduction to Geometry. Computer Graphics CMU /15-662

u 0+u 2 new boundary vertex

Transcription:

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 segment spans four control points Each segment contains four Bernstein polynomials Each control point belongs to one Bernstein polynomial x 2 (t) u=0 x 0 (t) x 1 (t) x 3 (t) u=12 Bernstein polynomials 0 3 Segment 6 9 12 u 3

B-splines Same idea, but different polynomial blending functions Uniform B-splines have only one type of blending function: B-spline (basis) function b i B-spline function of degree n is C n-1 continuous Local support, at each point u exactly n+1 functions are non-zero 0 1 2 3 4 5 6 7 8 9 Uniform B-spline (basis) functions of degree 3 u 4

B-splines Weighted average of control points p i using B- spline functions b i (u) Positive, partition of unity => convex hull property Matrix form (note different basis matrix; caution: last lecture, matrices were transposed) x(u) t 3 t 2 t 1 T 1 6 1 3 3 1 3 6 3 0 3 0 3 0 1 4 1 0 B B spline p i p i 1 p i 2 p i 3 G B spline where t u i and i u 5

B-splines Widely used for curve and surface modeling Advantages over Bézier curves Built-in continuity Local support: curve only affected by nearby control points 0 3 6 9 0 1 2 3 4 5 6 7 8 9 Bernstein polynomials, deg. 3 B-spline basis functions, deg. 3 6

Generalization: NURBS http://en.wikipedia.org/wiki/non-uniform_rational_b-spline Non-Uniform Rational B-splines Interactive explanation http://www.ibiblio.org/e-notes/splines/nurbs.html http://www.gris.uni-tuebingen.de/edu/projects/grdev/doc/html/overview.html NOTE: notation now uses t instead of u for curve parameter 8

Non-uniform B-splines Knot vector Defines B-spline bases functions Uniform B-spline bases and Bernstein polynomials are special cases for specific knot vectors 9

Knot vector Knot vector is vector of locations {t j } on the t axis B-spline function of degree n uses n+2 knots (Uniform) B-splines use a uniform knot vector t j =j Nonuniform B-splines use an arbitrary knot vector 0 1 2 3 4 5 6 7 knots knots Uniform knot vector t Nonuniform knot vector t http://ibiblio.org/e-notes/splines/basis.html 10

Nonuniform B-spline bases Construction using knot vector Recursive Generate higher order bases step by step from lower order bases Can prove Partition of unity (i.e., convex hull property) Built-in continuity 11

Recursive construction Nonuniform knot vector Nonuniform, linear B-spline bases Linear weighting function Multiply & add Quadratic B-spline basis 1 t t t 12

Recursive construction Recipe Input: two neighboring basis functions of degree n Multiply basis functions with linear weighting functions (one increasing, one decreasing) Add Output: one basis function of degree n+1 13

For your reference... Recursive definition of non-uniform B-spline basis functions b j,n Function b j,n has degree n Knot vector {t j } Basis functions of degree 0 Recursive definition of higher order functions http://en.wikipedia.org/wiki/b-spline 14

Special cases Uniform B-splines have knot vector t j =j Cubic Bézier curves {t j }= [0,0,0,0,1,1,1,1] Can make corners (C 1 discontinuity) Allows mixing interpolating (e.g. at endpoints) and approximating 4 coinciding knots Bézier curve as B-spline with nonuniform knot vector http://www.ibiblio.org/e-notes/splines/basis.html 15 u

Generalization: NURBS http://en.wikipedia.org/wiki/non-uniform_rational_b-spline Non-Uniform Rational B-splines Interactive explanation http://www.ibiblio.org/e-notes/splines/nurbs.html http://www.gris.uni-tuebingen.de/edu/projects/grdev/doc/html/overview.html NOTE: notation now uses t instead of u for curve parameter 16

Rational curves Big drawback of all polynomial curves Can t make circles, ellipses, nor arcs, nor conic sections Rational B-spline A type of rational function http://en.wikipedia.org/wiki/rational_function Add a weight to each control point i Control points with homogeneous coordinates w i Polynomial curve (b-spline, Bézier) Rational curve Not polynomial any more! 17

Rational curves Weight causes point to pull more (or less) With proper points & weights, can do circles Polynomial curve Rational curve pull more pull less 18

Rational curves Can generate curves for conic sections (circles, ellipses, etc.) with appropriate weights http://en.wikipedia.org/wiki/conic_section Need extra user interface to adjust the weights Often, hand-drawn curves are unweighted 19

NURBS Math is more complicated Knot vectors Rational functions Very widely used for curve and surface modeling Supported by virtually all 3D modeling tools Open source modeling tool: http://www.blender.org Techniques for cutting, inserting, merging, revolving, etc Applets http://ibiblio.org/e-notes/splines/intro.htm http://www.gris.uni-tuebingen.de/edu/projects/grdev/doc/html/etc/appletindex_en.html 20

Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 21

Curved surfaces Curves Described by a 1D series of control points A function x(t) Segments joined together to form a longer curve Surfaces Described by a 2D mesh of control points Parameters have two dimensions (two dimensional parameter domain) A function x(u,v) Patches joined together to form a bigger surface 22

Parametric surface patch x(u,v) describes a point in space for any given (u,v) pair u,v each range from 0 to 1 v x(0.8,0.7) z y u v 1 x 0 u 1 2D parameter domain 23

Parametric surface patch x(u,v) describes a point in space for any given (u,v) pair u,v each range from 0 to 1 z v y u x(u,0.25) x(0.8,0.7) x(0.4,v) 1 v Parametric curves x 0 u 1 2D parameter domain For fixed u 0, have a v curve x(u 0,v) For fixed v 0, have a u curve x(u,v 0 ) For any point on the surface, there is one pair of parametric curves that go through point 24

Tangents The tangent to a parametric curve is also tangent to the surface For any point on the surface, there are a pair of (parametric) tangent vectors Note: not necessarily perpendicular to each other x v v x u u 25

Tangents Notation Tangent along u direction @x @ (u; v) @u or or Tangent along v direction @x @ (u; v) @v or @u x(u; v) x u(u; v) Tangents are vector valued functions, i.e., vectors! or @v x(u; v) x v(u; v) 26

Surface normal Cross product of the two tangent vectors x u (u; v) x v (u; v) Order matters (determines normal orientation) Usually, want unit normal Need to normalize by dividing through length n x v x u 27

Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 28

Bilinear patch Control mesh with four points p 0, p 1, p 2, p 3 Compute x(u,v) using a two-step construction p 2 p 3 v p 0 p1 u 29

Bilinear patch (step 1) For a given value of u, evaluate the linear curves on the two u-direction edges Use the same value u for both: q 1 =Lerp(u,p 2,p 3 ) q 1 p 2 p 3 v p 0 q 0 p1 u q 0 =Lerp(u,p 0,p 1 ) 30

Bilinear patch (step 2) Consider that q 0, q 1 define a line segment Evaluate it using v to get x x Lerp(v,q 0,q 1 ) q 1 p 2 p 3 v x p 0 q 0 p1 u 31

Bilinear patch Combining the steps, we get the full formula x(u,v) Lerp(v, Lerp(u,p 0,p 1 ), Lerp(u,p 2,p 3 )) q 1 p 2 p 3 v x p 0 q 0 p1 u 32

Bilinear patch Try the other order Evaluate first in the v direction r 0 Lerp(v,p 0,p 2 ) r 1 Lerp(v,p 1,p 3 ) p 2 p 3 v r 0 r 1 p 0 p1 u 33

Bilinear patch Consider that r 0, r 1 define a line segment Evaluate it using u to get x x Lerp(u,r 0,r 1 ) p 2 p 3 v r x 0 r 1 p 0 p1 u 34

Bilinear patch The full formula for the v direction first: x(u,v) Lerp(u, Lerp(v,p 0,p 2 ), Lerp(v,p 1,p 3 )) p 2 p 3 v r x 0 r 1 p 0 p1 u 35

Bilinear patch It works out the same either way! x(u,v) Lerp(v, Lerp(u,p 0,p 1 ), Lerp(u,p 2,p 3 )) x(u,v) Lerp(u, Lerp(v,p 0,p 2 ), Lerp(v,p 1,p 3 )) q 1 p 2 p 3 v r x 0 r 1 p 0 q 0 p1 u 36

Bilinear patch Visualization 37

Bilinear patches Weighted sum of control points Bilinear polynomial Matrix form exists, too 38

Properties Interpolates the control points The boundaries are straight line segments If all 4 points of the control mesh are co-planar, the patch is flat If the points are not coplanar, get a curved surface saddle shape, AKA hyperbolic paraboloid The parametric curves are all straight line segments! a (doubly) ruled surface: has (two) straight lines through every point Not terribly useful as a modeling primitive 39

Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 40

Bicubic Bézier patch Grid of 4x4 control points, p 0 through p 15 Four rows of control points define Bézier curves along u p 0,p 1,p 2,p 3 ; p 4,p 5,p 6,p 7 ; p 8,p 9,p 10,p 11 ; p 12,p 13,p 14,p 15 Four columns define Bézier curves along v p 0,p 4,p 8,p 12 ; p 1,p 6,p 9,p 13 ; p 2,p 6,p 10,p 14 ; p 3,p 7,p 11,p 15 p 12 p13 v p 4 p 5 p 0 p 1 p 8 p 9 p 14 p 10 p 11 p15 u p 2 p 6 p 7 p3 41

Bicubic Bézier patch (step 1) Evaluate four u-direction Bézier curves at u Get intermediate points q 0 q 3 q 0 Bez(u,p 0,p 1,p 2,p 3 ) q 1 Bez(u,p 4,p 5,p 6,p 7 ) q 2 Bez(u,p 8,p 9,p 10,p 11 ) p 12 p13 q 3 q 3 Bez(u,p 12,p 13,p 14,p 15 ) v p 8 p 9 p 4 p 5 q 2 q 1 p 14 p15 p 0 p 1 u q 0 p 2 p 6 p 7 p 10 p 11 p3 42

Bicubic Bézier patch (step 2) Points q 0 q 3 define a Bézier curve Evaluate it at v x(u,v) Bez(v,q 0,q 1,q 2,q 3 ) p 12 p13 q 3 v p 8 p 9 p 4 p 5 q 2 q 1 x p 14 p15 p 0 p 1 u q 0 p 2 p 6 p 7 p 10 p 11 p3 43

Bicubic Bézier patch Same result in either order (evaluate u before v or vice versa) q 0 Bez(u,p 0,p 1,p 2,p 3 ) q 1 Bez(u,p 4,p 5,p 6,p 7 ) q 2 Bez(u,p 8,p 9,p 10,p 11 ) q 3 Bez(u,p 12,p 13,p 14,p 15 ) x(u,v) Bez(v,q 0,q 1,q 2,q 3 ) r 0 Bez(v,p 0,p 4,p 8,p 12 ) r 1 Bez(v,p 1,p 5,p 9,p 13 ) r 2 Bez(v,p 2,p 6,p 10,p 14 ) r 3 Bez(v,p 3,p 7,p 11,p 15 ) x(u,v) Bez(u,r 0,r 1,r 2,r 3 ) v p 4 p 5 q 2 q 1 p 0 p 1 p 12 r 0 r 1 p 8 p 9 p13 x q 3 p 14 p15 r 2 r 3 u q 0 p 2 p 6 p 7 p 10 p 11 p3 44

Tensor product formulation Corresponds to weighted average formulation Construct two-dimensional weighting function as product of two one-dimensional functions Bernstein polynomials B i, B j as for curves Same tensor product construction applies to higher order Bézier and NURBS surfaces 45

Bicubic Bézier patch: properties Convex hull: any point on the surface will fall within the convex hull of the control points Interpolates 4 corner points Approximates other 12 points, which act as handles The boundaries of the patch are the Bézier curves defined by the points on the mesh edges The parametric curves are all Bézier curves 46

Tangents of Bézier patch Remember parametric curves x(u,v 0 ), x(u 0,v) where v 0, u 0 is fixed Tangents to surface = tangents to parametric curves Tangents are partial derivatives of x(u,v) Normal is cross product of the tangents x v v 0 p 4 p 5 p 0 p 1 p 12 p 13 p 8 p 9 x v p 14 x p 15 u u u 0 p 2 p 6 p 7 p 10 p 11 p3 47

Tangents of Bézier patch x v q 0 Bez(u,p 0,p 1,p 2,p 3 ) q 1 Bez(u,p 4,p 5,p 6,p 7 ) q 2 Bez(u,p 8,p 9,p 10,p 11 ) q 3 Bez(u,p 12,p 13,p 14,p 15 ) (u,v) Be z (v,q,q,q,q ) 0 1 2 3 x u r 0 Bez(v,p 0,p 4,p 8,p 12 ) r 1 Bez(v,p 1,p 5,p 9,p 13 ) r 2 Bez(v,p 2,p 6,p 10,p 14 ) r 3 Bez(v,p 3,p 7,p 11,p 15 ) (u,v) Be z (u,r,r,r,r ) 0 1 2 3 v p 4 p 5 q 2 q 1 p 0 p 1 p p 13 12 r 0 r 1 p 8 p 9 q 3 x x v p 14 x p 15 u r 2 r 3 u q 0 p 2 p 6 p 7 p 10 p 11 p3 48

Tessellating a Bézier patch Uniform tessellation is most straightforward Evaluate points on uniform grid of u, v coordinates Compute tangents at each point, take cross product to get pervertex normal Draw triangle strips (several choices of direction) Adaptive tessellation/recursive subdivision Potential for cracks if patches on opposite sides of an edge divide differently Tricky to get right, but can be done 49

Piecewise Bézier surface Lay out grid of adjacent meshes of control points For C 0 continuity, must share points on the edge Each edge of a Bézier patch is a Bézier curve based only on the edge mesh points So if adjacent meshes share edge points, the patches will line up exactly But we have a crease Grid of control points Piecewise Bézier surface 50

C 1 continuity Want parametric curves that cross each edge to have C 1 continuity Handles must be equal-and-opposite across edge C 0 continuous C 1 continuous [http://www.spiritone.com/~english/cyclopedia/patches.html] 51

Modeling with Bézier patches Original Utah teapot specified as Bézier Patches http://en.wikipedia.org/wiki/utah_teapot 52

Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 53

Advanced surface modeling B-spline/NURBS patches instead of Bézier For the same reason as using B-spline/NURBS curves More flexible (can model spheres) Better mathematical properties, continuity 4 th order NURBS patch http://de.wikipedia.org/wiki/non-uniform_rational_b-spline 54

Modeling headaches Original Teapot is not watertight http://en.wikipedia.org/wiki/utah_teapot Spout & handle intersect with body No bottom Hole in spout Gap between lid and body 55

Modeling headaches NURBS surfaces are flexible Conic sections Can blend, merge, trim but Any surface will be made of quadrilateral patches (quadrilateral topology) Because of tensor product formulation Grid of horizontal and vertical curves 56

Quadrilateral topology Makes it hard to join or abut curved pieces build surfaces with awkward topology or structure 57

Trim curves Cut away part of surface Define holes with trim curves in u/v domain Tessellation uses trim curve to define surface Still hard to fit different parts together v z y x v u Tessellation u 58

Subdivision surfaces Goal Create smooth surfaces from small number of control points, like splines More flexibility for the topology of the control points (not restricted to quadrilateral grid) Idea Start with initial coarse polygon mesh Create smooth surface recursively by 1. Splitting (subdividing) mesh into finer polygons 2. Smoothing the vertices of the polygons 3. Repeat from 1. 59

Subdivision surfaces http://en.wikipedia.org/wiki/catmull%e2%80%93clark_subdivision_surface Input mesh Subdivision & smoothing Subdivision & smoothing Subdivision & smoothing Limit surface 60

Subdivision schemes Various schemes available to subdivide and smooth Doo-Sabin http://en.wikipedia.org/wiki/doo%e2%80%93sabin_subdivision_surface Loop http://en.wikipedia.org/wiki/loop_subdivision_surface All provide certain guarantees for smoothness of limit surface 61

Loop subdivision Subdivision Split each triangle into four Smoothing New vertex positions as weighted average of neighbors Different cases Cases for b: http://graphics.stanford.edu/~mdfisher/subdivision.html Number of neighbors n 62

Subdivision surfaces Arbitrary mesh of control points Arbitrary topology or connectivity Not restricted to quadrilateral topology No global u,v parameters Work by recursively subdividing mesh faces Used in particular for character animation One surface rather than collection of patches Can deform geometry without creating cracks Subdivision surfaces 63

Next time Implementing subdivision surfaces More shaders 64