Environmentally Affected Tree Growth using LSystems and Voxels

  • Slides: 75
Download presentation
Environmentally Affected Tree Growth using L-Systems and Voxels Andrew Leeuwenberg

Environmentally Affected Tree Growth using L-Systems and Voxels Andrew Leeuwenberg

Contents � Voxelising Objects � Collision & Avoidance � Phototropism �Ambient �Direct � Sorting

Contents � Voxelising Objects � Collision & Avoidance � Phototropism �Ambient �Direct � Sorting L-String � Growing multiple trees � Project management

Summary of Intent Dev-Test (proof of concept)

Summary of Intent Dev-Test (proof of concept)

Collision avoidance

Collision avoidance

Phototropism

Phototropism

Competition

Competition

Voxelising Collision Object

Voxelising Collision Object

Magmax: |5| |3| |4|

Magmax: |5| |3| |4|

Magmax: |5| sub. Divmax: Magmax / voxel. Size + 1

Magmax: |5| sub. Divmax: Magmax / voxel. Size + 1

Magmax: |5| sub. Divmax: 6

Magmax: |5| sub. Divmax: 6

Getting Voxel Index Scatter. Point = Pxyz �Eg. 100, 60, 100 � Define voxel.

Getting Voxel Index Scatter. Point = Pxyz �Eg. 100, 60, 100 � Define voxel. Area: Va[3] � Voxel. Array[Va[0] * Va[1] * Va[2]] �Eg. -10, -4, -10 � Define a voxel. Corner: Vc[3] �Eg. 1. 0 f � Define voxel. Size: Vs � Voxel. Point (Vp[3]) = (Pxyz – Vcxyz) / Vs � Index = (Vp[1] * (Va[0] * Va[2])) + (Vp[2] * Va[0]) + Vp[0] � Voxel. Array[Index] �

4: 20

4: 20

Path finding using voxels

Path finding using voxels

