Bounding Iterated Function Systems
-
Upload
tarik-baldwin -
Category
Documents
-
view
22 -
download
1
description
Transcript of Bounding Iterated Function Systems
![Page 2: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/2.jpg)
2
Roadmap Introduction to IFS Rice’s Bounding Spheres Lawlor’s Polyhedral Bounds
![Page 3: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/3.jpg)
3
Iterated Function Systems
![Page 4: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/4.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/5.jpg)
5
Example IFS—Sierpinski GasketShape is 3 copies
of itself, so we use 3 maps:
![Page 6: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/6.jpg)
6
Example IFS—Sierpinski GasketShape is 3 copies
of itself, so we use 3 maps:
Map to top
![Page 7: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/7.jpg)
7
Example IFS—Sierpinski GasketShape is 3 copies
of itself, so we use 3 maps:
Map to top Map down right
![Page 8: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/8.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/9.jpg)
9
Example IFS—Sierpinski GasketMany other,
equivalent options
![Page 10: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/10.jpg)
10
IFS Gallery: Menger’s Sponge
![Page 11: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/11.jpg)
11
IFS Gallery: Spirals
![Page 12: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/12.jpg)
12
IFS Gallery: Five Non-Platonic Non-Solids
Reproduced from Hart and DeFanti, SIGGRAPH 1991
![Page 13: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/13.jpg)
13
IFS Gallery: Fractal Forest
Reproduced from Hart and DeFanti, SIGGRAPH 1991
![Page 14: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/14.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/15.jpg)
15
Sphere Bounds for IFS
![Page 16: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/16.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/17.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/18.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/19.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/20.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/21.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/22.jpg)
22
Polyhedral Bounds for IFS
![Page 23: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/23.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/24.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/25.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/26.jpg)
26
Polyhedron Bounding, in Words We will require
Each corner of the polyhedron Under each map To satisfy all polyhedron halfspaces
![Page 27: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/27.jpg)
27
Point-in-Polyhedron Test Points inside polyhedron must
lie inside all halfspaces
Point lies in a halfspace if
![Page 28: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/28.jpg)
28
Polyhedron corners (2D Version) The corner of sides i and j is
where both halfspaces meet
or, if we define
![Page 29: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/29.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/30.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/31.jpg)
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: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/32.jpg)
32
Time vs. Number of Sides
O(s4.6) time; allin solver
![Page 33: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/33.jpg)
33
Area vs. Number of Sides
Little benefit to using morethan 12 sides
![Page 34: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/34.jpg)
34
IFS Gallery: Spirals, with Bounds
![Page 35: Bounding Iterated Function Systems](https://reader036.fdocuments.in/reader036/viewer/2022062517/56812e04550346895d9368f5/html5/thumbnails/35.jpg)
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