Transnationale Universiteit Limburg
Het gedrag van planten binnen een ecosysteem
Door Wesley Hendrikx
Diepenbeek, België Juni, 2004 1
Abstract Deze thesis handelt over ecosystemen waarin zich duizenden planten bevinden. De bedoeling is dat zulke ecosystemen gemodelleerd en gerenderd worden. In een ecosysteem zijn er interacties tussen de planten onderling, interacties met andere dieren en interacties met de omgeving. Een scène bestaande uit een dergelijke hoeveelheid planten zal visueel zeer complex zijn en is dus moeilijk om te renderen. Dit probleem wordt opgelost door te werken met twee niveau’s. Er wordt een onderscheid gemaakt tussen het high-level niveau en het low-level niveau. •
In het high-level niveau wordt bepaald hoe de planten zich verdelen over het terrein. Hier gebeurt in feite de simulatie van het ecosysteem.
•
In het low-level niveau wordt beschreven hoe de individuele planten er uitzien. De geometrie van de planten wordt bepaald.
Door met twee niveau’s te werken, zal het toch mogelijk zijn om de extreem hoge complexiteit van zulke scènes weer te geven. In de thesis zullen twee soorten modellen voorkomen. Deze classificatie is gebaseerd op de richting waarin de informatie gaat. Het gaat over local-to-global modellen enerzijds en globalto-local modellen anderzijds. •
In een local-to-global model verkrijgt men globale informatie over het geheel, door gebruik te maken van de locale informatie van individuele componenten in het model.
•
In een global-to-local model is de globale informatie een gegeven. Hieruit haalt men dan de locale informatie van de individuele componenten in het model.
In het high-level niveau wordt er gebruik gemaakt van een local-to-global model. Hierbij wordt het ecosysteem gesimuleerd aan de hand van individuele informatie per plant. In de thesis wordt er dieper ingegaan op local-to-global modellen, die de verdeling van de planten bepalen. Ecologische fenomenen zoals successie, clustering, self-thinning, interactie met dieren en interactie met de omgeving, zullen gesimuleerd worden. Voor het beschrijven van de geometrie van de individuele planten, in het low-level niveau, wordt er een global-to-local aanpak gebruikt. Uit het high-level model worden de globale eigenschappen per plant gehaald. Hiermee kan dan de geometrie van de plant bepaald worden. De algoritmes in dit model maken gebruik van zogenaamde L-systemen. Enkele algoritmes die vertrekken van de globale eigenschappen van planten zullen uitgewerkt worden.
2
Voorwoord Deze thesis is natuurlijk niet zomaar tot stand gekomen. Vele voorgangers hebben reeds onderzoek verricht in het domein van het modelleren van ecosystemen. De thesis is vooral gebaseerd op het werk van Brendan Lane “Models of plant communities for image synthesis” [Lan02]. De bedoeling was vooral om een uitbreiding van dit werk te doen. In de implementatie wordt er gebruik gemaakt van L-systemen. In de code wordt er gebruik gemaakt van een library voor L-systemen gecreëerd door William van Haevre. Sommige figuren van realistische planten in deze thesis komen niet voort uit mijn implementatie. Dit komt omdat het creëren van realistische modellen van planten geen sinecure is. Daarom worden er in de figuren ook modellen gebruikt die reeds ontwikkeld waren.
3
Dankwoord Still to come
4
Inhoudstabel Abstract………………………………………………………………………...........................2 Voorwoord……………………………………………………………………………………..3 Dankwoord……………………………………………………………………………………..4 Inhoudstabel……………………………………………………………………………………5 Lijst van algoritmen……………………………………………………………………………7 Lijst van figuren………………………………………………………………………………..8 1. Inleiding…………………………………………………………………………...……….9 1.1. Probleemstelling………………………………………………………………………9 1.2. Bijdragen van dit onderzoek…………………………………………………………10 1.3. Structuur van de thesis……………………………………………………………….11 2. Ecosystemen van planten…………………………………………………………………12 2.1. Successie……………………………………………………………………………..12 2.2. Thinning………………………………………………………………………….…..13 2.3. Clustering…………………………………………………………………………….15 2.4. Interactie met de omgeving……………………………………………………….….17 2.5. Interactie met dieren…………………………………………………………..……..17 3. Local-to-global modellen…………………………………………………………………19 3.1. Twee soorten modellen………………………………………………………...…….19 3.2. Geschiedenis…………………………………………………………………………21 4. High-level model………………………………………………………………………….26 4.1. Doel………………………………………………………………………….……….26 4.2. Terrein………………………………………………………………………….…….26
5
4.3. Planten………………………………………………………………………………..28 5. Low-level model………………………………………………….………………………43 5.1. Terrein………………………………………………………………………………..43 5.2. L-systemen……………………………………………………………………..…….44 5.3. Visualisatie van planten…………………………………………………………..….50 5.3.1. Korte geschiedenis van global-to-local modellen…………………….………51 5.3.2. Enkele uitgewerkte modellen…………………………………………..……..52 5.4. Instancing……………………………………………………………………….……63 6. Conclusies…………………………………………………………………………..…….64 7. Bibliografie……………………………………………………………………………….65
6
Lijst van algoritmen 1. Model voor self-thinning…………………………………..…………………………23 2. Bepaling van de dominantie van planten……………..…….…………………..…….23 3. Model voor successie………………………………..…………………………..……25 4. Model voor clustering…………………………………….……………………..……29 5. Model voor interactie met de omgeving……………………………………….……..32 6. Model voor interactie met dieren……………………………………………………..41 7. Model voor visualisatie van plantenorganen…………………………………………56 8. Bepaling van de positie van nodes……………………………………………………58 9. Model voor visualisatie van planten met één vertakkingniveau…………….………..59 10. Model voor visualisatie van planten met meerdere vertakkingniveau’s……………..60
7
Lijst van figuren Figuur 1: De self-thinning curve. ............................................................................................. 14 Figuur 2: Berekening van de Hopkins index............................................................................ 16 Figuur 3: Distributies van planten. ........................................................................................... 17 Figuur 4: Een waterverdeling van een terrein. ......................................................................... 27 Figuur 5: Een verdeling van voedingsstoffen over het terrein.. ............................................... 28 Figuur 6: Drie fases van het self-thinning fenomeen ............................................................... 29 Figuur 7: Twee fases van het succession model. ..................................................................... 33 Figuur 8: Twee fases van het succession model. ..................................................................... 34 Figuur 9: Een fase in het clustering model............................................................................... 35 Figuur 10: Invloed van de vochtigheidsgraad op het ecosysteem............................................ 37 Figuur 11: Invloed van de voedingstoffen in de bodem op het ecosysteem.. .......................... 38 Figuur 12: Een geometrische interpretatie van het D0L-systeem ............................................ 45 Figuur 13: Turtle interpretatie van een L-systeem ................................................................... 46 Figuur 14: Bracketed L-systemen ............................................................................................ 47 Figuur 15: Een interpretatie van het bovenstaande L-systeem ................................................ 49 Figuur 16: screenshot van het programma 'xfrog' .................................................................... 52 Figuur 17: controle over de turtle in drie dimensies. ............................................................... 53 Figuur 18: Generalized cylinders. ............................................................................................ 54 Figuur 19: Bladeren en stengels van een lelie (links) en een tulp (rechts)............................... 57 Figuur 20: een voorbeeld.......................................................................................................... 59 Figuur 21: Planten gepast in hun silhouet curves..................................................................... 62
8
1. Inleiding
1.1 Probleemstelling Het simuleren en renderen van een ecosysteem, bestaande uit verschillende soorten planten, brengt vele problemen met zich mee. In een ecosysteem vinden namelijk vele processen plaats. Het recreëren van deze processen kan veel berekeningen met zich meebrengen. In een natuurlijk ecosysteem zijn er vele actoren die elkaar beïnvloeden. Neem nu, als voorbeeld, de hoeveelheid licht die een plant ontvangt. Dit bepaald voor een groot deel de hoeveelheid groei en de groeirichting van de plant. Elk blad van de plant ontvangt een bepaalde hoeveelheid licht, maar elk blad weerkaatst ook licht op andere bladeren. Als men dit proces waargetrouw wilt simuleren, moet men al deze interacties in rekening brengen. Een boom kan duizenden bladeren hebben en een bos van bomen zal dan miljoenen bladeren hebben. Dit levert miljoenen interacties alleen al om de ontvangen hoeveelheid licht in rekening te brengen. In een ecosysteem zijn er nog veel meer van die complexe processen: •
Zo is er de opname van water en voedingstoffen in de bodem door de wortels.
•
Planten hebben ruimte nodig. Er is een competitie tussen de planten om beschikbare ruimte.
•
De manier van voortplanting beïnvloedt het ecosysteem.
•
De werking van een ecosysteem hangt af van het klimaat.
•
Dieren kunnen in nauw verband staan met de groei en voortplanting van planten.
•
…
Men kan proberen een ecosysteem te simuleren door al deze processen virtueel letterlijk na te bootsen. Maar zoals hierboven aangehaald zullen deze berekeningen veel te complex zijn. Zelfs met de meest moderne supercomputers zouden deze berekeningen praktisch niet haalbaar zijn. Door abstracties te maken en te werken met een multi-level model, probeert men om een ecosysteem zo natuurgetrouw mogelijk te simuleren met berekeningen die haalbaar zijn. In [DHLMPP98] en [Lan01] werkt men met zo een multi-level model.
9
Hoofdstuk 1: Inleiding In deze thesis wordt er gewerkt met een two-level model: •
Een high-level model die de verdeling van de planten in het ecosysteem bepaald.
•
Een low-level model die de geometrie van de individuele planten bepaald. De grootte, soort en positie van de planten worden uit het high-level model gehaald.
1.2 Bijdragen van dit onderzoek Een realistische visualisatie van een ecosysteem kan vele doeleinden hebben: •
De visualisatie van een ecosysteem, waarin een bepaald ecologisch fenomeen gesimuleerd is, kan een handig hulpmiddel zijn in de educatie.
•
Dit onderzoek kan ook belangrijk zijn voor het natuurbeheer. Men kan bijvoorbeeld het effect van de inbreng van een nieuwe diersoort in een ecosysteem voorspellen, door eerst een simulatie te doen. Men kan zich dan een goed beeld vormen over het uitzicht van het ecosysteem na deze inbreng.
•
Men kan dit natuurlijk ook gebruiken in de entertainment en kunst, om realistische beelden te maken van een ecosysteem.
Deze thesis biedt een manier aan om ecologische fenomenen zoals thinning, successie, clustering, interactie met de omgeving en interactie met dieren te modelleren. Over de interactie met de omgeving en met dieren is er reeds onderzoek gebeurd, maar dan in de context van individuele of ten hoogste enkele planten [MP96]. Hier wordt het probleem bekeken in de context van vele planten. De opsplitsing van het probleem in een multi-level model is een belangrijk gegeven om met een haalbare oplossing op de proppen te komen. Een abstractie van de planten in het ecosysteem en het terrein, is de sleutel voor de opsplitsing van het model in meerdere levels. Het nut van L-systemen om realistische planten, waarvan slechts enkele globale eigenschappen gekend zijn, te creëren wordt bewezen.
10
Hoofdstuk 1: Inleiding
1.3 Structuur van de thesis In hoofdstuk 2 worden enkele fenomenen die zich voordoen in een ecosysteem beschreven. De fenomenen die besproken worden zijn: •
Successie (sectie 2.1)
•
Thinning (sectie 2.2)
•
Clustering (sectie 2.3)
•
Interactie met de omgeving (sectie 2.4)
•
Interactie met dieren (sectie 2.5)
In hoofdstuk 3 wordt een overzicht gegeven van een aantal local-to-global modellen gegeven. Deze modellen zijn afkomstig uit het domein van de ecologie en proberen één of meerdere ecologische fenomenen te simuleren. In hoofdstuk 4 beschrijven we een high-level model om een ecosysteem te simuleren. Eerst wordt de voorstelling van het terrein beschreven. Vervolgens wordt een model gegeven voor thinning en dit wordt telkens uitgebreid met één van de ecologische fenomenen beschreven in hoofdstuk 2. Hoofdstuk 5 handelt over het low-level model. Hier wordt er een realistisch beeld van het ecosysteem gerenderd. Eerst wordt er uitgelegd hoe het terrein gerenderd zal worden, met behulp van ‘heigt-mapping’. Vervolgens wordt er een uitleg over de werking van L-systemen. Met behulp van L-systemen, worden er enkele algoritmes gepresenteerd om de geometrie van de planten bepalen. Er worden algoritmes gegeven voor de visualisatie van plantenorganen, planten met één vertakkingniveau en planten met meerdere vertakkingniveau’s. Hoofdstuk 5 wordt afgesloten met een woordje over instancing. Als laatste worden er, in hoofdstuk 6, enkele besluiten getrokken.
11
2. Ecosystemen van planten
Dit hoofdstuk handelt over enkele specifieke ecologische fenomenen, die een invloed hebben op de verdeling van de planten op het terrein. De fenomenen die besproken worden zijn: •
Successie
•
Thinning en self-thinning
•
Clustering
•
Interacties met de omgeving
•
Interacties met dieren
Successie is een fenomeen waarbij een plantensoort een goede omgeving creëert voor een andere soort. Thinnning en self-thinning beschrijven de competitie tussen individuele planten. Als planten groepjes gaan vormen spreekt men van clustering. Interacties met de omgeving beschrijven de opname van water en voedingstoffen uit de bodem en de reactie van planten op het klimaat. Dieren voeden zich met planten en helpen planten met hun voortplanting, daarom worden ook de interacties met dieren besproken. Elk van deze fenomenen zullen in dit hoofdstuk apart besproken worden.
2.1 Successie In een ecosysteem kan het voorkomen dat een plantensoort een omgeving creëert waar een andere soort beter kan groeien. Dit wordt het best uitgelegd met een voorbeeld. Stel dat twee soorten bomen groeien op een terrein. De eerste soort groeit snel, maar heeft veel licht nodig. De tweede soort groeit niet zo snel, maar kan ook overleven in de schaduw. Stel dat er zich op het terrein enkel zaden bevinden. De twee soorten bomen beginnen tegelijk te groeien. De eerste soort zal het terrein gaan domineren omdat ze sneller groeit. Er zal dus een bos ontstaan met zeer veel bomen van de eerste soort. Maar omdat er nu een bos is ontstaan, zullen de jonge boompjes in de schaduw moeten leven. De jonge boompjes van de eerste soort zullen het dus moeilijk hebben 12
Hoofdstuk 2: Ecosystemen van planten om te overleven. De jonge boompjes van de tweede soort kunnen echter gemakkelijk overleven in de schaduw. Als er volwassen bomen beginnen af te sterven, zullen vooral bomen van de tweede soort de vrijgekomen ruimte gaan opvullen. Zo zal uiteindelijk de tweede soort het terrein meer en meer gaan domineren. Het bos bestaat nu vooral uit bomen van de tweede soort. Successie kan voorkomen tussen vele verschillende soorten planten en in vele soorten omgevingen. Het proces van successie blijft niet eeuwig doorgaan. Het ecosysteem zal uiteindelijk een evenwichtspunt bereiken. In het bovenstaande voorbeeld wordt het evenwichtspunt bereikt als het bos vooral uit bomen van de tweede soort bestaat. In het algemeen is het evenwichtspunt van een ecosysteem afhankelijk van de fysische omgeving en de soorten planten in de omgeving. Het evenwichtspunt van een tropisch bos zal, bijvoorbeeld, sterk verschillen van het evenwichtspunt van een bos in België. Als een evenwichtspunt bereikt is dan zal het ecosysteem zelfonderhoudend zijn, het ecosysteem heeft zijn definitieve fase bereikt. Maar het kan wel voorkomen dat het natuurlijke evenwicht van een ecosysteem verstoord wordt. Dit kan het gevolg zijn van externe factoren of interne factoren. Externe factoren kunnen zijn: bosbrand, orkaan, verkaveling… . Interne factoren kunnen ziektes zijn of zelfs één bepaalde dominante boom die sterft. Als het ecosysteem verstoord is, dan zal er opnieuw successie optreden tot een nieuw evenwichtspunt bereikt wordt.
2.2 Thinning Om te groeien, heeft een plant levensmiddelen zoals licht, voedingsstoffen en water nodig. Hoe groter een plant wordt, hoe meer levensmiddelen hij nodig heeft. Hierdoor zullen kleinere planten in de buurt van een grotere plant niet genoeg bronnen ter beschikking hebben om te overleven. Deze plantjes zullen dus afsterven. De sterfte van planten is recht evenredig met de dichtheid van de planten op het terrein. Hoe dichter de planten bij elkaar staan, hoe meer planten er afsterven. Dit fenomeen noemt men thinning. Als een plant sterft door de aanwezigheid van een plant van een andere soort spreken we van alien-thinning. Als een plant
13
Hoofdstuk 2: Ecosystemen van planten sterft door de aanwezigheid van een plant van zijn eigen soort, dan spreken we van selfthinning. Een voorbeeld van een ecosysteem waarbij dit proces duidelijk wordt is een monocultuur. Een monocultuur is een ecosysteem bestaande uit één soort plant. Er wordt aangenomen dat alle planten op het terrein gelijk gezaaid worden. Een voorbeeld hiervan is een aangeplant bos. Figuur 1 is een grafiek van de gemiddelde massa van een plant ten opzichte van het aantal planten per oppervlakte-eenheid. We noemen dit de self-thinning curve. In een eerste fase groeien de planten zonder elkaar te beïnvloeden. Tijdens de tweede fase beginnen sommige planten andere planten te domineren. Planten beginnen af te sterven. In een laatste fase bereikt de self-thinning curve de self-thinning rechte. Deze rechte heeft een hellingsgraad van -3/2. De curve zal deze lijn blijven volgen tot de volwassen planten afsterven. Dit fenomeen doet zich voor bij vele monoculturen van planten.
Figuur 1: De self-thinning curve. De kromme stelt de relatie tussen de dichtheid en de gemiddelde massa voor. De rechte is een bovengrens voor de kromme en heeft een helling van -3/2.
14
Hoofdstuk 2: Ecosystemen van planten
2.3 Clustering De plaats waar een plant zich bevindt op het terrein, is afhankelijk van de locatie van andere planten. Zo zorgt thinning er voor dat planten die dicht bij een dominante plant staan, afsterven. Hierdoor ontstaat er meer afstand tussen de planten. Thinning zorgt voor een gelijkmatige verdeling van de planten op het terrein. Het omgekeerde kan zich ook voordoen. Zo kan het, bijvoorbeeld, dat bepaalde stukken van het terrein zeer veel water bevatten. Planten die veel water nodig hebben, zullen zich gaan groeperen op de vochtige stukken terrein. Planten kunnen ook in de buurt van elkaar staan omdat, zoals ze dat zeggen, de appel niet ver van de boom valt. Kinderen van een plant zullen dan dicht bij hun ouder gaan groeien. Het groeperen van planten, noemt men clustering. Om de graad van clustering in van planten in een ecosysteem te meten, kan men gebruik maken van de zogenaamde Hopkins index. Hiervoor stelt men de planten voor door punten. Een patroon van punten is dus de input. De Hopkins index is de gemiddelde afstand van een willekeurig punt op het terrein (dit moet geen punt van het patroon zijn) tot het dichtstbijzijnde punt van het patroon, gedeeld door de gemiddelde afstand van een willekeurig punt van het patroon tot het dichtstbijzijnde punt van het patroon.
15
Hoofdstuk 2: Ecosystemen van planten
Figuur 2: Berekening van de Hopkins index. a is de afstand van een willekeurig punt op het terrein tot het dichtste punt van het patroon en b is de afstand van een willekeurig punt van het patroon tot het dichtste punt van het patroon.
Patronen die helemaal willekeurig verdeeld zijn, hebben een Hopkins index van 1. Patronen die meer gelijkmatig verdeeld zijn als volledig willekeurig, hebben een Hopkins index van minder dan 1. En patronen waarbij zich meer clustering voordoet, hebben een Hopkins index die groter is als 1.
16
Hoofdstuk 2: Ecosystemen van planten
Figuur 3: Distributies van planten. Links een gelijkmatige verdeling (H = 0.4), in het midden een willekeurige verdeling (H = 1.0) en rechts een geclusterde verdeling (H = 2.4).
2.4 Interactie met de omgeving De groei van een plant wordt bepaald door vele factoren uit de omgeving. Deze factoren kunnen onderverdeeld worden in twee klassen: •
Globale factoren, die gelden voor alle planten op het terrein.
•
Locale factoren, die van plaats tot plaats verschillen op het terrein.
Globale factoren zijn dingen zoals dagelijkse minimum en maximum temperaturen, lengte van de dagen… . Voorbeelden van locale factoren zijn: de hoeveelheid water in de bodem, de voedingsstoffen die aanwezig zijn in de bodem, obstakels op het terrein… .
2.5 Interactie met dieren In een ecosysteem van planten bevinden zich bijna altijd dieren, die zich met bepaalde planten in dit ecosysteem voeden. Het dier kan zich voeden met de plant zelf of met de vruchten van de plant. Als de plant zelf wordt gegeten door de dieren, dan zal dit de groei van de plant afremmen of de plant zal zelfs helemaal afsterven. Een voorbeeld van een ecosysteem waarin de dieren zeer belangrijk zijn is de heide. Op terreinen waar heide groeit, komen zaden van bomen terecht. Door het fenomeen van successie (besproken in sectie 2.1) zullen de bomen 17
Hoofdstuk 2: Ecosystemen van planten uiteindelijk het terrein gaan domineren. Daarom plaatst men schapen op deze terreinen. De schapen voeden zich met de jonge boompjes, waardoor deze zullen afsterven. Zo krijgen de bomen niet de kans om de heideplanten te gaan domineren. Het heidelandschap blijft daardoor behouden. Dieren die de vruchten van planten eten, kunnen een belangrijke rol spelen in de voortplanting van de plant. Een veel voorkomend fenomeen is dat de vrucht wordt gegeten, maar de zaden blijven nog intact en komen in de uitwerpselen terecht. Dit is een zeer goede omgeving voor de zaden om zich te ontwikkelen tot een jong plantje. Zo zorgt het dier voor het voortbestaan en de verspreiding van de plant. De dieren zelf vormen ook een soort ecosysteem. Men spreekt van de zogenaamde voedselketen. De dieren onderaan de keten voeden zich met planten. Dieren hogerop in de keten voeden zich met dieren lager geklasseerd in de keten. Deze thesis beperkt zich echter tot de dieren die alleen planten eten.
18
3. Local-to-global modellen
3.1 Twee soorten modellen Modellen voor een ecosysteem van planten, kan men opdelen in twee soorten, naargelang de richting van de informatie: •
Local-to-global modellen
•
Global-to-local modellen
Bij local-to-global modellen verkrijgt men de globale verdeling van de planten door locale interacties tussen individuele planten te simuleren. De globale informatie wordt dus uit de locale informatie van de planten gehaald. De richting is dus van ‘lokaal’ naar ‘globaal’. Bij een global-to-local model is de globale verdeling van de planten in het ecosysteem een gegeven. Met dit globale gegeven worden dan de individuele eigenschappen van de planten bepaald. De informatie gaat dus van ‘globaal’ naar ‘lokaal.’ Local-to-global of global-to-local? Local-to-global en global-to-local modellen hebben elk hun voordelen en nadelen. Het grote voordeel van global-to-local modellen ten opzichte van local-to-global modellen, is de controle die men heeft op de uiteindelijke uitkomst van het ecosysteem. Het uiteindelijke uitzicht van een ecosysteem bij een local-to-global model kan men moeilijk bepalen. Het gedrag van de individuele planten, de omgeving, de geometrie van planten kan men beïnvloeden door parameters te gebruiken. Maar het instellen van de parameters om een bepaalde uitkomst te krijgen, kan zeer moeilijk zijn. Als er slechts enkele parameters zijn kan men de juiste instellingen misschien nog vinden door enkele vergelijkingen op te lossen. Maar als het model te complex wordt, met vele parameters, dan wordt het bijna onmogelijk om de parameters in te stellen om een vooropgesteld resultaat te bekomen. Daarom is men op de proppen gekomen met het global-to-local model. Hierbij wordt het probleem omgekeerd aangepakt, de richting van de informatie wordt omgedraaid. Nu moet men niet meer de locale parameters specificeren, maar men moet het te bekomen resultaat specificeren.
19
Hoofdstuk 3: Local-to-global modellen Als nu echter het te bekomen resultaat nog onbekend is, is men eerder aangewezen om een local-to-global model te gebruiken. Men wil, bijvoorbeeld, weten wat er gebeurt als er een nieuwe diersoort in een ecosysteem terecht komt. De locale interacties tussen deze diersoort en de planten zijn bekend, maar men weet niet wat uiteindelijk het globale effect zal zijn. Hier is het dus duidelijk dat men een local-to-global model zal gebruiken om dit te simuleren. In deze thesis wordt er gebruik gemaakt van een local-to-global model om een ecosysteem te simuleren. Het is dan ook de bedoeling om het globale uitzicht van een ecosysteem te voorspellen aan de hand van een simulatie. Het te verkrijgen resultaat is dus een onbekende die nog berekend moet worden.
Multi-level modellen Als er nu enkel gebruik gemaakt wordt van een local-to-global model, is nog een probleem. Het doel is een simulatie van een ecosysteem met duizenden individuen. Hierdoor zullen de mogelijke interacties en het aantal berekeningen zeer groot worden. Een oplossing hiervoor is een multi-level model. Het model wordt opgesplitst in meerdere niveau’s, waarbij de output van een hoger gelegen niveau de input is van een lager gelegen niveau. In elk niveau wordt dan met een andere ecologische eenheid gewerkt. Men kan, bijvoorbeeld, in een bepaald niveau een plant in zijn geheel als een eenheid beschouwen en de interacties tussen gehele planten simuleren. In een hoger gelegen niveau kan men dan, bijvoorbeeld, al de planten van een zelfde soort als een eenheid beschouwen. In deze thesis wordt er gewerkt met een two-level model. Er worden twee niveau’s onderscheiden: •
Het high-level niveau
•
Het low-level niveau
In het high-level niveau is de ecologische eenheid de plant in zijn geheel. Hierin wordt de feitelijke simulatie van het ecosysteem gedaan, de verdeling van de planten wordt bepaald. In het low-level niveau beschouwt men de componenten waaruit een individuele plant bestaat als een ecologische eenheid. In dit niveau wordt de geometrie van de planten bepaald. Hier gebeurt dus in feite de realistische visualisatie van het ecosysteem.
20
Hoofdstuk 3: Local-to-global modellen Door te werken met meerdere niveau’s, verminderen we de complexiteit zeer veel. In het twolevel model van deze thesis wordt er, onder andere, geen rekening meer gehouden met de interacties tussen individuele bladeren. Dit komt omdat in het high-level niveau, waar de simulatie gebeurt, enkel interacties beschouwd worden met individuele planten in zijn geheel. Anderzijds wordt het ecosysteem natuurlijk niet meer helemaal natuurgetrouw gesimuleerd. Maar dit verlies is relatief klein ten opzichte van de vermindering in complexiteit. Dit komt omdat de hiërarchie die men in multi-level modellen terugvindt ook in de natuur voorkomt: •
Het bos heeft een grotere invloed op de individuele bomen, dan een individuele boom op het bos.
•
Een boom heeft een grotere invloed op de individuele bladeren, dan een individueel blad op een boom.
De interacties tussen grotere ecologische eenheden hebben dus meer impact op het ecosysteem als de interacties tussen kleinere ecologische eenheden. In deze thesis zal het high-level model een local-to-global model zijn. Daarom wordt er eerst een kort overzicht gegeven van enkele local-to-global modellen die in de ecologie zijn ontwikkeld.
3.2 Geschiedenis In het domein van de ecologie heeft men reeds onderzoek verricht om de fenomenen die zich voordoen in een ecosysteem in een model te gieten. Zo zijn er in het verleden reeds local-toglobal modellen gemaakt om het fenomeen self-thinning te beschrijven. Een eerste voorbeeld is het model van Aikman en Watkinson [AW80]. Elke plant i heeft een bepaalde massa mi. Om de groei van een plant te beschrijven maken ze gebruik van de volgende vergelijking: dmi = ai qi f (qi ) − bi mi2 dt
qi stelt het gebied rond de plant voor waaruit de plant zijn voedingsstoffen haalt om te
overleven. Hoe groter de massa van de plant, hoe groter qi is. ai en bi zijn constanten die de
21
Hoofdstuk 3: Local-to-global modellen groei van de plant bepalen. Ze zijn verschillend van plantensoort tot plantensoort. De term
ai qi f (qi ) kan men interpreteren als het aantal voedingstoffen dat de plant uit zijn gebied heeft kunnen halen. Hierbij stelt f( qi ) de hoeveelheid competitie voor die de plant ondervindt van zijn buren. Als de waarde van f( qi ) tegen de één ligt, dan ondervindt de plant praktisch geen competitie. Ligt de waarde tegen nul, dan ondervindt de plant zeer veel competitie. Hoewel het logisch is dat een plant enkel competitie ondervindt van zijn naburige planten, wordt in dit model de waarde van f( qi ) berekend aan de hand van de gemiddelde massa van alle planten. Maar toch blijkt dat in dit model aan de voorwaarde van de self-thinning curve voldaan wordt (sectie 2.2). Een ander model dat werd ontwikkeld om het fenomeen self-thinning te vatten, is het model beschreven door Firbank en Watkinson [FW85]. De massa van een plant mt op een bepaald tijdstip t wordt gegeven door de volgende vergelijking:
z mt = m It t qt
r
mIt is de massa van de plant op het tijdstip t als hij geen invloed ondervindt van naburige planten. mIt groeit met een logaritmisch in functie van t naar een bepaald maximum M. Dit zou toch het geval zijn als de factor
zt gelijk is aan 1. zt stelt de zone voor waarin de plant qt
invloed heeft op andere planten. qt stelt de straal van het gebied rond de plant voor waaruit de plant zijn voedingsstoffen haalt. Als deze twee zones gelijk zijn, zal de plant geen hinder ondervinden van andere planten. De plant zal dus perfect groeien volgens onze logaritmische functie. Als de plant echter competitie ondergaat met naburige planten, dan zal zt kleiner zijn als qt . De cirkels met straal qt van de verschillende planten zullen dan overlappen. De parameter zt voor de plant wordt dan als volgt bepaald:
•
Het deel van de cirkel waar er geen overlappingen zijn, is een deel van de invloedzone.
22
Hoofdstuk 3: Local-to-global modellen
•
Het gebied van de overlappingen wordt verdeeld onder de planten die deze overlappingen delen. De grootste plant krijgt een fractie d van het gebied. De op één na grootste plant krijgt een fractie d van de overschot, enzovoort…
Als de massa van een plant afneemt, dan wordt deze plant als dood beschouwd en zal hij afsterven. Ook in dit model bleek dat aan de voorwaarde van de self-thinning curve voldaan wordt (sectie 2.2). Leps en Kindlmann [LK87] hebben ook een model beschreven om self-thinning te simuleren. Hun bedoeling was te kijken wat er gebeurde in het ecosysteem, vertrekkende van verschillende soorten initiële verdelingen van planten. Het model vertrekt van een regelmatige verdeling, een willekeurige verdeling of een geclusterde verdeling. Het model beschrijft de hoogte h van een plant op tijdstip t+1 als volgt: h (t ) hi (t + 1) = ht (t ) 1 + a1 − i f i (t ) H
Hier is a de groeisnelheid, H is de maximale hoogte. De factor f i stelt de competitie voor die de plant ondergaat van zijn buren. Als er geen competitie is, dan is deze factor gelijk aan 1. De plant zal dan logaritmisch groeien tot zijn maximum hoogte H. Het gebied rond de plant, waaruit de plant zijn voedingsstoffen haalt qi , is een cirkel met straal khi . k is een constante afhankelijk van de plantensoort. De factor f i wordt nu als volgt berekend:
fi = 1 −
∑l
hj ij
j ≠i
hi
Qqi
Lij is het overlappende gebied tussen plant i en plant j. Q is een parameter die aangeeft hoe groot de invloed is van naburige planten. Als Q zeer groot is, dan zullen de buren weinig invloed hebben op de groei van de plant en omgekeerd. De teller in de formule is de gewogen som van de overlappende gebieden. Het gewicht is de verhouding tussen de hoogte van de plant en de hoogte van de naburige plant. Hierdoor zal de invloed van grotere buren groter 23
Hoofdstuk 3: Local-to-global modellen
zijn als de invloed van kleinere buren. f i kan maximaal 1 zijn en kan kleiner zijn als 0. Als f i nul is dan zal de plant niet groeien. De planten waarvan f i zeer laag is, zullen een grote kans krijgen om af te sterven. Elke iteratie zullen er planten afsterven, waarvan er veel planten zullen zijn die een grote sterfkans hadden. Leps en Kindlmann ondervonden dat bij elke initiële verdeling, het uiteindelijke resultaat een gelijkmatige verdeling was over het terrein. In 1985 werd er een model ontworpen door Pacala en Silander [PS85]. Dit model gaat verder dan de beschrijving van het self-thinning fenomeen: •
Het ondersteunt de voortplanting van planten
•
Het beschrijft hoe de planten overleven, afhankelijk van de staat van de bodem, de naburige planten en de hoeveelheid licht die de plant ontvangt.
•
De groei van de planten wordt beschreven
In dit model wordt een plant voorgesteld door een cirkel in een tweedimensionale ruimte. Als de cirkels van twee planten elkaar overlappen, dan is er competitie tussen deze planten. Dit model maakt echter alleen gebruik van het aantal buren dat een plant heeft en niet van de relatieve grootte of locatie van de buren. Maar dit model werd nog verder uitgebreid en in [DLDB97] wordt een model beschreven waarin rekening gehouden wordt met: •
De positie, grootte en soort van de buren.
•
Het terrein waar de plant zich op bevindt.
•
…..
Tot slot vermelden we het model ven Enquist en Niklas [EN01]. Dit model is gebaseerd op de absorptie van zonlicht. Een plant bestaat hier uit drie delen, die elk een deel van de energie van het ontvangen zonlicht opnemen. Een deel van het licht wordt gebruikt door de bladeren van de boom. Hierdoor zal de kruin van de boom groeien en zo dan ook weer meer licht absorberen. Een deel van de opgenomen energie gaat naar de stam, waardoor de boom in hoogte zal toenemen. Het laatste deel van de energie wordt bewaard voor reproductie. α β γ δ aM TOT = bM REPR + cM LEAF + dM STEM
24
Hoofdstuk 3: Local-to-global modellen
De parameters a, b, c en d verschillen van soort tot soort. α, β, γ en δ zijn constanten voor alle planten. De planten worden voorgesteld door cirkels. De straal van de cirkel is een functie van
M LEAF . De hoogte van de plant is een functie van M STEM . Als een plant competitie ondervindt, dan zal het maar een deel van het licht ontvangen. De grootte van dit deel hangt af van de dominerende plant en de soort van deze dominerende plant.
25
4. High-level model
4.1 Doel Het high-level model is verantwoordelijk voor de simulatie van het ecosysteem. Vanwege de complexiteit van een exacte simulatie, simuleren we enkel de interacties met planten in zijn geheel. De output van het high-level model is een verdeling van de planten in het ecosysteem. Eerst wordt de voorstelling van het terrein, waar de planten op groeien, gegeven. Dan wordt er aangegeven hoe de individuele planten voorgesteld worden. Uiteindelijk zullen de ecologische fenomenen die besproken zijn in hoofdstuk 2, zo natuurgetrouw mogelijk gesimuleerd worden. Dit zal, zoals gezegd, gebeuren met een local-to-global model.
4.2 Terrein De groei van een plant is mede bepaald door de plaatselijke hoeveelheid water en voedingsstoffen in de bodem en door obstakels op het terrein. Zo zijn er bijvoorbeeld planten die heel veel water nodig hebben om te overleven. Anderzijds zijn er planten die zeer weinig water nodig hebben om te overleven, maar ze zullen niet overleven als ze in een te vochtige omgeving terecht komen. Planten hebben ook een bepaalde hoeveelheid voedingsstoffen nodig uit de bodem. Waar er zich obstakels, zoals rotsen, op het terrein bevinden zullen ook geen planten kunnen groeien. Men zou op elk punt van het terrein de hoeveelheid water en hoeveelheid voedingsstoffen kunnen bepalen, maar dit zou enkel nuttig zijn als we rekening houden met de wortels van de plant. De wortels groeien dan naar de plaatsen in de bodem waar er veel water en voedingsstoffen zitten [MP96]. In het high-level model wordt er echter gewerkt met gehele planten als ecologische eenheid. Om de wortelgroei te simuleren zouden we dan nog een niveau aan het model moeten toevoegen waarbij de wortels van een plant als ecologische eenheid beschouwd worden. Daarbij komt nog eens dat de simulatie van de wortelgroei zeer
26
Hoofdstuk 4: High-level model
veel berekeningen met zich meeneemt. Daarom wordt de wortelgroei niet in rekening gebracht, in dit model. In deze thesis wordt het terrein opgedeeld in cellen. We leggen dus een grid over het terrein. De gebruiker kan nu een hoeveelheid water en een hoeveelheid voedingsstoffen bepalen voor elke cel. Om het gebruiksgemak te verhogen is het ook mogelijk om een zelfde waarde aan een groep van cellen toe te kennen. De hoeveelheid water en de hoeveelheid voedingsstoffen liggen beide tussen 0 en 1. Nul staat voor de minimale hoeveelheid en één voor het maximum.
Figuur 4: Een waterverdeling van een terrein. Hoe blauwer de cel, hoe meer water ze bevat. Hoe donkerder, hoe minder water er in de cel zit.
27
Hoofdstuk 4: High-level model
Figuur 5: Een verdeling van voedingsstoffen over het terrein. Hoe groener de cel, hoe meer voedingsstoffen ze bevat. Hoe donkerder, hoe minder voedingsstoffen er in de cel zitten.
Een obstakel op het terrein kan men voorstellen door de hoeveelheid water en voedingsstoffen op nul te zetten.
4.3 Planten Pacala en Silander zijn ooit op het idee gekomen om planten voor te stellen met behulp van cirkels [PS85]. Dit is ook de abstractie die we in deze thesis zullen gebruiken. Een plant is een cirkel op een bepaalde positie op het terrein. Hoe groter de cirkel is, hoe groter de plant is. Planten interageren met elkaar als hun cirkels overlappen. In de volgende secties worden, met behulp van deze voorstelling, ecologische fenomenen gesimuleerd. Er wordt gestart met een self-thinning model dat telkens meer en meer uitgebreid wordt met andere fenomenen. 28
Hoofdstuk 4: High-level model Self-thinning
Om self-thinning te simuleren, wordt er rekening gehouden met drie eenvoudige regels:
•
Als twee cirkels overlappen, dan zal de grootste plant van de twee de andere gaan domineren. De kleinste plant sterft af.
•
Een plant die niet gedomineerd wordt, zal groeien.
•
Een plant kan groeien tot een bepaalde maximale grootte.
Figuur 6: Drie fases van het self-thinning fenomeen
Bij elke iteratie van het systeem wordt er, voor elke plant, gecontroleerd of hij gedomineerd wordt. Als een plant gedomineerd wordt, dan zal hij bij de volgende iteratiestap verdwijnen. Wordt een plant niet gedomineerd, dan zal hij gewoon verder blijven groeien. In de derde fase van figuur 6 hebben alle planten hun maximum grootte bereikt. Hier houdt het thinningproces dus op. Het thinning-proces wordt in algoritme 1 weergegeven.
29
Hoofdstuk 4: High-level model Algoritme 1:
Determine for each plant if it is dominated For each plant p do { If ( p is dominated ) { Mark p to be deleted before the next iteration } Else { If ( size of p >= max_size ) { Set size of p to max_size} Else { Let p grow } } } Remove the plants that are marked to be deleted
Om te weten of een plant gedomineerd wordt, is het niet nodig om de plant te vergelijken met alle andere planten op het terrein. Het volstaat om te controleren op intersecties bij de naburige planten. Vermits er een grid over het terrein gelegd is, is het enkel nodig om intersecties berekenen met planten in dezelfde cel en met planten in de naburige cellen. Als de grootte van een cel het dubbele is van de maximale grootte van de planten, dan moeten we enkel die cellen contoleren die aan de huidige cel grenzen. Overlappingen met planten in andere cellen is dan onmogelijk. Zo worden er vele berekeningen bespaard, als men werkt met vele planten. Het bepalen van de dominantie van elke plant gebeurt in algoritme 2.
Algoritme 2:
For each cell of the grid do { Get the cell’s neighbours For each plant in the cell do { Check if plant is dominated by plants in the same cell If ( not dominated ) { Check if plant is dominated by plants in the neighbouring cells } } }
30
Hoofdstuk 4: High-level model
In dit self-thinning model moet de gebruiker twee parameters meegeven. De eerste parameter bepaald de groeisnelheid van de plant. Als in een iteratiestap een plant groeit, dan zal zijn grootte (de straal van de cirkel) met de waarde van deze parameter toenemen. De tweede parameter bepaalt de maximale grootte van de plant, of met andere woorden de maximale straal van de cirkel.
Succession
Nu wordt het model uitgebreid, zodat het successie fenomeen kan gesimuleerd worden. Vanaf nu wordt er ook gewerkt met meerdere plantensoorten. Voor elke soort moeten er enkele parameters gespecificeerd worden. Het model bevat al parameters voor de groeisnelheid en de maximale grootte. Nu wordt er nog een parameter toegevoegd, die weergeeft hoe goed een plant kan overleven in de schaduw, de schaduwtolerantie. Deze parameter is in feite de kans die een plant heeft om te overleven als hij gedomineerd wordt door een andere plant. Een plant met een schaduwtolerantie van 0 zal altijd afsterven als hij gedomineerd wordt. Een plant met een schaduwtolerantie van 1 zal altijd blijven leven als hij gedomineerd wordt. Een plant met een schaduwtolerantie van bijvoorbeeld 0.6 zal 60% kans hebben om te blijven leven als hij gedomineerd wordt. Planten die gedomineerd worden groeien in ieder geval niet. Er wordt nog een tweede parameter toegevoegd die aangeeft hoe groot een plant moet zijn om zich te kunnen voortplanten. Als een plant deze grootte bereikt heeft, dan zal hij vanaf dan elke iteratiestap een kind genereren. Het kind komt ergens willekeurig op het terrein terecht. Tenslotte wordt er nog een laatste parameter toegevoegd. Deze parameter is de kans die een plant heeft om te blijven leven als hij zijn maximum grootte heeft bereikt. Het is niet realistisch om te zeggen dat een plant onmiddellijk afsterft als hij zijn maximum grootte heeft bereikt. Dit is in de natuur ook niet het geval. Als de parameters op een bepaalde manier ingevuld worden, dan is het mogelijk om het fenomeen successie te simuleren. Algoritme 3 geeft het successie fenomeen weer.
31
Hoofdstuk 4: High-level model Algoritme 3:
Determine for each plant if it is dominated For each plant p do { If ( p is dominated ) { Generate random number r between 0 and 1 If (r > shadetolerance of p ) { Mark p to be deleted before the next iteration } } Else { If ( size of p >= max_size ) { Generate random number r between 0 and 1 If ( r > oldage of p ) { Mark p to be deleted before the next iteration } Else { Set size of p to max_size } } Else { Let p grow If ( p is fertile ) { Place a child randomly on the terrain } } } } Remove the plants that are marked to be deleted
Stel dat, bijvoorbeeld, twee soorten bomen groeien op het terrein. De eerste soort groeit snel, maar heeft een lage schaduwtolerantie. De tweede soort groeit niet zo snel, maar heeft een hoge schaduwtolerantie. Stel dat er initieel zich op het terrein jonge plantjes bevinden, die even groot zijn. Er zijn een gelijk aantal plantjes van elke soort op het terrein. Voor de gemakkelijkheid noemen we de eerste soort geel en de tweede soort rood. Eerst zal de gele soort het terrein gaan domineren omdat ze sneller groeit. Maar omdat er nu een bos is ontstaan, zullen de jonge boompjes in de schaduw moeten leven. Als de volwassen bomen beginnen te sterven, zullen meer en meer jonge boompjes van de rode soort de lege plaatsen gaan opvullen, omdat zij meer kans hadden om te blijven leven in de schaduw. Zo zal uiteindelijk de rode soort het terrein meer en meer gaan domineren. Na een lange tijd zal de
32
Hoofdstuk 4: High-level model
gele soort zelfs uitsterven. De verschillende fases van dit ecosysteem vindt je in figuur 7 en figuur 8. De parameters in dit voorbeeld zijn als volgt:
•
Gele soort: o Schaduwtolerantie = 0.4 o Kans om te blijven leven van een volwassen plant = 0.8 o Groeisnelheid = 0.5 o Maximum grootte = 8.0 o Minimum grootte van een vruchtbare plant = 3.5
•
Rode soort: o Schaduwtolerantie = 0.75 o Kans om te blijven leven van een volwassen plant = 0.8 o Groeisnelheid = 0.3 o Maximum grootte = 8.0 o Minimum grootte van een vruchtbare plant = 3.5
Figuur 7: Twee fases van het succession model. Links zie je de initiële fase. Rechts zie je hoe de gele soort de rode soort domineert.
33
Hoofdstuk 4: High-level model
Figuur 8: Twee fases van het succession model. Links zie je hoe de rode soort de plaats in neemt van afgestorven gele planten. Rechts zie je dat de rode soort heel het terrein domineert.
Clustering
In het model dat tot nu toe ontwikkeld is, kan men vaststellen dat de planten gelijkmatig verdeeld worden. Er zijn met andere woorden geen groepjes van planten. Als in dit model twee planten elkaar raken dan sterft de gedomineerde plant. Hierdoor worden de planten uit elkaar gedreven. In de natuur is dit echter niet altijd het geval. Als een plant zich voortplant, dan valt zijn zaad niet altijd zomaar willekeurig op het terrein. Een zaad valt meestal in de buurt van zijn ouder. Daarom wordt er aan het model nog een parameter toegevoegd, het
bereik van kinderen. Deze parameter stelt een straal rond de ouderplant voor, waarin zijn kinderen kunnen terecht komen. De kinderen van een plant worden willekeurig in dit gebied geplaatst. Hoe kleiner deze straal is, hoe meer de plantensoort geneigd is om in groepjes voor te komen. Figuur 9 is een voorbeeld van clustering, initieel waren de planten willekeurig verspreid over het terrein.
34
Hoofdstuk 4: High-level model
Figuur 9: Een fase in het clustering model
Algoritme 4 geeft het clustering fenomeen weer.
35
Hoofdstuk 4: High-level model Algoritme 4:
Determine for each plant if it is dominated For each plant p do { If ( p is dominated ) { Generate random number r between 0 and 1 If ( r > shadetolerance of p ) { Mark p to be deleted before the next iteration } } Else { If ( size of p >= max_size ) { Generate random number r between 0 and 1 If r > oldage of p { Mark p to be deleted before the next iteration } Else { Set size of p to max_size } } Else { Let p grow If ( p is fertile ) { Place a child on the terrain within the range of p } } } } Remove the plants that are marked to be deleted
Interactie met de omgeving
Één van de factoren uit de omgeving die de groei van de planten bepaald, is de hoeveelheid water die zich in de bodem bevindt. Planten hebben een minimum hoeveelheid water nodig om te kunnen groeien. Maar planten die zich in een te vochtige omgeving bevinden zullen ook niet kunnen overleven. De hoeveelheid vocht die een plant nodig heeft en de maximale hoeveelheid vocht die hij kan verdragen, hangt af van soort tot soort. Daarom wordt het model uitgebreid met twee nieuwe parameters. Één parameter voor de minimale vochtigheidsgraad en één parameter voor het maximum. Zoals we gezien hebben in sectie 2.1.2 heeft elke cel op
36
Hoofdstuk 4: High-level model
het terrein een bepaalde vochtigheidsgraad. Als deze vochtigheidsgraad gunstig is voor de planten die zich in de cel bevinden, dan zal de plant blijven groeien. Is de vochtigheidsgraad echter te hoog of te laag, dan zal de plant in kwestie afsterven. In figuur 10 zie je een voorbeeld van dit model. In dit specifieke ecosysteem wordt er weer gewerkt met de twee plantensoorten uit de vorige voorbeelden. Het terrein bestaat uit drie stukken. Links onder is er een gebied met weinig water. Rechts boven is er een gebied waar de vochtigheidsgraad zeer hoog is. De rest van het terrein heeft een middelmatige vochtigheidsgraad. In het stuk links onder, kunnen alleen planten van de rode soort overleven. In het gebied rechts boven kunnen alleen planten van de gele soort overleven. Op de rest van het terrein kunnen planten van de twee soorten groeien.
Figuur 10: Invloed van de vochtigheidsgraad op het ecosysteem. Links zie je de indeling van het terrein: linksonder is het droog, rechtsboven is het vochtig, in het midden middelmatig. Rechts zie je een fase van het ecosysteem.
De rode soort zal nu nooit meer het volledige terrein kunnen gaan domineren door successie, omdat de rode soort niet in het vochtige gebied kan overleven. Op de rest van het terrein zal het uiteindelijk wel de dominante soort worden. Een andere factor die de groei van de planten bepaald is de hoeveelheid voedingsstoffen die zich in de bodem bevinden. Als een plant niet genoeg voedingsstoffen uit het terrein kan halen, dan zal hij afsterven. Daarom wordt er nog een parameter toegevoegd aan het model.
37
Hoofdstuk 4: High-level model
Deze parameter is de minimale hoeveelheid voedingsstoffen die een plant nodig heeft om te overleven. Net zoals bij het water heeft elke cel op het terrein een bepaalde hoeveelheid voedingsstoffen. Als de cel, waarop een plant groeit, niet genoeg voedingsstoffen heeft voor de plant, dan zal de plant afsterven.
Figuur 11: Invloed van de voedingstoffen in de bodem op het ecosysteem. In het gebied rechtsonder zijn er te weinig voedingsstoffen voor zowel de gele als de rode soort. In het centrale gebied kan enkel de gele soort overleven. De rest van het terrein bevat genoeg voedingsstoffen voor de beide soorten.
Algoritme 5 geeft de aanpassingen in ons model weer.
38
Hoofdstuk 4: High-level model Algoritme 5:
Determine for each plant if it is dominated For each plant p do { If ( p has enough nutritients and water and p has not to much water ) { If ( p is dominated ) { Generate random number r between 0 and 1 If ( r > shadetolerance of p ) { Mark p to be deleted before the next iteration } } Else { If ( size of p >= max_size ) { Generate random number r between 0 and 1 If ( r > oldage of p ) { Mark p to be deleted before the next iteration } Else { Set size of p to max_size } } Else { Let p grow If ( p is fertile ) { Place a child on the terrain within the range of p } } } } } Remove the plants that are marked to be deleted
Om globale factoren zoals dagelijkse minimum en maximum temperaturen, lengte van de dagen, … in rekening te brengen, is het aan de gebruiker om de parameters aan te passen. In een koude omgeving zal, bijvoorbeeld, de groei van de plant minder snel zijn. Dan moet de gebruiker de parameter ‘groeisnelheid’ verminderen.
39
Hoofdstuk 4: High-level model Interactie met dieren
In een ecosysteem waar zich planten bevinden, bevinden zich ook dieren. Sommige planten kunnen gegeten worden door dieren. Een plant waarvan gegeten wordt, zal het moeilijk hebben om te groeien. Soms kan dit zelfs leiden tot het sterven van de plant. Olifanten, bijvoorbeeld, kunnen zeer veel schade aan een boom verrichten. Het model zal uitgebreid worden om dit fenomeen in rekening te brengen. Hiervoor worden er voor elke plantensoort nog twee parameters toevoegen. De eerste parameter geeft aan in welke mate een plant in omvang vermindert als er van gegeten wordt. Deze parameter zal groot zijn voor, bijvoorbeeld, olifanten en minder groot voor, bijvoorbeeld, herten. De tweede parameter is de kans dat er van deze plant gegeten wordt. Hoe meer dieren er zich in het ecosysteem bevinden, die van deze plant eten, hoe groter de kans is dat er van een bepaalde plant gegeten zal worden. Tijdens de simulatie zal dus bij elke iteratiestap een plant, waarvan mogelijk gegeten wordt, in omvang verminderen met een bepaalde kans. Als er van een plant gegeten wordt, dan zal deze niet meer groeien. Algoritme 6 toont hoe dit proces gesimuleerd wordt.
40
Hoofdstuk 4: High-level model Algoritme 6:
Determine for each plant if it is dominated For each plant p do { If ( p has enough nutritients and water and p has not to much water ) { If ( p is dominated ) { Generate random number r between 0 and 1 If ( r > shadetolerance of p ) { Mark p to be deleted before the next iteration } } Else { If ( size of p >= max_size ) { Generate random number r between 0 and 1 If ( r > oldage of p ) { Mark p to be deleted before the next iteration } Else { Set size of p to max_size } } Else { Let p grow by the growrate of p Generate random number r between 0 and 1 If ( r > isEaten of p ) { Let p shrink by the shrinkrate of p If ( size op p < 0 ) { Mark p to be deleted before the next iteration } } Else if ( p is fertile ) { Place a child on the terrain within the range of p } } } } } Remove the plants that are marked to be deleted
41
Hoofdstuk 4: High-level model
In ons voorbeeld van de vorige modellen, kan nu het successie fenomeen tegengewerkt worden. Men kan voorkomen dat de gele soort gedomineerd wordt door de rode soort. Hiervoor wordt er een diersoort in het ecosysteem geplaatst die zich voedt met planten van de rode soort. Nu zullen er veel rode planten afsterven, of op zijn minst minder snel groeien, waardoor ze de gele planten niet zullen kunnen domineren. Er is dus meer plaats voor planten van de gele soort om te groeien. Het ecosysteem zal gedomineerd blijven door planten van de gele soort. Dieren kunnen ook een rol spelen in de voortplanting van een plant. Ze zorgen voor de spreiding van de zaden. Maar voor dit fenomeen gaan wordt er geen extra parameter ingevoerd. De gebruiker kan dit ook in rekening brengen door de straal waarin kinderen van een plant terecht kunnen komen, te wijzigen. Men kan deze straal bekijken als het gebied waarin een dier komt als hij bezig is met een vrucht van de plant op één of andere manier te verspreiden. De zaden komen dan ergens willekeurig in dit gebied terecht.
42
5 Low-level model
Nadat het high-level model een verdeling van de planten gegenereerd heeft, is het aan het low-level model om een realistisch beeld te renderen van dit ecosysteem. Het low-level model kan in twee delen opgesplitst worden:
•
Het renderen van een realistisch terrein.
•
De geometrie van de planten bepalen en renderen.
In dit hoofdstuk wordt eerst de visualisatie van het terrein besproken (sectie 5.1). In sectie 5.3 wordt de visualisatie van de planten behandeld. In de sectie over de visualisatie van planten wordt met het formalisme van L-systemen gewerkt. Daarom wordt eerst in sectie 5.2 de werking van L-systemen uitgelegd.
5.1 Terrein Om een realistisch beeld te renderen is er eerst en vooral een terrein nodig. Er zijn vele manieren om een terrein voor te stellen, maar de methode die hier gebruikt gaat worden, is ‘height mapping’. Deze methode wordt gebruikt omdat ze aansluit met de terreinvoorstelling in het high-level niveau. Een height map is in feite een twee-dimensionele matrix van grijswaarden. Deze grijswaarden kunnen van een raw-bestand of een bmp-bestand ingelezen worden. Lage punten op het terrein hebben een lage, donkere grijswaarde. Hogere punten op het terrein hebben een lichtere grijswaarde. Het terrein bestaat uit een grid van punten. De xen z-waarden van deze punten worden overgenomen van het grid uit het high-level niveau. De y-waarde van deze punten kunnen we uit de height map halen. Een x- en een z-waarde bepalen een punt op de height map. Dit punt stelt dan de te zoeken hoogte voor. Als nu straks de planten gerenderd gaan worden, dan halen we de x- en z-waarden van de positie van de plant uit het high-level model en de y-waarde uit de height map. Elke cel van het grid bestaat uit twee driehoeken. Met behulp van triangle-strips wordt dan het terrein gerenderd. Door met textures te werken kan men zo zeer mooie resultaten bekomen.
43
Hoofdstuk 5: Low-level model
5.2 L-systemen L-systemen zijn zeer geschikt om de geometrie van planten te modelleren. Een L-systeem is een formalisme dat origineel ontwikkeld is door de bioloog Aristid Lindenmayer in 1968. L-systemen worden veel gebruikt in computer graphics om biologische systemen weer te geven. Dit komt omdat er een nauwe band is tussen L-systemen en de groei van biologische systemen. Een L-systeem wordt als volgt gedefinieerd: Een L-systeem bestaat uit drie componenten:
.
•
V is het alfabet. Dit is de verzameling van symbolen die in het L-systeem gebruikt worden.
•
Ω is het axioma. Ω is een deelverzameling van de taal V*. Het axioma stelt de aanvankelijke string van het systeem voor.
•
P is een deelverzameling van V×V*. P is een verzameling van productieregels, die bepalen hoe het systeem zich ontwikkelt bij elke iteratiestap. In een iteratiestap wordt elk symbool van de huidige string vervangen door een symbool of string volgens de productieregels. Zo verkrijgt men in elke iteratiestap een nieuwe string. Als een symbool kan vervangen worden aan de hand van meerdere productieregels, dan kiest men, per conventie, voor de bovenste productieregel.
In de loop der tijd zijn er verschillende soorten L-systemen ontwikkeld. Zo zijn er:
•
D0L-systemen
•
Bracketed L-systemen
•
Contextgevoelige L-systemen
•
Parametrische L-systemen
44
Hoofdstuk 5: Low-level model D0L-Systemen
De eerste L-systemen waren D0L-systemen. D0L-systemen zijn deterministisch en contextvrij. Een productieregel heeft de volgende vorm: αi → βi. Hierbij is αi een symbool van het alfabet en βi een string van symbolen (een string kan ook uit één symbool bestaan). Het systeem is deterministisch omdat αi slechts één keer aan de linkerkant mag voorkomen. Als er geen productieregel is voor een bepaald symbool αi, dan wordt de productieregel αi → αi aan de verzameling van productieregels toegevoegd. De output van een L-systeem is een string. Men zal dan een interpretatie van deze string moeten doen. Men kan, bijvoorbeeld, een symbool vervangen door een geometrisch element. Neem als voorbeeld het volgende D0L-systeem:
•
Alfabet: {S, A, B, T, X}
•
Axioma: S
•
Productieregels: o S → ABA o A → XX o B → TT
De iteraties verlopen als volgt:
•
S, ABA, XXTTXX, XXTTXX, …
Figuur 12: Een geometrische interpretatie van het D0L-systeem
45
Hoofdstuk 5: Low-level model
Men kan de string van een L-systeem ook interpreteren met behulp van een turtle. De symbolen van de string zijn dan commando’s, die zeggen hoe of wat de turtle moet tekenen. Een turtle kan 2 of 3-dimensionaal zijn. Een turtle heeft altijd een bepaalde status. De status van de turtle is een datastructuur die informatie van de turtle bijhoudt. De status kan informatie bevatten zoals de positie van de turtle, de oriëntatie van de turtle … . Als de symbolen van de string doorlopen worden, dan zal de status van de turtle ook telkens veranderen. Neem als voorbeeld het volgende D0L-systeem:
•
Alfabet: {S, A, B, T, +,-,F}
•
Axioma: S
•
Productieregels: o S → ABA o A → FF o B → TT o T → -F++F-
Dit L-systeem kan geïnterpreteerd worden door een 2-dimensionale turtle. Bij het symbool ‘F’ tekent de turtle een lijn van lengte d in de huidige richting. Bij het symbool ‘+’ draait de turtle h graden. Bij het symbool ‘-‘ draait de turtle –h graden. De iteraties verlopen als volgt:
•
S, ABA, FFTTFF, FF-F++F--F++F-FF, …
Figuur 13: Turtle interpretatie van een L-systeem
46
Hoofdstuk 5: Low-level model Bracketed L-systemen
Tot nu toe is er nog altijd een probleem om de vertakkingen van planten weer te geven. Een oplossing hiervoor is het bracketed L-systeem. Hierbij worden er twee speciale symbolen gebruikt om het begin en het einde van een vertakking aan te geven, namelijk ‘[‘ en ‘]’. De turtle kan nu uitgebreid worden met een stack. Een stack is een datastructuur, waarbij men, als het ware, objecten op elkaar kan stapelen. Een object boven op de stack plaatsen, noemen we ‘pushen’. Het bovenste object van de stack afnemen, noemen we ‘poppen’. Het object dat hier op de stack geplaatst wordt, is de status van de turtle. Als we een ‘[‘ tegenkomen dan pushen we de huidige status van de turtle op de stack. Als we een ‘]’ tegenkomen, dan poppen we de stack. Zo komt de status van voor de vertakking weer vrij bovenaan de stack.
Figuur 14: Bracketed L-systemen
47
Hoofdstuk 5: Low-level model Contextgevoelige L-systemen
Om de context van de symbolen in een string in rekening te brengen zijn er contextgevoelige L-systemen. Hierbij kan men voor een productieregel een context specificeren waarin de linkerkant van de productieregel zich moet bevinden. Als een symbool zich in een juiste context bevindt, dan is de productieregel toepasbaar. Een productieregel heeft dan de volgende vorm:
•
LC RC → OPVOLGER
LC staat voor de linker context en RC voor de rechter context. Een context kan uit één of meerdere symbolen bestaan. Neem als voorbeeld het volgende contextgevoelige L-systeem: • Alfabet : {S, A, B, T, +,-,F}
•
Axioma: S
•
Productieregels: o S → FAT o A > T → [+FBF] o A>F→F o B → [-FAF] o T→F
De iteraties verlopen als volgt:
•
S, FAT, F[+FBF]F, F[+F[-FAF]F]F, F[+F[-FFF]F]F, …
Parametrische L-systemen
Tenslotte kunnen L-systemen ook nog uitbreid worden met parameters. Hierbij kan elk symbool in de string een parameter hebben. De parameters kan men dan gebruiken als variabelen. Het is ook mogelijk om in een productieregel condities op te leggen aan de parameters. Een productieregel heeft nu de volgende vorm:
•
LC RC : CONDITIE → OPVOLGER
48
Hoofdstuk 5: Low-level model
Dit kan het best uitgelegd worden aan de hand van een voorbeeld:
•
Alfabet: {I, B, L}
•
Axioma: IB(1)
•
Productieregels: o B(t) : t≥2 → L o B(t)
→ IB(t+1)
De iteraties verlopen als volgt:
•
IB(1), IIB(2), IIL, …
In dit voorbeeld hoort er bij het symbool B een parameter t. Deze parameter kan geïnterpreteerd worden als ‘leeftijd’. Stel dat B een knoop van een plant voorstelt en L een blad. De bovenste productieregel zet een knoop met een parameter groter of gelijk aan twee om in een blad. Als de conditie in de bovenste regel niet voldaan is, dan wordt de tweede productieregel gebruikt. Deze creëert een segment van een tak ‘I’ en verhoogt de parameter met 1. Figuur 15 toont een mogelijke interpretatie van het L-systeem.
Figuur 15: Een interpretatie van het bovenstaande L-systeem
49
Hoofdstuk 5: Low-level model
5.3 Visualisatie van planten Voor de visualisatie van de planten is er weer een keuze uit een local-to-global model en een global-to-local model. In een local-to-global model wordt een plant gemodelleerd aan de hand van een aantal regels die de ontwikkeling en groei van individuele componenten van de plant bepalen. Men simuleert de groei van de plant. Men heeft dit model nog uitgebreid door de interacties van de plant met zijn omgeving in rekening te brengen [MP96]. Zo kan, bijvoorbeeld, de groei van componenten van een plant beïnvloed worden door de hoeveelheid licht die de plant van de omgeving ontvangt. Deze local-to-global modellen worden gebruikt voor onderzoek in de biologie en leveren zeer realistische visualisaties. Maar, anderzijds, op het gebied van beeldverwerking heeft deze aanpak enkele nadelen:
•
Het realisme van de planten gegenereerd met dit model hangt samen met de biologische en fysische correctheid van simulaties. Hierdoor moet de ontwikkelaar de onderliggende processen zeer goed begrijpen, de modellen kunnen zeer ingewikkeld worden en de simulatie kan veel processortijd in beslag nemen.
•
De globale eigenschappen van het uitzicht van de plant, zoals de kromming van stengels, de verdeling van de plantenorganen en de silhouet van de plant, vloeien voort uit de simulatie van het model en zijn dus zeer moeilijk om in de hand te houden.
Als men een plant met de hand tekent, dan gebeurt dit op een global-to-local manier. Men vertrekt van het silhouet en tekent zo meer en meer detail. Dit is dan ook de aanpak die in global-to-local modellen gebruikt wordt. Het model vertrekt van globale eigenschappen, die door de gebruiker gespecificeerd zijn en gaat zo naar algoritmisch gegenereerde details. Vermits de informatie over de planten, die we uit het high-level model halen, globale informatie is, is het hier aangewezen dat er gebruik wordt gemaakt van een global-to-local model op de planten te visualiseren. In sectie 5.3.1 wordt er een korte geschiedenis gegeven van global-to-local modellen voor de visualisatie van planten. In sectie 5.3.2 worden enkele global-to-local modellen meer uitgewerkt. De modellen komen uit [PMKL01].
50
Hoofdstuk 5: Low-level model
Er wordt een model gegeven voor de visualisatie van:
•
Plantenorganen
•
Planten met één vertakkingniveau
•
Planten met meerdere vertakkingniveau’s
5.3.1 Korte geschiedenis van global-to-local modellen De eerste global-to-local modellen werden ontwikkeld door biologen:
•
Het poplar model door Burk, Nelson en Isebrands. [BNI83]
•
Het larch sapling model door Remphrey en Powell. [RP84]
In beide gevallen werd de lengte van de takken uitgedrukt als een functie van hun positie op de hoofdstam. De modellen werden gevisualiseerd als tweedimensionale lijntekeningen. In computer graphics werd dit concept het eerst toegepast bij de modellering van bomen door Reeves and Blau [RB85]. Hier werd de lengte van de takken van de hoofdstam uitgedrukt als de afstand van het vertakkingpunt tot een door de gebruiker gespecificeerd oppervlak. Dit oppervlak was de silhouet van de boom. De andere takken werden algoritmisch gegenereerd, waarbij vele parameters overgeërfd werden van de oudertak. Een meer uitgewerkt model werd gegeven door Weber en Penn [WP95]. Hier werd een boom gemodelleerd, gebruik makend van meerdere functies die de globale eigenschappen van de boom vastleggen. De parameters die in dit model gebruikt werden, hadden effect op gehele takken en niet alleen maar op individuele segmenten. Zo was het gemakkelijker voor de gebruikers om wijzigingen aan te brengen op een niveau die zij konden begrijpen en visualiseren. Lintermann en Deussen hebben een programma ontwikkeld, ‘xfrog’ genaamd, om planten te modelleren. De positie van samplepunten rond de curve van een plantenorgaan beïnvloedt de lengte van internodes, de lengte van een tak, de grootte van de vertakkinghoek en andere attributen. Functies van posities op attribuutwaarden kunnen grafisch of tekstueel
51
Hoofdstuk 5: Low-level model
gespecificeerd worden. De algoritmes die de auteurs gebruikt hebben, zijn wel niet in detail vrijgegeven. Figuur 16 geeft een screenshot weer van het programma ‘xfrog’.
Figuur 16: screenshot van het programma 'xfrog'
5.3.2 Enkele uitgewerkte modellen De programmeeromgeving
De algoritmes die in de volgende secties gebruikt zullen worden om een visualisatie van een plant te doen, zullen allemaal gebruik maken van L-systemen. Om een grafisch model te maken van een plant is er dus een turtle nodig die de string, die geproduceerd wordt door een L-systeem, interpreteert. Vermits het de bedoeling is om driedimensionale modellen te produceren, wordt er gewerkt met een driedimensionale turtle.
52
Hoofdstuk 5: Low-level model
Een status van de turtle heeft de volgende structuur: r • Een vector P die de positie van de turtle aangeeft. r r r • Drie vectoren H , L en U die loodrecht op elkaar staan en de oriëntatie van de turtle
bepalen. r H is de kijkrichting van de turtle. r o L is de richting naar links. r o U is de richting naar boven. o
Figuur 17: controle over de turtle in drie dimensies.
r r r r De coördinaten van de vectoren P , H , L en U kunnen door een L-systeem opgevraagd worden met behulp van query modules. Een query module is van de vorm ?X(x,y,z) waarbij X één van de vectoren van de turtle is (P, H, L of U). Nu volgt er een lijst van symbolen die in een L-systeem kunnen voorkomen en de interpretatie van de turtle van deze symbolen:
•
F(x): Teken een segment van lengte x in de huidige richting.
•
f(x): Ga x verder in de huidige richting, zonder te tekenen.
•
[: Push de huidige status van de turtle op de stack
•
]: Pop een status van de stack.
•
+(x): Roteer de turtle x° rond de U-vector.
•
-(x): Roteer de turtle -x° rond de U-vector.
•
&(x): Roteer de turtle x° rond de L-vector.
53
Hoofdstuk 5: Low-level model
•
^(x): Roteer de turtle -x° rond de L-vector.
•
/(x): Roteer de turtle x° rond de H-vector.
•
\(x): Roteer de turtle -x° rond de H-vector.
Modelleren van plantenorganen
De visualisatie van plantenorganen zoals stengels en lange bladeren, is essentieel om de eigenschappen van een bepaalde plantensoort tot uiting te brengen. Kenmerkend aan deze organen is dat ze een bepaalde curve volgen, de ‘carrier curve’. Een eerste techniek die werd toegepast om zulke plantenorganen weer te geven, is het gebruik van ‘generalized cylinders’ [Blo85]. ‘Generalized cylinders’ kunnen gemodelleerd worden, gebruik makend van L-systemen, door een parametrische curve te definiëren die de as van de cilinder voorstelt en door een curve te definiëren die de doorsnede bepaalt. De curve die de doorsnede bepaalt, wordt rond de as gewenteld en zo verkrijgt men de cilinder. De segmenten van de curve zijn Hermite curven die gedefinieerd zijn door twee controlepunten en een vector voor elk controlepunt. Dus om de as van een ‘generalized cylinder’ te bepalen, definieert men een verzameling van controlepunten en vectoren. Deze verzameling definieert dus een parametrische curve die bestaat uit een reeks van cubische curve segmenten. De curve die de doorsnede bepaalt, kan gesloten of open zijn. Gesloten curven worden typisch gebruikt bij stengels en open curven worden typisch gebruikt om bladeren te visualiseren.
Figuur 18: Generalized cylinders. Links een cilinder met een gesloten curve voor de doorsnede, de rode curve is de ‘carrier curve’. Rechts een cilinder met een open curve voor de doorsnede.
54
Hoofdstuk 5: Low-level model
De curve die de doorsnede bepaalt, moet ook juist georiënteerd zijn ten opzichte van de ‘carrier curve’. Het ‘Frenet frame’ [HM95] is een oplossing die hiervoor veel gebruikt wordt. Maar het gebruik van het ‘Frenet frame’ brengt enkele klassieke problemen met zich mee. Zo zijn er problemen bij rechte secties van de ‘carrier curve’ en bij buigpunten. Het ‘Frenet frame’ draait ook 180° in de buurt van buigpunten. Een alternatief voor het ‘Frenet frame’ is het ‘parallel transport frame’ [HM95]. Hierbij worden de klassieke problemen van het ‘Frenet frame’ geminimaliseerd. Een alternatieve oplossing voor dit probleem is het gebruik van het ‘turtle frame’. Hierbij is de ‘carrier curve’ gedefinieerd door een reeks van oneindig kleine bewegingen van de turtle. Noem s de booglengte van de oorsprong van de curve tot het punt op de curve waar de turtle ρ ρ ρ zich bevindt. dΩ H , dΩ L , dΩU zijn de oneindig kleine rotaties rond de assen H L U tussen ρ ρ ρ twee punten op de curve, P (s ) en P ( s + ds ) . P (s ) , s ∈ [0, l ] , is de functie van de ‘carrier ρ curve’. Neem aan dat de vector H van de turtle samenvalt met de rakende vector van de curve ρ ρ ρ ρ r voor alle s ∈ [0, l ] . H ' = H + d H is de richting van de vector H op het punt P ( s + ds ) . De ρ r r oneindig kleine rotatie dΩ die de vector H omzet in H ' voldoet aan de volgende r r r vergelijking: dH = d Ω × H . Dus: r r r r r r r dH = d Ω × H = Ud ΩU + Ld Ω L + Hd Ω H × H r r r r r r = U × H d ΩU + L × H d Ω L + H × H d Ω H r r = Ld ΩU − Ud Ω L + 0d Ω H
(
)
(
(
)
)
(
)
ρ r Door het dotproduct te nemen van de eerste en de laatste expressie met de vectoren L en U verkrijgt men: r r dH ⋅ L = r r dH ⋅ U =
r
r
r
r
r
( H '− H ) ⋅ L = H '⋅ L = d Ω r r r r r ( H '− H ) ⋅U = H '⋅U = −d Ω U
L
r r r Als T de rakende vector van de curve is, dan kan H ' vervangen worden door T ' : r r r r d ΩU = T '⋅ L en d Ω L = −T '⋅U
55
Hoofdstuk 5: Low-level model
De vorige vergelijking legt twee rotaties vast. De hoek d Ω H is nog steeds onbepaald. Er zijn ρ ρ dus meerdere oplossingen mogelijk. Als men d Ω H zo bepaalt dat de vector L (of U ) steeds in het osculatievlak ligt, dan bekomt men het ‘Frenet frame’. Zorgt men dat d Ω H steeds nul is, dan bekomt men het ‘parallel transport frame’. ρ Algoritme 7 geeft weer hoe de curve P( s ) benaderd wordt met behulp van een reeks bewegingen van een turtle. Algoritme 7
1. 2. 3. 4. 5. 6. 7.
#define P 1 #define K 57.29
/* curve ID */ /* radians to degrees */
Axiom: A(0)?U(0,0,0)?L(0,0,0) A(s) > ?U( u x , u y , u z )?L( l x , l y , lz ) : { s’ = s + ∆s } s’ ≤ l { t x' = tanX(P,s’) ; t y' = tanY(P,s’) ; t z' = tanZ(P,s’) ;
(
)
8.
VΩ L = K * t x' lx + t y' l y + t z' lz ;
9.
VΩU = − K * t x' u x + t y' u y + t z' u z ; } →
10.
(
)
+ ( VΩU ) & ( VΩ L ) F ( Vs ) A ( s ')
Het axioma bestaat uit de module A gevolgd door de query modules ?U en ?L. De parameter van module A stelt de huidige positie op de curve voor, gemeten als de booglengte vanaf de oorsprong van de curve. De productie creëert de as van een plantenorgaan als een reeks van ‘generalized cylinders’ van lengte Vs . De functies voor de oriëntatie en grootte van de curve die de doorsnede bepaalt, zijn hier weggelaten om het algoritme overzichtelijk te houden. De r rotaties VΩU en VΩ L worden berekend door het dotproduct te nemen van de vectoren U en r L , gegeven door de query modules ?U en ?L, met de rakende vector van de curve P. De rakende vector wordt gevonden met behulp van de functies tanX, tanY en tanZ. De waarden VΩU en VΩ L bepalen de oriëntatie van het volgende segment van de curve, voorgesteld door F( Vs ). De producties die de modules A, ?U en ?L wissen op het einde van de afleiding zijn hier weggelaten.
56
Hoofdstuk 5: Low-level model
Figuur 19: Bladeren en stengels van een lelie (links) en een tulp (rechts), gemodeleerd met algoritme 7.
Modellen van planten met één vertakkingniveau
Planten met één vertakkingniveau bestaan uit een reeks van organen die allemaal ondersteund worden door één stengel of stam. De punten waar de organen bevestigd zijn aan de stengel of stam worden nodes genoemd. Eerst en vooral is er een algoritme nodig die de posities van de nodes bepaalt. De segmenten tussen de nodes zijn internodes. Stel dat { si },
i = 0,1,2,… de
reeks posities van de nodes van de plant is. Noem { li = si +1 - si } de overeenkomstige reeks van internode lengtes. We kunnen de lengte van de internodes definiëren als een functie λ van de positie van één van de nodes. Een eenvoudig voorbeeld van zo een functie is: λ( si ) = si +1 – si = li . Het is aangetoond dat λ een onstabiele functie kan zijn. Daarom werkt men liever met de locale dichtheid van nodes:
(
)
s
ds λ ( s) s0
N s0 , s = ∫
Deze integraal geeft het aantal internodes weer tussen node s0 en punt s op de stengel of stam van de plant. Merk op dat de volgende gelijkheid geldt: N( s0 , si +1 ) = N( s0 , si ) +1. Het algoritme om nodes te plaatsen volgens een bepaalde functie λ(s) gaat als volgt:
57
Hoofdstuk 5: Low-level model Algoritme 8
1. Axiom: A(0,0) 2. 3. A(s,a): {s’ = s + ∆s} s’ ≤ l {a’ = a + ∆s/λ(s); 4. if (a’ < 1) { flag = 0; } 5. else { a’ = a’- 1; flag = 1; } } → 6. F(∆s)B(flag)A(s’,a’) 7. 8. 9. B(flag): flag == 0 → ε 10. B(flag): flag == 1 → @o Het axioma bestaat uit de module A. Deze heeft twee parameters. De eerste parameter stelt de huidige positie op de curve voor, gemeten als de booglengte vanaf de oorsprong van de curve. De tweede parameter vertegenwoordigt de integraal N(0,s). De productie in de regels 3 tot en met 7 genereert de curve met een reeks van segmenten F van lengte ∆s. Tussen de segmenten staan de modules B, die mogelijk een node kunnen zijn. Als de parameter flag van B nul is, dan wordt hij gewist in de volgende iteratie. Als de parameter flag van B één is, dan komt er op deze plaats een knoop @o in de volgende iteratie. De flag parameter wordt op één gezet als a’ groter als één is, want dan zijn we aan de volgende internode beland ( wegens N( s0 , si +1 ) = N( s0 , si ) +1 ). Door algoritme 7, uit de vorige sectie, en algoritme 8 te combineren, is het mogelijk om planten met één vertakkingniveau te modelleren. Algoritme 9 geeft weer hoe dit gebeurt. Algoritme 9
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
#define P 1 #define K 57.29 #define Φ 0
/* curve ID */ /* radians to degrees */ /* phyllotactic angle */
Axiom: A(0,0,0)?U(0,0,0)?L(0,0,0) A(s,a,φ) > ?U( u x , u y , u z )?L( lx , l y , lz ) : { s’ = s + ∆s } s’ ≤ l { t x' = tanX(P,s’) ; t y' = tanY(P,s’) ; t z' = tanZ(P,s’) ;
(
)
VΩ L = K * t x' l x + t y' l y + t z' lz ;
58
Hoofdstuk 5: Low-level model
11. 12. 11. 13. 14.
(
)
VΩU = − K * t x' u x + t y' u y + t z' u z ; a = a + ∆s/λ(s); if (a < 1) { flag = 0; } else { a = a - 1; flag = 1; φ = φ + Φ ;} } → + ( VΩU ) & ( VΩ L ) #( stem _ width( s ))
15. F(∆s)B(s, φ,flag)A(s’,a, φ) 16. 17. B(s, φ,flag): flag == 0 → ε 18. B(s, φ,flag): flag == 1 19. { l = length(s); w = width(s); } → 20. [ /( φ) [ +(brangle(s))L(l,w)] 21. [ -(brangle(s))L(l,w) ] ] De enige nieuwigheid die in dit algoritme geïntroduceerd wordt, zit in de derde productie (regels 19 tot en met 21). Hier wordt er een paar organen gehecht aan de knoop. De organen zijn gedefinieerd als een instantie van een oppervlak L. De lengte, breedte en de vertakkinghoek van de organen worden bepaald door functies van de positie s. De organen zouden ook gedefinieerd kunnen worden als ‘generalized cylinders’ met behulp van algoritme 7.
Figuur 20: een voorbeeld
59
Hoofdstuk 5: Low-level model Modellen van planten met meerdere vertakkingniveau’s
Planten met meerdere vertakkingniveau’s zijn planten waarbij de stengel of stam hele substructuren ondersteunt. De plant kan dus onderverdeeld worden in meerdere niveau’s van vertakking. Een vertakking op de hoofdstam heeft orde 0, een vertakking op deze tak heeft orde 1 … . Om een plant met meerdere vertakkingen te modelleren, kan men gebruik maken van branchmapping. Hierbij neemt men aan dat als twee verschillende takken dezelfde orde hebben en de takken hebben een verschillende grootte, dan is de korte tak gelijk aan het bovenste deel van de langere tak. Het volgende algoritme is gebaseerd op branch-mapping: Algoritme 10
1. Axiom: A(0,0) 2. 3. A(o,s): o < MAX_ORDER && s < max_len[o] {rel = s/max_len[o];} → 4. 5. #(int_width(o,rel))F(int_len(o,rel)) [+(branch_ang(o,rel)) 6. 7. A(o+1,max_len[o+1]- branch_len(o,rel)) ] 8. [-(branch_ang(o,rel)) 9. A(o+1,max_len[o+1]- branch_len(o,rel)) ] 10. /(phyllo_ang[o])A(o,s+int_len(o,rel)) 11. 12. A(o,s): s ≥ max_len[0] → K
Het symbool A in ons L-systeem stelt een knoop van een plant voor. Een knoop kan zich ontwikkelen tot een tak of tot een blad. De parameter o stelt de orde van de knoop voor. De parameter s stelt de positie van de knoop op de tak voor. De array max_len[o] bevat de maximale lengte van een tak voor elke orde. MAX_ODER is het maximum aantal ordes. rel is de relatieve positie op een tak. rel is een fractie van max_len[o] en ligt altijd tussen 0 en 1. Met deze relatieve positie kan men gemakkelijk alle functies specificeren omdat we nu werken met een vast domein. De functies die gebruikt worden zijn: •
int_width(o,rel): geeft de breedte van het segment terug. 60
Hoofdstuk 5: Low-level model
•
int_len(o,rel): geeft de lengte van het segment terug.
•
branch_ang(o,rel): geeft de hoek van de vertakking terug.
•
branch_len(o,rel): geeft de lengte van de vertakking terug.
De constante phyllo_ang[o] stelt de rotatie rond de tak voor tussen twee opeenvolgende knopen. Alle takken van dezelfde orde delen dezelfde verzameling functies. Als we een tak hebben van lengte l, dan zal de parameter s een beginwaarde hebben van lmax - l. Hierbij is lmax de maximum lengte van de tak. De beginwaarde wordt ingevuld tijdens het uitvoeren van productieregel 1. Zo zien we dat een kortere tak gelijk is aan het bovenste deel van een langere tak van dezelfde orde. Het symbool A(o,s) kan dus gezien worden als een tak van orde o en lengte max_len[o]-s. Het axioma van het L-systeem is dus een tak van orde 0 met lengte max_len[0]. Het is dus de stam en max_len[0] is de hoogte van de plant. De eerste productieregel wordt enkel toegepast als de orde kleiner is als het maximum en als de tak zijn maximum lengte nog niet heeft bereikt. De productie creëert een segment van breedte int_width(o,rel) en lengte int_len(o,rel). Daarna komen er twee vertakkingen van orde o+1 en lengte branch_len(o,rel). Het algoritme kan gemakkelijk aangepast worden, zodat er slechts één vertakking in elke knoop is. Daarna wordt de tak geroteerd over een hoek phyllo_ang[o]. Tenslotte zet de tak zijn weg voort door het symbool A(o,s+int_len(o,rel)). Merk op dat de tak nu int_len(o,rel) korter is. De tweede productie wordt uitgevoerd als een tak zijn maximum lengte bereikt heeft. Er wordt dan een blad gegenereerd. Als de takken van de eerste orde horizontaal genoeg lopen, dan wordt het silhouet van de plant gegeven door de functie branch_len(o,rel), de hoogte van de boom is max_len[0] en de breedte van de boom wordt max_len[1]. Het is dus mogelijk om een plant in een gegeven silhouet te passen, door de functie branch_len(o,rel) zo te kiezen dat de vertakkingen van de eerste orde in het silhouet passen.
61
Hoofdstuk 5: Low-level model
Figuur 21: Planten gepast in hun silhouet curve
5.4 Instancing Omdat een geometrische omschrijving van een plant erg groot kan zijn. En omdat er vele planten gerenderd moeten worden, is het niet aangewezen om voor elke individuele plant een geometrische beschrijving te maken. Een oplossing voor dit probleem is ‘instancing’. Hierbij wordt er voor elke plantensoort slechts enkele beschrijvingen gemaakt. We hebben, bijvoorbeeld een beschrijving voor een jonge plant, een volwassen plant en enkele tussenliggende stadia. Als we nu een plant moeten renderen, dan kiezen we de beschrijving die het dichts bij deze plant ligt. Hiervoor is er een mapping-algoritme nodig dat een plant op de juiste beschrijving mapt. 62
6 Conclusies In deze thesis hebben we enkele ecologische fenomenen die zich voordoen in een ecosysteem van planten bestudeerd. Hoewel deze fenomenen in de werkelijkheid zeer complex kunnen zijn, zijn we er toch in geslaagd om een abstractie te maken en de fenomenen te simuleren. In een high-level niveau maakten we een abstractie van de planten en het terrein. Planten stelden we voor door cirkels waarbij de straal rechtsevenredig was met de grootte van de plant. Het terrein stelden we voor door een vlak dat opgedeeld is in cellen. Elke cel had een bepaalde hoeveelheid water en een bepaalde hoeveelheid voedingsstoffen. We hebben voor de fenomenen die we besproken hadden een algoritme voorgesteld dat gebruik maakte van onze abstractie. Deze algoritmes maakten gebruik van het local-to-global principe. De verdeling van de planten in het ecosysteem werd bepaald door de locale interacties van planten onderling. In deze thesis hadden we echter niet alleen interacties tussen de planten onderling. We hielden ook rekening met de interacties tussen planten en dieren, alsook met de interacties tussen de planten en de omgeving. De output van het high-level model werd dan de input voor het low-level model. Vermits we de globale eigenschappen van de individuele planten hadden, kozen we voor een global-tolocal model om de individuele geometrie van de planten te bepalen. Dit model maakte gebruikt van L-systemen. Er werd een uitleg gegeven over de verschillende uitbreidingen op L-systemen, die nodig waren om ons low-level model te implementeren. Het L-systeem dat we voorstelden, zorgde ervoor dat de plant de vorm van een gegeven silhouet aannam. Hiervoor werd er gebruik gemaakt van een techniek die ‘branch-mapping’ heet. We maakten gebruik van ‘instancing’ om het geheel te renderen. Hierbij werd er voor elke plantensoort de geometrie van enkele fases in de groei van de plant vastgelegd. Als een plant werd, dan werd één van de fases gekozen om de plant voor te stellen. Om het terrein te renderen, maakten we gebruik van ‘height-mapping’. De hoogte van het terrein werd uit een grijswaarde beeld gehaald.
63
7 Bibliografie
[AW80]
D. P. Aikman, A. B. Watkinson. A model for growth and self-thinning in evenaged monocultures of plants. Annals of Botany, pagina’s 419-427, 1980.
[Blo85]
J. Bloomenthal. Modeling the Mighty Maple. New York Institute of Technology, Old Westbury, New York, 1985.
[BNI83]
T. E. Burk, N. D. Nelson en J. G. Isebrands. Crown Architecture of Shortrotation, Intensively Cultured Populus. III. A Model of First-order Branch Architecture. Canadian Journal of Forestry Research, 13:1107-1116, 1983.
[DHLMPP98] Olivier Deussen, Pat Hanrahan, Bernd Lintermann, Rodomir Mëch, Matt Pharr, Przemyslaw Prusinkiewicz. Realistic modelling and rendering of plant ecosystems. Department of Computer Science, University of Calgary, Alberta, Canada, 1998. [DLDB97]
D.H. Deutschman, S.A. Levin, C. Devine, L. A. Buttel. Scaling from trees to forests: Analysis of a complex simulation model. Science, 277, 1997.
[EN01]
Brian J. Enquist, Karl J. Niklas. Invariant scaling relations across treedominated communities. Nature, pagina’s 655-660, 2001.
[FW85]
F. G. Firbank, A. R. Watkinson. A model of interference within plant monocultures. Journal of theoretical biology, pagina’s 291-311, 1985.
[GF]
Folke Günter en Carl Folke. Nested living systems. Journal of Biological Systems, pagina’s 257-274.
[Han92]
J.S. Hanan. Parametric L-systems and their application to the modelling and visualization of plants.
64
[Har77]
John L. Harper. Population biology of plants. Academic press, 1977.
[Hop54]
Brian Hopkins. A new method for determining the type of distribution of plant individuals. Annals of Botany, pagina’s 213-226, 1954.
[HM95]
Andrew J. Hanson, Hui Ma. Parallel Transport Approach to Curve Framing. Department of Computer Science, Indiana University, Bloomington, 1995.
[Jac96]
Christian Jacob. Evolution programs evolved. Springer-Verlag, Berlin, Germany, pagina’s 42-51.
[Lan02]
Brendan Lane. Models of plant communities for image synthesis. Department of computer science, Calgary, Alberta, June 2002.
[Lin68]
Aristid Lindenmayer. Mathematical models for cellular interaction in development. Journal of theoretical biology, pagina’s 280-315, 1968.
[LK87]
Jan Leps, Pavel Kindlmann. Models of the development of spatial pattern of an even-aged plant population over time. Ecological modelling, pagina’s 45-57, 1987.
[MP96]
Rodomir Mëch and Przemyslaw Prusinkiewicz. Visual models of plants interacting with their environment. SIGGRAPH 1996, pagina’s 397-410.
[MWW01]
G. Marshall, T. Watt en J. Welsh. Automated generation and realtime display of forested virtual environments. University of Cape Town, 2001.
[Och98]
Gabriela Ochoa. On genetic algorithms and Lindenmayer systems. School of cognitive and computing sciences, the university of Sussex, Falmer, Brighton, 1998.
[Per94]
David A. Perry. Forest Ecosystems. The Johns Hopkins university press, 1994.
65
[PK]
Lael Parrott, Robert Kok. Use of an object-based model to represent complex features of ecosystems. Department of agricultural and biosystems engineering, McGill university, Montreal, Canada.
[PMKL01]
Przemyslaw Prusinkiewicz, Lars Mündermann, Radoslaw Karwowski, Brendan Lane. The use of positional information in the modeling of plants. ACM SIGGRAPH 2001, pagina’s 289-300.
[PS85]
Stephen W. Pacala, John A. Silander. Neighborhood models of plant population dynamics: I. Single-species models of annuals. The American naturalist, pagina’s 385-322, 1985.
[RB85]
W. T. Reeves en R. Blau. Approximate and Probabilistic Algorithms for Shading and Rendering Structured Particle Systems. Proceedings of SIGGGRAPH 85, in Computer Graphics, 19, 3, July 1985, pagina’s 313-322.
[RP84]
W. R. Remphrey en G. R. Powell. Crown Architecture of Larix laricina Saplings: Quantitative Analysis and Modelling of (nonsylleptic) Order 1 Branching in Relation to Development of the Main Stem. Canadian Journal of Botany, 62(9):1904-1915, 1984.
[TYW]
Tomomi Takashina, Kenji Yoriki, Shigeyoshi Watanabe. Strategical diversity and self adaptive behaviour in quasi-ecosystem. Department of communications and systems engineering, university of electrocommunications, Tokyo, Japan.
[WP95]
J. Weber en J. Penn. Creation and Rendering of Realistic Trees. Procedings of SIGGRAPH 95, Annual Conference Series, August, 1995, pagina’s 119-128.
[YKOH63]
K. Yoda, T. Kira, H. Ogawa, K. Huzomi. Self-thinning in overcrowded pure stands under cultivated and natural conditions. Journal of Biology, Osaka City university, pagina’s 107-129, 1963.
66
67