Fractals Infinite detail at every point Self similarity between parts and overall features of the...

Preview:

Citation preview

Fractals• Infinite detail at every point• Self similarity between parts and overall features of the object• Zoom into Euclidian shape

– Zoomed shape see more detail• eventually smooths

• Zoom in on fractal– See more detail

• Does not smooth

• Model– Terrain, clouds water, trees, plants, feathers, fur, patterns

• General equation P1=F(P0), P2 = F(P1), P3=F(P2)…– P3=F(F(F(P0)))

Self similar fractals• Parts are scaled down versions of the entire object

– use same scaling on subparts– use different scaling factors for subparts

• Statistically self-similar– Apply random variation to subparts

• Trees, shrubs, other vegetation

Fractal types

• Statistically self-affine – random variations

• Sx<>Sy<>Sz– terrain, water, clouds

• Invariant fractal sets– Nonlinear transformations

• Self squaring fractals– Julia-Fatou set

» Squaring function in complex space

– Mandelbrot set

» Squaring function in complex space

• Self-inverse fractals– Inversion procedures

Julia-Fatou and Mandelbrot

• x=>x2+c– x=a+bi

• Complex number

• Modulus– Sqrt(a2+b2)– If modulus < 1

• Squaring makes it go toward 0– If modulus > 1

• Squaring falls towards infinity

• If modulus=1– Some fall to zero– Some fall to infinity– Some do neither

• Boundary between numbers which fall to zero and those which fall to infinity

– Julia-Fatou Set

Foley/vanDam Computer Graphics-Principles and Practices, 2nd edition

Julia-Fatou

Julia Fatou and Mandelbrot con’d

• Shape of the Julia-Fatou set based on c• To get Mandelbrot set – set of non-diverging points

– Correct method• Compute the Julia sets for all possible c• Color the points black when the set is connected and white when it is

not connected

– Approximate method• Foreach value of c, start with complex number 0=0+0i• Apply to x=>x2+c

– Process a finite number of times (say 1000)– If after the iterations is is outside a disk defined by modulus>100,

color the points of c white, otherwise color it black.

Foley/vanDam Computer Graphics-Principles and Practices, 2nd edition

Constructing a deterministic self-similar fractal• Initiator

– Given geometric shape

• Generator– Pattern which replaces subparts of initiator

• Koch Curve

Initiator generator First iteration

Fractal dimension• D=fractal dimension

– Amount of variation in the structure– Measure of roughness or fragmentation of the object

• Small d-less jagged• Large d-more jagged

• Self similar objects– nsd=1 (Some books write this as ns-d=1)

• s=scaling factor• n number of subparts in subdivision• d=ln(n)/ln(1/s)

– [d=ln(n)/ln(s) however s is the number of segments versus how much the main segment was reduced

» I.e. line divided into 3 segments. Instead of saying the line is 1/3, say instead there are 3 sements. Notice that 1/(1/3) = 3]

– If there are different scaling factors• • Sk

d=1K=1

n

Figuring out scaling factorsI prefer: ns-d=1 :d=ln(n)/ln(s)

• Dimension is a ratio of the (new size)/(old size)– Divide line into n identical

segments• n=s

– Divide lines on square into small squares by dividing each line into n identical segments

• n=s2 small squares

– Divide cube• Get n=s3 small cubes

• Koch’s snowflake– After division have 4 segments

• n=4 (new segments)

• s=3 (old segments)

• Fractal Dimension– D=ln4/ln3 = 1.262

– For your reference: Book method• n=4

– Number of new segments

• s=1/3 – segments reduced by 1/3

• d=ln4/ln(1/(1/3))

Sierpinski gasket Fractal Dimension

• Divide each side by 2– Makes 4 triangles– We keep 3– Therefore n=3

• Get 3 new triangles from 1 old triangle

– s=2 (2 new segments from one old segment)

