3d modeling: subdivision surfaces & solid modeling

43
1 CS 430/536 Computer Graphics I 3D Modeling: Subdivision Surfaces & Solid Modeling Week 9, Lecture 17 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University http://gicl.cs.drexel.edu

Upload: trinhhanh

Post on 14-Jan-2017

262 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: 3D Modeling: Subdivision Surfaces & Solid Modeling

1

CS 430/536Computer Graphics I

3D Modeling:Subdivision Surfaces &

Solid Modeling Week 9, Lecture 17

David Breen, William Regli and Maxim PeysakhovGeometric and Intelligent Computing Laboratory

Department of Computer ScienceDrexel University

http://gicl.cs.drexel.edu

Page 2: 3D Modeling: Subdivision Surfaces & Solid Modeling

2

Overview

• Subdivision surfaces– Modify topology– Interpolate vertices

• Solid Modeling– Boolean operations– Constructive Solid Geometry

Page 3: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationO

Foundations I:

The Basic Ideas

aÉåáë=wçêáå

kvr

mÉíÉê=pÅÜê∏ÇÉê

`~äíÉÅÜ

Page 4: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationP

pìêÑ~ÅÉ=êÉéêÉëÉåí~íáçåë■ ä~êÖÉ=Åä~ëë=çÑ=ëìêÑ~ÅÉë

■ áåíÉê~ÅíáîÉ=ã~åáéìä~íáçå

■ åìãÉêáÅ~ä=ãçÇÉäáåÖ

Modeling Geometry

Page 5: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationQ

Parameterized Surfaces

tÜ~í=~Äçìí=kro_p\■ ëéäáåÉ é~íÅÜÉë=~êÉ=ÖêÉ~íI=ÄìíÁ

■ ÇáÑÑáÅìäí=íç=ëíáíÅÜ=íÜÉã=íçÖÉíÜÉê

■ íêáããáåÖÁ=EïÜ~í=~=åáÖÜíã~êÉF

■ Å~å=ÄÉ=ëäçï=~åÇ=ÅìãÄÉêëçãÉ

■ ïÉ=åÉÉÇ=ëÅ~ä~ÄäÉ=~äÖçêáíÜãë=Ñçê=íÜÉ=ïÜçäÉ=ê~åÖÉ=Ñêçã=é~íÅÜÉë=íç=ÑáåÉ=ãÉëÜÉë

Page 6: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationR

Complex Shapes

bñ~ãéäÉW=_ìáäÇáåÖ=~=Ü~åÇ■ tççÇóÛë=Ü~åÇ=Ñêçã=máñ~êÛë qçó=píçêó

■ îÉêóI=îÉêó=ÇáÑÑáÅìäí=íç=~îçáÇ=ëÉ~ãë

Page 7: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationS

No More Seams

pìÄÇáîáëáçå=ëçäîÉë=íÜÉ=-ëíáíÅÜáåÖÒ=éêçÄäÉã■ ~=ëáåÖäÉ ëãççíÜ=ëìêÑ~ÅÉ=áë=ÇÉÑáåÉÇ

■ Éñ~ãéäÉW

■ dÉêáÛë=Ü~åÇ================================================EdÉêáÛë=d~ãÉX============================================máñ~êF

Page 8: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationT

Control Polyhedron

eçï=~êÉ=é~íÅÜ=Ä~ëÉÇ=ëìêÑ~ÅÉë=ÅçåíêçääÉÇ\■ Åçåíêçä=éçáåíë=E`sëF

■ éáÉÅÉïáëÉ=éçäóåçãá~ä

■ ïêáíÉ=çìí=ÅçÉÑÑáÅáÉåíë

■ éêçÅÉÇìê~ä=íÜêçìÖÜ=ëìÄÇáîáëáçå>

lo

Page 9: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationU

20+ Years of Subdivision

qÜÉ=ÄÉÖáååáåÖ■ ÅêÉ~íÉ=ëãççíÜ=ëìêÑ~ÅÉë=çìí=çÑ=~êÄáíê~êó=ãÉëÜÉë

Page 10: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNM

What is Subdivision?

aÉÑáåÉ=~=ëãççíÜ=ëìêÑ~ÅÉ=~ë=íÜÉ=äáãáí=çÑ=~=ëÉèìÉåÅÉ=çÑ=ëìÅÅÉëëáîÉ=êÉÑáåÉãÉåíë

Page 11: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNN

Why Subdivision?

j~åó=~ííê~ÅíáîÉ=ÑÉ~íìêÉë■ ~êÄáíê~êó=íçéçäçÖó

■ ëÅ~ä~ÄáäáíóI=ila

■ ãìäíáêÉëçäìíáçå

■ ëáãéäÉ=ÅçÇÉ

■ ÉÑÑáÅáÉåí=ÅçÇÉ

Page 12: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNO

Subdivision in 1D

qÜÉ=ëáãéäÉëí=Éñ~ãéäÉ■ éáÉÅÉïáëÉ=äáåÉ~ê=ëìÄÇáîáëáçå

