Download presentation
Presentation is loading. Please wait.
1
Introduction to Implicit Modelling
Come and hear Introduction to Implicit Modelling by Brian Wyvill With a little help from his students
2
Overview Introduction to Implicit Surfaces Blending, Warping, CSG
Some Problems The BlobTree Blending Texturing Animation Hierarchical Implicit Surfaces Building Models
3
Introduction to Implicit Surfaces
Implicit Definition f(x,y) = x2 + y2 - r2 = 0 e.g. r = 1 f(0,0) = < 0 inside f(0,0) = > 0 outside implies search space to find x,y to satisfy: f(x,y) = 0 iso-surface: f(x,y) - c = 0 Parametric Definition x = r sin(a) y = r cos(a) 0 c a c 2p
4
The Geoff Function Field Function Proximity Blending:
Click Me Proximity Blending: Add contributions from generating skeletal elements in the neighbourhood Field Function
5
Blending and The Soft Train
1986
7
B
9
Polygonization Algorithm
11
Or a numeric technique can be used to find the gradient by sampling the field around the point p:
,
19
Warping
24
Barr Operators
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. - + + - - - + - Sphere Cylinder Plane Boolean expression (u= union, d= difference, i= intersection) d( sphere, cylinder) u( sphere, i( i( cylinder, plane1), plane2) ) The cylinder is infinite in extent it is first intersected with two half space planes.
26
CSG Tree CSG Implementation
Boolean Expressions are usually represented as a binary tree.
27
CSG Intersections with Voxels
28
CSG Intersection Value
Boolean Operations Union and intersection of primitives, A and B may be respectively 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 )
29
CSG - Min and Max Union P0 P1 P2 Field = 0
fA|B(p0)=Max(fA(p0), fB(p0)) Depending on position of p0 Field = 0 Object A Object B P0 P1 P2 fA(p1) =Max(fA(p1), fB(p1)) fB(p2)=Max(fA(p2), fB(p2))
30
CSG - Min Intersection P0 P1 P2 Field = 0 fA|B(p0)=Min(fA(p0), fB(p0))
Depending on position of p0 Field = 0 Object A Object B P0 P1 P2 fB(p1) =Min(fA(p1), fB(p1))=0 fA(p2)=Min(fA(p2), fB(p2))=0
31
CSG - Min Difference P0 P1 P2 Field = 0
Object A Object B P1 P2 P0 Min(fA(p0), fB(p0)) = 1 - fA|B(p0) Depending on position of p0 Min(fA(p1), 1 - fB(p1))=0 Min(fA(p1), 1 - fB(p1))=fA(p1)
32
Polygonization Problems
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 CSG operations produce sharp contours between primitives. X is the true intersection point for C1 and C2 If DIFF is used by combine then P1 and P2 result. 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 0 = f 1(x) = f 1 (P12 + n12) = f1(P12) + (n12 , t f1( P12 )) 0 = f2(x) = f2 (P12 + n12) = f2(P12) + (n12, t f2( P12 ))
33
Iterating to the Surface
l1 = so n1 = and similarly n2 = - f1 ( tf1, tf1) - f1tf1 ( tf1, tf1) - f2tf2 ( tf2, tf2)
34
Adaptive Polygonisation
35
CSoftG Wheels Csoft Wheel before and after removal of artifacts
36
Canmore Coffee Grinder
37
Ray Traced Canmore Coffee Grinder by Kees van Overveld and
Brian Wyvill
38
Building the Piano Parametric Bounding Curve
Cylinders intersected with bounding plane and parametric curve
39
Model of 9ft. Steinway Concert Grand
Plant by Dr. Prusinkiwicz
40
American Type 4-4-0
41
The BlobTree
42
A BlobTree Example
43
More BlobTree Nodes Note the inclusion of the texture node.
44
Traversing The BlobTree
N - indicates a node in the BlobTree L (N ) - left child R (N ) - right child function 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
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.