• Fractal dimension – D=ln(3)/ln(2) = 1.585

Cube Fractal Dimension

• Apply fractal algorithm– Divide each side by 3– Now push out the middle face of each cube– Now push out the center of the cube

• What is the fractal dimension?– Well we have 20 cubes, where we used to have 1

• n=20

– We have divided each side by 3• s=3

– Fractal dimension ln(20)/ln(3) = 2.727

Image from Angel book

Language Based Models of generating images

• Typical Alphabet {A,B,[,]}

• Rules– A=> AA– B=> A[B]AA[B]

• Starting Basis=B• Generate words

– Represents sequence of segments in graph structure

– Branch with brackets

– Interesting, but I want a tree

• B• A[B]AA[B]• AA[A[B]AA[B]]AAAA[A[B]AA[B]]

A

AA

B

B

A

AAB

AA

B

AAAA

A

B

AA

B

Language Based Models of generating images con’d

• Modify Alphabet {A,B,[,],(,)}

• Rules– A=> AA– B=> A[B]AA(B)– [] = left branch () = right

branchStarting Basis=B

• Generate words– Represents sequence of

segments in graph structure– Branch with brackets

• B

• A[B]AA(B)

• AA[A[B]AA(B)]AAAA(A[B]AA(B))

A

AA

B

B

A

AAB

AA

B

AAAA

AB

AA

B

Language Based models have no inherent geometry

• Grammar based model requires– Grammar– Geometric interpretation

• Generating an object from the word is a separate process– examples

• Branches on the tree drawn at upward angles

• Choose to draw segments of tree as successively smaller lengths

– The more it branches, the smaller the last branch is

• Draw flowers or leaves at terminal nodes

A

AAB

AA

B

AAAA

AB

AA

B

Grammar and Geometry

• Change branch size according to depth of graph

Foley/vanDam Computer Graphics-Principles and Practices, 2nd edition

Particle Systems• System is defined by a collection of particles that evolve

over time– Particles have fluid-like properties

• Flowing, billowing, spattering, expanding, imploding, exploding

– Basic particle can be any shape• Sphere, box, ellipsoid, etc

– Apply probabilistic rules to particles• generate new particles• Change attributes according to age

– What color is particle when detected?– What shape is particle when detected?– Transparancy over time?

• Particles die (disappear from system)• Movement

– Deterministic or stochastic laws of motion» Kinematically» forces such as gravity

Particle Systems modeling• Model

– Fire, fog, smoke, fireworks, trees, grass, waterfall, water spray.

• Grass– Model clumps by setting up trajectory paths for

particles

• Waterfall– Particles fall from fixed elevation

• Deflected by obstacle as splash to ground– Eg. drop, hit rock, finish in pool

– Drop, go to bottom of pool, float back up.

Physically based modeling• Non-rigid object

– Rope, cloth, soft rubber ball, jello

• Describe behavior in terms of external and internal forces– Approximate the object with network of point nodes connected by flexible connection

• Example springs with spring constant k

– Homogeneous object• All k’s equal

• Hooke’s Law– Fs=-k x

• x=displacement, Fs = restoring force on spring

• Could also model with putty (doesn’t spring back)• Could model with elastic material

– Minimize strain energy

kk

kk

“Turtle Graphics”• Turtle can

– F=Move forward a unit– L=Turn left– R=Turn right

• Stipulate turtle directions, and angle of turns

• Equilateral triangle– Eg. angle =120– FRFRFR

• What if change angle to 60 degrees– F=> FLFRRFLF– Basis F

• Koch Curve (snowflake)

– Example taken from Angel book

Using turtle graphics for trees

• Use push and pop for side branches []

• F=> F[RF]F[LF]F

• Angle =27

• Note spaces ONLY for readability

• F[RF]F[LF]F [RF[RF]F[LF]F] F[RF]F[LF]F [LF[RF]F[LF]F] F[RF]F[LF]F

Recommended