( )rln xx21x += ( )rln yy21y +=

Page 13: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNQ

Subdivision in 1D

^=ãçêÉ=áåíÉêÉëíáåÖ=Éñ~ãéäÉ■ íÜÉ=Qéí=ëÅÜÉãÉ

( )j2i

j1i

ji

j1i

1jii2 pp9p9p161p ++−

++ −++−=

Page 14: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationPV

Subdivision

^ééäó=ëìÄÇáîáëáçå=íç=Åçåíêçä=éçáåíë■ Çê~ï=ëìÅÅÉëëáîÉ=Åçåíêçä=éçäóÖçåë=ê~íÜÉê=íÜ~å=ÅìêîÉ=áíëÉäÑ

j1j Spp =+

( )tP j

( )tP 1j+

( )tP 2j+

Page 15: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNS

Subdivision in 2D

nì~Çêáä~íÉê~ä■ áåíÉêéçä~íáåÖW=hçÄÄÉäí ëÅÜÉãÉ

Page 16: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNT

Subdivision in 2D

qêá~åÖìä~ê■ ~ééêçñáã~íáåÖW=iççé=ëÅÜÉãÉ

Page 17: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNU

The Basic Setup

qçéçäçÖáÅ~ä=êìäÉ■ ãçÇáÑó=ÅçååÉÅíáîáíó

Page 18: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationNV

The Basic Setup

dÉçãÉíêáÅ=êìäÉ■ ÅçãéìíÉ=ÖÉçãÉíêáÅ=éçëáíáçåë

■ äçÅ~ä=äáåÉ~ê=ÅçãÄáå~íáçå=çÑ=éçáåíë

ÉîÉå=~í=äÉîÉä=á çÇÇ=~í=äÉîÉä=á

Page 19: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationOM

Some Conditions I

pìÄÇáîáëáçå=êìäÉë=ëÜçìäÇ■ ÄÉ=Ñäç~íáåÖ=éçáåí=ÉÑÑáÅáÉåí

■ Ü~îÉ=Åçãé~Åí=ëìééçêí

■ áåÑäìÉåÅÉ=çÑ=Åçåíêçä=éçáåí=áë=ÑáåáíÉ

Page 20: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationON

Some Conditions II

pìÄÇáîáëáçå=êìäÉë=ëÜçìäÇ■ Ü~îÉ=äçÅ~ä=ÇÉÑáåáíáçå

■ ëíÉåÅáä=ïÉáÖÜíë=çåäó=ÇÉéÉåÇ=çå=íÜÉ=ëíêìÅíìêÉ=çÑ=~=ëã~ää=åÉáÖÜÄçêÜççÇ

Page 21: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationOO

Some Conditions III

pìÄÇáîáëáçå=êìäÉë=ëÜçìäÇ■ ÄÉ=~ÑÑáåÉäó áåî~êá~åí

Page 22: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationOP

Some Conditions IV

pìÄÇáîáëáçå=êìäÉë=ëÜçìäÇ■ ÄÉ=ëáãéäÉ

■ çåäó=~=ëã~ää=ëÉí=çÑ=ÇáÑÑÉêÉåí=ëíÉåÅáäë

■ éêÉÑÉê~Ääó=éêÉÅçãéìíÉÇ çÑÑäáåÉ

■ ~ÅÜáÉîÉ=ëçãÉ=çêÇÉê=çÑ=ëãççíÜåÉëë

■ `N É~ëóI=`OãìÅÜ=Ü~êÇÉê

■ éÉêÜ~éë=ïÉ=êÉ~ääó=ï~åí=Ñ~áêåÉëëKKK

Page 23: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationOQ

Some Questions

fë=pìÄÇáîáëáçå=ãçÇÉäáåÖ=áåÜÉêÉåíäó=éçäóÖçå~ä\■ klK=qÜÉ=ëìêÑ~ÅÉ=Åçåëáëíë=çÑ=é~íÅÜÉëI=ïÉ=àìëí=ÄìáäÇ=íÜÉã=éêçÅÉÇìê~ääó

■ ~ää=êÉåÇÉêáåÖ=áë=éçäóÖçå~äÁ

■ ^kaW=åç=ãçêÉ=ïçêêáÉë=~Äçìí=Åçåíáåìáíó=ÅçåÇáíáçåë>

Page 24: 3D Modeling: Subdivision Surfaces & Solid Modeling

Subdivision for Modeling and AnimationOR

Some Questions

pìÄÇáîáëáçå=é~íÅÜÉë■ Çç=íÜÉó=Ü~îÉ=~=é~ê~ãÉíÉêáò~íáçå\

■ ~êÉ=íÜÉó=É~ëó=íç=Éî~äì~íÉ\

■ ~êÉ=íÜÉó=É~ëó=íç=áãéäÉãÉåí\

■ ~êÉ=íÜÉó=ÉÑÑáÅáÉåí\

