Come and hear Introduction to Implicit...

Preview:

Citation preview

Come and hear

Introduction to Implicit Modelling

by Brian Wyvill

With a little helpfrom his students

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

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

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

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

Blending and The Soft Train

PolygonizerInfo.

1986

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

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

B

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

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

Polygonization Algorithm

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

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

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

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

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

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

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

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

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

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

Warping

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

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

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

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

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

Barr Operators

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.

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

CSG Tree

CSG Implementation

Boolean Expressions are usually represented as a binary tree.

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

CSG Intersections with Voxels

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 )

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

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

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

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

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)

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

Adaptive Polygonisation

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

CSoftG Wheels

Csoft Wheel before and after removal of artifacts

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

Canmore Coffee Grinder

Ray TracedCanmoreCoffeeGrinder

by

Kees van OverveldandBrian Wyvill

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

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

Model of 9ft. Steinway Concert Grand

Plant by Dr. Prusinkiwicz

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

American Type 4-4-0

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

The BlobTree

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

A BlobTree Example

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

More BlobTree Nodes

Note the inclusionof thetexture node.

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

Recommended