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

Similar documents
Curves and Surfaces 1

3D Modeling Parametric Curves & Surfaces

Implicit Surfaces & Solid Representations COS 426

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

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

9. Three Dimensional Object Representations

Bezier Curves, B-Splines, NURBS

The Free-form Surface Modelling System

2D Spline Curves. CS 4620 Lecture 13

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

Central issues in modelling

Curve and Surface Basics

Curves and Surfaces Computer Graphics I Lecture 10

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

Object representation

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13

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

Modeling 3D Objects: Part 2

Intro to Curves Week 4, Lecture 7

Computer Graphics I Lecture 11

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

2D Spline Curves. CS 4620 Lecture 18

CHAPTER 1 Graphics Systems and Models 3

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

Rational Bezier Curves

B-spline Curves. Smoother than other curve forms

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

Geometric Representations. Stelian Coros

CS-184: Computer Graphics

Curves and Surfaces Computer Graphics I Lecture 9

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

Intro to Curves Week 1, Lecture 2

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

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

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

Computergrafik. Matthias Zwicker. Herbst 2010

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

Design considerations

Spatial Data Structures

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

MODELING AND HIERARCHY

Lecture IV Bézier Curves

Dgp _ lecture 2. Curves

CS-184: Computer Graphics. Today

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

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

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

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

Geometric and Solid Modeling. Problems

Solid Modeling. Ron Goldman Department of Computer Science Rice University

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

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

CSG obj. oper3. obj1 obj2 obj3. obj5. obj4

Lecture notes: Object modeling

Introduction to the Mathematical Concepts of CATIA V5

Curves. Computer Graphics CSE 167 Lecture 11

3D Object Representation. Michael Kazhdan ( /657)

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

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

Spline Morphing. CG software practical course in the IWR. Carl Friedrich Bolz. Carl Friedrich Bolz

EECS 487, Fall 2005 Exam 2

Need for Parametric Equations

Spatial Data Structures

Introduction to Geometry. Computer Graphics CMU /15-662

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.

Computer Graphics Curves and Surfaces. Matthias Teschner

08 - Designing Approximating Curves

Advanced Texture-Mapping Curves and Curved Surfaces. Pre-Lecture Business. Texture Modes. Texture Modes. Review quiz

Spatial Data Structures

Chapter 4-3D Modeling

CATIA V4/V5 Interoperability Project 2 : Migration of V4 surface : Influence of the transfer s settings Genta Yoshioka

3D Modeling: Solid Models

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

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

Advanced 3D-Data Structures

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

Computer Graphics. Curves and Surfaces. Hermite/Bezier Curves, (B-)Splines, and NURBS. By Ulf Assarsson

Images from 3D Creative Magazine. 3D Modelling Systems

Geometric Modeling Systems

3D Modeling techniques

3D Modeling I. CG08b Lior Shapira Lecture 8. Based on: Thomas Funkhouser,Princeton University. Thomas Funkhouser 2000

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Constructive Solid Geometry and Procedural Modeling. Stelian Coros

Polygon Meshes and Implicit Surfaces

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

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

(Spline, Bezier, B-Spline)

Polygon Meshes and Implicit Surfaces

03 Vector Graphics. Multimedia Systems. 2D and 3D Graphics, Transformations

Information Coding / Computer Graphics, ISY, LiTH. Splines

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

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

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

Introduction to Computer Graphics

B-Spline Polynomials. B-Spline Polynomials. Uniform Cubic B-Spline Curves CS 460. Computer Graphics

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

A story about Non Uniform Rational B-Splines. E. Shcherbakov

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

An introduction to interpolation and splines

Outline. Properties of Piecewise Linear Interpolations. The de Casteljau Algorithm. Recall: Linear Interpolation

Transcription:

Shape Representation Basic problem We make pictures of things How do we describe those things? Many of those things are shapes Other things include motion, behavior Graphics is a form of simulation and modeling Two general types of representations Surface representations Concerned only with the surface of the shape, not the interior Generally more efficient at representing surface Polygons are one example Volume representations Also concerned with interiors, surfaces can be extracted Surface reps (Boundary reps or B-reps ) Parametric surfaces Basic idea Define curves and surfaces using parametric formula Allow modelers to manipulate shape with "control points" Use parametric representations Q(t) = T M G, where T = [t^3 t^2 t 1] Segment runs from 0 to 1 in t M = basis matrix (4x4) G = geometry matrix (4x4) Geometry matrix Contains four geometry elements (pts, vectors) These are the controls the user manipulates in modeling curves interpolate or bend towards them Every differently shaped curve will have a different geometry matrix Basis matrix Describes relative weighting of geometry as t varies Described by the blending function Different curve types (see below) have different bases Basis is constant for a given curve type Curve issues Locality If I change a geometry element, how much of the curve changes? Joining For complex curves/shapes, must join two or more curves together Would like join to be continuous ( smooth ) G0, G1, C1, C2 continuity Effect of transformations Invariance: Transform(Q(t)) = T M transform(g)? Affine invariance Under scales, translations, rotations Perspective invariance 2D curves from projected 3D control points Convex hull property Curve lies inside convex hull of geometry Convex hull: smallest convex polygon (hedron) that contains control points Useful for trivial rejects in clipping, intersection tests