^ää=çÑ=íÜÉ=~ÄçîÉ=~åÇ=äçíë=ãçêÉ>■ ãìäíáêÉëçäìíáçåI=ÅçãéêÉëëáçåI=ÉíÅK

Page 25: 3D Modeling: Subdivision Surfaces & Solid Modeling

3

Subdivision Surfaces• Coarse Mesh & Subdivision Rule

– Define smooth surface as limit of sequence ofalgorithmic refinements

• Modify topology & interpolate neighboring vertices

Page 26: 3D Modeling: Subdivision Surfaces & Solid Modeling

4

Solids and Solid Modeling

• Solid modeling introduces amathematical theory of solid shape– Domain of objects– Set of operations on the domain of objects– Representation that is

• Unambiguous• Accurate• Unique• Compact• Efficient

Page 27: 3D Modeling: Subdivision Surfaces & Solid Modeling

5

Solid Objects and Operations

• Solids are point sets– Boundary and interior

• Point sets can be operated on withboolean algebra (union, intersect, etc)

Foley/VanDam, 1990/1994

Page 28: 3D Modeling: Subdivision Surfaces & Solid Modeling

6

Solid Object Definitions

• Boundary points– Points where distance to the object and the

object’s complement is zero• Interior points

– All the other points in the object• Closure

– Union of interior points and boundarypoints

Page 29: 3D Modeling: Subdivision Surfaces & Solid Modeling

7

Issues with 3D Set Operations

• Ops on 3D objects can create “non-3D objects”or objects with non-uniform dimensions

• Objects need to be “Regularized”– Take the closure of the interior

Foley/VanDam, 1990/1994

Input set Closure Interior Regularized

Page 30: 3D Modeling: Subdivision Surfaces & Solid Modeling

8

Regularized BooleanOperations

• 3D Example– Two solids A and B– Intersection leaves a

“dangling wall”• A 2D portion hanging

off a 3D object

– Closure of interiorgives a uniform 3Dresult

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 31: 3D Modeling: Subdivision Surfaces & Solid Modeling

9

Boolean Operations

• Other Examples:• (c) ordinary

intersection• (d) regularized

intersection– AB - objects on the

same side– CD - objects on

different sides

Foley/VanDam, 1990/1994

Page 32: 3D Modeling: Subdivision Surfaces & Solid Modeling

10

Boolean Operations

Foley/VanDam, 1990/1994

Page 33: 3D Modeling: Subdivision Surfaces & Solid Modeling

11

Constructive Solid Geometry(CSG)

• A tree structurecombining primitivesvia regularizedboolean operations

• Primitives can besolids or half spaces

Page 34: 3D Modeling: Subdivision Surfaces & Solid Modeling

12

A Sequence of BooleanOperations

• Boolean operations• Rigid transformations

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 35: 3D Modeling: Subdivision Surfaces & Solid Modeling

13

The Induced CSG Tree

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 36: 3D Modeling: Subdivision Surfaces & Solid Modeling

14

The Induced CSG Tree

• Can also berepresented as adirected acyclicgraph (DAG)

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 37: 3D Modeling: Subdivision Surfaces & Solid Modeling

15

Issues withConstructive Solid Geometry

• Non-uniqueness• Choice of primitives• How to handle more complex modeling?

– Sculpted surfaces? Deformable objects?

Page 38: 3D Modeling: Subdivision Surfaces & Solid Modeling

16

Issues withConstructive Solid Geometry

• Non-Uniqueness– There is more than

one way to modelthe same artifact

– Hard to tell if A and Bare identical

Page 39: 3D Modeling: Subdivision Surfaces & Solid Modeling

17

Issues with CSG

• Minor changesin primitiveobjects greatlyaffect outcomes

• Shift up top solidface

Foley/VanDam, 1990/1994

Page 40: 3D Modeling: Subdivision Surfaces & Solid Modeling

18

Uses of CSGConstructive Solid Geometry

• Found (basically) inevery CAD system

• Elegant,conceptually andalgorithmicallyappealing

• Good for– Rendering, ray

tracing, simulation– BRL CAD

Page 41: 3D Modeling: Subdivision Surfaces & Solid Modeling

19

CAD: Feature-Based Design

• CSG is the basicmachinery behind CADfeatures

• Features are– Local modifications to

object geom/topo withengineering significance

– Often are additive orsubtractive mods to shape

• Hole, pocket, etc…

Page 42: 3D Modeling: Subdivision Surfaces & Solid Modeling

20

Parametric Modeling in CAD

Foley/VanDam, 1990/1994

• Feature relationships• Constraints

Page 43: 3D Modeling: Subdivision Surfaces & Solid Modeling

44

Programming Assignment 5

• Extend XPM to 60 different RGB colors• Read 3 models and assign each a color• Implement Z-buffer rendering• Implement front & back cutting planes

– Only render parts of models between planes• Implement linear depth-cueing

– Color = base_color∗(z-far)/(near-far)• Re-use and extend 2D polygon filling