1 Bounding Iterated Function Systems Orion Sky Lawlor [email protected] CS 497jch November 14, 2002.

35
1 Bounding Iterated Function Systems Orion Sky Lawlor [email protected] CS 497jch November 14, 2002

Transcript of 1 Bounding Iterated Function Systems Orion Sky Lawlor [email protected] CS 497jch November 14, 2002.

Page 1: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

1

Bounding Iterated Function Systems

Orion Sky [email protected]

CS 497jchNovember 14, 2002

Page 2: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

2

Roadmap Introduction to IFS Rice’s Bounding Spheres Lawlor’s Polyhedral Bounds

Page 3: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

3

Iterated Function Systems

Page 4: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

4

Iterated Function Systems--IFS A finite set of “maps”—

distortions of some space Apply the maps in random order Converges to unique “attractor”

Equivalent to L-systems, others E.g., Mandelbrot set is just

convergence diagram for a one-map 2D IFS: complex squaring

Page 5: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

5

Example IFS—Sierpinski GasketShape is 3 copies

of itself, so we use 3 maps:

Page 6: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

6

Example IFS—Sierpinski GasketShape is 3 copies

of itself, so we use 3 maps:

Map to top

Page 7: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

7

Example IFS—Sierpinski GasketShape is 3 copies

of itself, so we use 3 maps:

Map to top Map down right

Page 8: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

8

Example IFS—Sierpinski GasketShape is 3 copies

of itself, so we use 3 maps:

Map to top Map down right Map down left

Page 9: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

9

Example IFS—Sierpinski GasketMany other,

equivalent options

Page 10: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

10

IFS Gallery: Menger’s Sponge

Page 11: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

11

IFS Gallery: Spirals

Page 12: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

12

IFS Gallery: Five Non-Platonic Non-Solids

Reproduced from Hart and DeFanti, SIGGRAPH 1991

Page 13: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

13

IFS Gallery: Fractal Forest

Reproduced from Hart and DeFanti, SIGGRAPH 1991

Page 14: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

14

IFS Conclusions An IFS is just a set of maps of

space Pastes shape onto copies of itself

IFS are useful tool for representing fractal shapes Wide variation in results Arbitrary number of dimensions Beautiful, natural look Easy to produce/manipulate

Page 15: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

15

Sphere Bounds for IFS

Page 16: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

16

Why bother bounding an IFS? For display, processing, etc. Raytracing [Hart, DeFanti ‘91]

Intersect rays with bounds Replace nearest intersecting

bound with a set of smaller bounds Repeat until miss or ‘close enough’

Page 17: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

17

Why Bound IFS with Spheres? Spheres are a commonly used

bounding volume for raytracing Very fast intersection test—a few

multiplies and adds Invariant under rotation

Rotate a sphere, nothing happens Closed under scaling

Scale a sphere, get a sphere Easy to represent and work with

Page 18: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

18

Recursive Bounds for IFS Each map of the bound must lie

completely within the bound B contains map(B)

Now we just recurse to the attractor B contains map(B) contains map(map(B))

contains map(map(map(B)))...

Page 19: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

19

Sphere Bound for IFS Each map of the sphere must lie

completely within the sphere This is our “recursive bound”

Knowns

wi Map number i

si Scaling factor of wi

Unknowns

r Radius of big sphere

x Center of big sphere

Page 20: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

20

Sphere Bound for IFS [Rice, 1996]

We require dist(x, wi (x)) + si r < r

Equivalently r > dist(x, wi (x))/(1 - si )

We must pick x to minimize r Nonlinear optimization problem (!)

dist(x, wi (x)) si r

rx

Page 21: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

21

Sphere Bound Conclusions Spheres are nice bounding

volumes Especially for raytracing

Hart gives a heuristic for sphere bounds

Rice shows how to find optimal (recursive) sphere bound Requires nonlinear optimization Complex, slow (?)

Page 22: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

22

Polyhedral Bounds for IFS

Page 23: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

23

Why Bound IFS with Polyhedra? Includes many common shapes

Box, tetrahedron, octahedron, ... Bounding boxes are the other

commonly used bounding volume for raytracing A better fit for elongated objects

Computers don’t like curves (nonlinear optimization); a polyhedron has no curves

Page 24: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

24

Why not Bound IFS with Polyhedra? Polyhedra have corners, which

might stick out under rotation Can always fix by adding sides Not so bad in practice

!

Page 25: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

25

Polyhedral Bound for IFS Each map of the polyhedron

should lie completely within the original polyhedron Again, a “recursive bound”

Knowns

wm (x) Map number m

ns Normal of side s

Unknowns

ds Displacement of side s

Page 26: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

26

Polyhedron Bounding, in Words We will require

Each corner of the polyhedron Under each map To satisfy all polyhedron halfspaces

Page 27: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

27

Point-in-Polyhedron Test Points inside polyhedron must

lie inside all halfspaces

Point lies in a halfspace if

Page 28: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

28

Polyhedron corners (2D Version) The corner of sides i and j is

where both halfspaces meet

or, if we define

Page 29: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

29

Polyhedron Bounding, in Equations

We require: Each corner of the polyhedron (linear)

Under each map (linear)

To satisfy all the halfspaces (linear)

These are linear constraints (I M S of them)

Page 30: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

30

Linear Optimization [Lawlor 2002] We’ve reduced IFS bounding to

a problem in linear optimization Constraints: Just shown Unknowns: Displacements ds Objective: Minimize sum of

displacements? (Probably want to minimize area or length instead)

Guaranteed to find the optimal bound if it exists (for some definition of “optimal”)

Page 31: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

31

2D Implementation Used open-source linear solver

package lp_solve 3.2 Written in C++ Generating constraints take

about 40 lines (with comments) Would be even shorter with a

better matrix class Welded to a GUI

Page 32: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

32

Time vs. Number of Sides

O(s4.6) time; allin solver

Page 33: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

33

Area vs. Number of Sides

Little benefit to using morethan 12 sides

Page 34: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

34

IFS Gallery: Spirals, with Bounds

Page 35: 1 Bounding Iterated Function Systems Orion Sky Lawlor olawlor@uiuc.edu CS 497jch November 14, 2002.

35

Convex IFS Bounds: Conclusions Optimal polyhedron bounding

using linear optimization Off-the-shelf solvers Piles of nice theory (optimality!) Fast enough for interactive use

Future directions RIFS Bounding (solve for

attractorlet bounds) Implement in 3D