[ [ [ [ When growing a branch [ 1 voxel unit

[ [ [ [ When growing a branch [ 1 voxel unit

Collision avoidance

Collision avoidance

Collision avoidance

Collision avoidance

Collision avoidance

Collision avoidance

Phototropism

Phototropism

Phototropism � � Calculated : “F” call Affects : �Growth rate �Growth direction �Leaf

Phototropism � � Calculated : “F” call Affects : �Growth rate �Growth direction �Leaf growth �Leaf surface area

Luminosity

Luminosity

Ambient (Eamb )

Ambient (Eamb )

N-Rooks

N-Rooks

N-Rooks - Normalized

N-Rooks - Normalized

N-Rooks - Normalized Side Top

N-Rooks - Normalized Side Top

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([-1, 1]) �S=

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([-1, 1]) �S= �X V 12 + V 22 < 1 = 2 V 1 ( 1 -S )1/2 � Y = 2 V 2 ( 1 -S )1/2 � Z = 1 - 2 S

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([ 0, 1])

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([ 0, 1]) �S= �X V 12 + V 22 < 1 = 2 V 1 ( 1 -S )1/2 � Y = 2 V 2 ( 1 -S )1/2 � Z = 1 - 2 S

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([ 0, 1])

Marsaglias Spherical Scatter � V 1 ~U([-1, 1]) � V 2 ~U([ 0, 1]) �S= �X V 12 + V 22 < 1 = 2 V 1 ( 1 -S )1/2 � Y = 2 V 2 ( 1 -S )1/2 � Z = 1 - 2 S

The effect of increased rays and voxel size on luminosity values 0, 6 Luminosity

The effect of increased rays and voxel size on luminosity values 0, 6 Luminosity 0, 4 0, 2 Voxel Size 0 10 50 100 200 -0, 2 -0, 4 -0, 6 -0, 8 Number of Rays 10000 0. 25 0. 1

The effect of increased rays and voxel size on luminosity values 0, 8 0,

The effect of increased rays and voxel size on luminosity values 0, 8 0, 6 Luminosity 0, 4 Voxel Size 0, 2 0. 25 0 -0, 2 10 50 100 200 -0, 4 -0, 6 -0, 8 Number of Rays 10000 0. 1

The RSD value when comparing voxel size and number of rays to calculate lumination

The RSD value when comparing voxel size and number of rays to calculate lumination 70 60 RSD (%) 50 Voxel Size 0. 25 0. 1 0. 01 40 30 20 10 50 100 200 Number of Rays 10000

Ambient light � Eamb = Rterminated / Rtotal

Ambient light � Eamb = Rterminated / Rtotal

Direct (Edir )

Direct (Edir )

Sun Arch

Sun Arch

Sun Arch � Edir = Rterminated / Rtotal

Sun Arch � Edir = Rterminated / Rtotal

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si)

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si) + (Eamb* (1 –Si)) � Si = 0. 5

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si)

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si) + (E* (1 –Si)) � Si = 0. 1

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si)

Luminosity � Sun Influence (Si) = 0 - 1 � Etotal = (Edir* Si) + (Eamb* (1 –Si)) � Si = 0. 9

Growth rate

Growth rate

Leaf growth

Leaf growth

E affecting growth direction

E affecting growth direction

Rotation � Calculate average luminosity (Ē) �North - South N �East - West E

Rotation � Calculate average luminosity (Ē) �North - South N �East - West E E E ĒN E E W E S

Rotation � Calculate average luminosity (Ē) �North - South �East - West � Max

Rotation � Calculate average luminosity (Ē) �North - South �East - West � Max angle rotation = θmax � For each axis: �Rotation θ = θmax * (Ēmax – Ēmin )

Rotation � Calculate average luminosity (Ē) �North > South �East - West � Max

Rotation � Calculate average luminosity (Ē) �North > South �East - West � Max angle rotation = θmax � For each axis: �Rotation θ = θmax * (ĒN max – ĒS min )

Rotation

Rotation

Rotation � Calculate average luminosity �North / South �East / West � Max angle

Rotation � Calculate average luminosity �North / South �East / West � Max angle rotation = θmax � For each axis: �Rotation θ = θmax * ( Emax – Emin )

Sorting L-String

Sorting L-String

Problem with L-String FF[+F[+X][-X]FX[-F[+X][-X]FX] FFF[+X][-X]FX

Problem with L-String FF[+F[+X][-X]FX[-F[+X][-X]FX] FFF[+X][-X]FX

Sorting string Child 0 FF [+X][-X] FX][-F[+X][-X]FX] FFF[+X][-X] FX 1 2 Ω ψ Id

Sorting string Child 0 FF [+X][-X] FX][-F[+X][-X]FX] FFF[+X][-X] FX 1 2 Ω ψ Id String 0 -1 0 FFFFFFX 2 2 0 0 1 2 +FFX -FFX 5 0 3 +X 5 0 4 -X Ω Start time 4 1 5 +X ψ Parent branch 4 1 6 -X Id Identification num 4 2 7 +X 4 2 8 -X String Branch L-String

Sorting string Ω Ω ψ Id String -1 00 FFFFFFX 22 22 00 00

Sorting string Ω Ω ψ Id String -1 00 FFFFFFX 22 22 00 00 11 22 +FFX -FFX 55 55 00 00 33 44 +X -X 44 11 55 +X 44 11 66 -X 44 22 77 +X 44 22 88 -X

Sorting string Ω ψ Id String 0 -1 0 FFFFFFX 2 0 1 +FFX

Sorting string Ω ψ Id String 0 -1 0 FFFFFFX 2 0 1 +FFX 2 0 2 -FFX 5 0 3 +X 5 0 4 4 1 4 0 0 0 1 2 -X 0 1 2 5 +X 0 1 2 5 6 7 8 1 6 -X 0 1 2 3 4 5 6 4 2 7 +X 4 2 8 -X 0 3 4 7 8

Sorting string Ω ψ Id String 0 -1 0 FFFFFFX 2 0 1 +FFX

Sorting string Ω ψ Id String 0 -1 0 FFFFFFX 2 0 1 +FFX 2 0 2 -FFX 5 0 3 +X 5 0 4 4 1 4 0 0 0 1 2 -X 0 1 2 5 +X 0 1 2 5 6 7 8 1 6 -X 0 1 2 3 4 5 6 4 2 7 +X 4 2 8 -X 0 3 4 7 8

Sorting string 0 0 1 2 0 0 2 1 7 1 5 2

Sorting string 0 0 1 2 0 0 2 1 7 1 5 2 6 0 8 3 6 4 8 0 5 1 4 0 3 7 3

New L-String Interpretation FF[+F[+X][-X]FX[-F[+X][-X]FX] FFF[+X][-X]FX

New L-String Interpretation FF[+F[+X][-X]FX[-F[+X][-X]FX] FFF[+X][-X]FX

New L-String Interpretation

New L-String Interpretation

Self collision

Self collision

Geometry Occlusion & Collision

Geometry Occlusion & Collision

Geometry & Self-Occlusion & Collision

Geometry & Self-Occlusion & Collision

Growing Multiple Trees

Growing Multiple Trees

Linked-Structures tree. List branch. Info *head branch. Info *temp draw. Index *head draw. Index

Linked-Structures tree. List branch. Info *head branch. Info *temp draw. Index *head draw. Index *temp tree. List *next branch. Info MString L-string draw. Index MInt. Array index. List int id draw. Index *next float matrix[16] …growth variables branch. Info *next

*head *temp *next

*head *temp *next

Next Stage

Next Stage

Next stage � Improve features �Simultaneous / staggered growth �Add usability control � Proxy

Next stage � Improve features �Simultaneous / staggered growth �Add usability control � Proxy visualisation � Experiments �Determined successful if: ○ 3 behaviours achieved

Project management

Project management

Gant chart

Gant chart

Blog – aleeuwenberg. com

Blog – aleeuwenberg. com

Summary � Voxelising Objects � Collision & Avoidance � Phototropism �Ambient �Direct � Sorting

Summary � Voxelising Objects � Collision & Avoidance � Phototropism �Ambient �Direct � Sorting L-String � Growing multiple trees � Project management � Next stage

Questions please

Questions please

References � Prusinkiewicz, P. , & Lindenmayer, A. (1990). The Algorithmic Beauty of Plants.

References � Prusinkiewicz, P. , & Lindenmayer, A. (1990). The Algorithmic Beauty of Plants. New York: Springer-Verlag. � Greene, N. (1989). Voxel Space Automata: Modelling with Stochastic Growth Processes in Voxel Space. SIGGRAPH '89 Proceedings of the 16 th annual conference on Computer graphics and interactive techniques , 23 (3), 175 – 184. � Shirley, P. (1991). Discrepancy as a Quality Measure for Sample Distributions. Proceedings of Eurographics. 183 -193 � G, Marsaglia. (1972). Choosing a point from the surface of a sphere. The Annals of Mathematical Statistics. 43, 2. p 645 646