44
Come and hear Introduction to Implicit Modelling by Brian Wyvill With a little help from his students

Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

Come and hear

Introduction to Implicit Modelling

by Brian Wyvill

With a little helpfrom his students

Page 2: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 2

Overview

••Introduction to Implicit SurfacesIntroduction to Implicit Surfaces

••Blending, Warping, CSGBlending, Warping, CSG

••Some ProblemsSome Problems

••The The BlobTreeBlobTree

••BlendingBlending

••TexturingTexturing

••AnimationAnimation

••Hierarchical Implicit SurfacesHierarchical Implicit Surfaces

••Building ModelsBuilding Models

Page 3: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 3

Introduction to Implicit Surfaces

Parametric Definition

x = r sin(α)y = r cos(α)0 c α c 2π

Implicit Definition

f(x,y) = x2 + y2 - r2 = 0e.g. r = 1f(0,0) = 0 + 0 - 1 < 0 insidef(0,0) = 1 + 1 - 1 > 0 outside

implies search space to find x,y to satisfy: f(x,y) = 0

iso-surface: f(x,y) - c = 0

Page 4: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 4

The Geoff Function

Field Function

Proximity Blending:Add contributions fromgenerating skeletal elementsin the neighbourhood

Click Me

Page 5: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 5

Blending and The Soft Train

PolygonizerInfo.

1986

Page 6: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 6

Page 7: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 7

B

Page 8: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 8

Page 9: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 9

Polygonization Algorithm

Page 10: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 10

Page 11: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 11

Page 12: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 12

Page 13: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 13

Page 14: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 14

Page 15: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 15

Page 16: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 16

Page 17: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 17

Page 18: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 18

Page 19: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 19

Warping

Page 20: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 20

Page 21: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 21

Page 22: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 22

Page 23: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 23

Page 24: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 24

Barr Operators

Page 25: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 25

Constructive Solid Geometry (CSG)

Primitives are combined using boolean set operations: Union, Intersection, Difference. Each primitive represents a half space, ie the set of points defining the half space

E.g.

Boolean expression (u= union, d= difference, i= intersection)d( sphere, cylinder) u( sphere, i( i( cylinder, plane1), plane2) )

-- +

Sphere

-- +

Cylinder-

+

Plane

The cylinder is infinite in extentit is first intersected with twohalf space planes.

Page 26: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 26

CSG Tree

CSG Implementation

Boolean Expressions are usually represented as a binary tree.

Page 27: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 27

CSG Intersections with Voxels

Page 28: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 28

CSG Intersection Value

Boolean Operations

Union and intersection of primitives, A and B may berespectively defined as a composition of the field values, FA , FB

FA » FB = max(FA, FB)

FA … FB = min(FA, FB)

Difference use -min (FA, FB)(- in this case inverts inside and outside )

Page 29: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 29

CSG - Min and Max

fB(p2)=Max(fA(p2), fB(p2))fA(p1) =Max(fA(p1), fB(p1))

fA|B(p0)=Max(fA(p0), fB(p0))Depending on position of p0

Field = 0

Object A

Object B

P1 P2P0

Union

Page 30: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 30

CSG - Min

fA(p2)=Min(fA(p2), fB(p2))=0fB(p1) =Min(fA(p1), fB(p1))=0

fA|B(p0)=Min(fA(p0), fB(p0))Depending on position of p0

Field = 0

Object A

Object B

P1 P2P0

Intersection

Page 31: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 31

CSG - Min

Min(fA(p1), 1 - fB(p1))=0

Min(fA(p1), 1 - fB(p1))=fA(p1)

Min(fA(p0), fB(p0)) = 1 - fA|B(p0)Depending on position of p0

Difference

Field = 0

Object A

Object B

P1 P2P0

Page 32: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 32

0 = f 1(x) = f 1 (P12 + n12) = f1(P12) + (n12 , f1( P12 ))0 = f2(x) = f2 (P12 + n12) = f2(P12) + (n12, f2( P12 ))

X is the true intersection point for C1 and C2

Segment P1 P2 is far from x.

Estimate for x s. t. f 1 (x) = f2 (x) = 0

We can apply a first order Taylor expansion to the difference : n12 = x - P12

Polygonization Problems

Page 33: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 33

λ1 =

so

n1 =

and similarly

n2 =

− f1

( f1, f1)

Iterating to the Surface

− f1 f1

( f1, f1)

− f2 f2

( f2, f2)

Page 34: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 34

Adaptive Polygonisation

Page 35: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 35

CSoftG Wheels

Csoft Wheel before and after removal of artifacts

Page 36: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 36

Canmore Coffee Grinder

Page 37: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

Ray TracedCanmoreCoffeeGrinder

by

Kees van OverveldandBrian Wyvill

Page 38: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 38

Parametric Bounding Curve

Cylinders intersected with bounding plane and parametric curve

Building the Piano

Page 39: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 39

Model of 9ft. Steinway Concert Grand

Plant by Dr. Prusinkiwicz

Page 40: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 40

American Type 4-4-0

Page 41: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 41

The BlobTree

Page 42: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 42

A BlobTree Example

Page 43: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 43

More BlobTree Nodes

Note the inclusionof thetexture node.

Page 44: Come and hear Introduction to Implicit Modellingwebhome.cs.uvic.ca/~blob/courses/305/notes/pdf/implicit... · 2008. 2. 5. · Introduction to Implicit Modelling by Brian Wyvill With

University of Victoria Island Graphics Lab. Project CSC 305 page 44

N - indicates a node in the BlobTreeL (N ) - left child R (N ) - right childfunction F returns the field value for the node N at the point M

function F(N , M)1. Primitive: F( M)2. Warp: F( L (N ) , w( M)) (warp is a unary operator)3. Blend: F( L (N ) , M)+ F( R (N ) , M))4. Union: max( F( L (N ) , M), F( R (N ) , M))5. Intersection: min( F( L (N ) , M), F( R (N ) , M))6. Difference: min( F( L (N ) , M), -F( R (N ) , M))

end

Traversing The BlobTree