Useful for added intuition in modeling Types of curves Bezier Geometry [P1 P2 P3 P4] Four control points Curve interpolates endpoints Slope at ends equals slope of [P2-P1], [P4-P3] Joining G0: overlay endpoints G1: give [P4-P3], [P5-P4] same slope C1: same magnitude C2: hard Locality: none Invariance: affine, not perspective Convex hull property B-Splines Problem: Joining with continuity is difficult There is no C2 continuity Solution: Curves (sequences of segs) are defined by a sequence of n control points Each sequential set of 4 points defines a segment Each new segment shares 3 points with previous segment Knots are the boundaries between each curve segment in t Examples Given a B-spline with n control points There will be n-3 curve segments There will be n-2 knots Given 4 control points one segment two knots (begin and end) Given 10 segments 13 control points 11 knots Uniform, nonrational B-splines Uniform: knots are spaced at equal intervals of parameter t Nonrational: curve does not use ratios of two polynomial equations Joining: C2 continuity is guaranteed Locality: only the 4 segments containing a ctrl pt are affected Invariance: affine, not perspective Convex hull property for each segment Other issues: No control points are interpolated Overlapping control points allow interpolation But at the cost of continuity Nonuniform, nonrational B-splines Nonuniform: curve segs can be defined over non-equal intervals of t As before but: Can overlap knots

Allows interp points with better control of continuity Can insert knots Allows arbitrary control of locality Nonuniform, rational B-splines (NURBS) Rational: x(t) = X(t)/W(t), y(t) = Y(t)/W(t). Like before but: Invariance: affine and perspective Can define conics (circles, parabolas ) Patches A generalization from 1D to 2D Most of previous discussion applies General approach Intuitively Imagine sweeping a parametric curve Q(s) along a dimension t The geometry vector, and thus the shape of Q(s), changes as a function of t You defined an arbitrarily shaped patch! In equations P(s,t) = S M Q(t) = S M G M^t T^t Accuracy: polys/lines are always only approximations of curves Succinctness: need lots of polys to describe one smooth surface Modeling: controlling shape twiddling vertices is annoying, need higher level control Problems Rendering speed Complex models may have as many patches as polygonal models Rendering patches is slower Portability Patches are not the lowest common denominator Subdivision surfaces New research Give much better control of locality A patch can be subdivided into smaller patches In this way, a hierarchy of locality is formed Volume representations Constructive Solid Geometry (CSG) Domain: engineering and machining Shapes are described with set operations on primitive volumes Union, difference, intersection Such a description describes how to construct a shape A binary tree Leaves are primitives Internal nodes perform set ops on children A continuous description Describes the modeling process Some powerful modeling functionality Disadvantages

Joins are all discontinuous Poor control of locality Hard to render Discrete volume reps (voxels) Domain: largely medicine and science We surround the shape (or region) with a box We sample the entire box with a regular grid Each sample is called a voxel (volume pixel) So there are many shapes in the volume a 3D grid of points, with at least one value at each point value represents density in most settings Captures interiors well Disadvantages Takes up a lot of space! 256^3 * 4 = 67 megs basic input Fairly hard to render Ray tracing Surface extraction using Marching Cubes Alg This is changing with Mitsubishi card Implicit functions Domain: amorphous, merging shapes; bounding volumes We have a function in 3D space The surface is all points w/ same value in that func: isosurface f(x,y,z) = k Example: sphere x^2 + y^2 + z^2 = 1 We add complexity with collections of these A collection of generator shapes For each of these generators g A distance function d which returns distance from g A potential function f assigns a value to each distance d A blending function B merges potentials often simple addition Strengths Good for collision detection Can represent conics like spheres, cylinders Used in blobby modeling for molecules, etc Can merge shapes by moving the generators Problems: Constraints needed. Semicircle? Joining is a problem unwanted merges/seps Also hard to render: voxelize, ray trace New work addresses some control problems Other and newer approaches BSP trees These can also be used as modeling reps Advantage in hierarchical formation Enables set ops and fast collision detection Main problem:

avoiding polygonal explosion makes implementation very hard Particle systems Domain: for moving clouds of things, e.g. clouds, fireworks, flocks : A set of points or particles Each point has a largely random behavior and a lifespan Particles are rendered as blurs onscreen or sprites Fractal models Domain: clouds, mountains, sea Fractals are used to generate shape procedurally Usually these are converted into another representation L-systems Domain: plant description Grammars used procedurally to describe plant development Eventually converted into another representation Distance fields Can be viewed as adaptively sampled implicit function Because it is a sampled rep, can deviate from functional limitations Point representations Domain: very large (1 billion vertex) models Like polygons, but no edges, just vertices Vertices have associated color, orientation Basic problem: how to fill the gaps? Splatting from volume rendering Colors are blurred across local screen region Until recently, main problem was aliasing