![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi,
I'm pretty new to POV (Well, I did mess some with it about 5 years ago (You
know the standard RSOCP's and so on =))) and a first time poster on the
forums, and have been playing around with POV a month or so and love it.
I got so impressed with Norbert Kern's Vegetation Simulation WIP's so I
thought I had to have a go at it (as I a long time have had a plan to make
some artificial life simulator with a (simple) ecosystem and this was a
first simple step in that direction). So this Sunday i sat down and wrote a
simple program in C++ that does a simulation with 8 species with different
water requirements, growth rates, maximum size and so on. And then added a
export capability that wrote a povray include file with the plants as
objects with size and position and a randomized rotation (to get some
variation within a species as i use the same mesh for all the plants within
a species).
Yesterday night I sat down a hour or so and made these extremly simple
plants only using Gilles Tran's lovely Makegrass macro, and a shrub/tree
just exported from Arbaro, and then let my computer chew on it overnight.
This is the result of this, and I'm pretty pleased with the result, although
it would be nicer if I had more variation on the plants, but this will come
with time.
I will, if I have the time, make the software more user friendly (as it is
now one has to change the source code to change anyting in the program),
and more advanced. And if there is an intrest make it available as a open
source program if it gets good enough and there is a intrest, but no
promises that it will ever get to that point =)...
Some facts about the image:
The simulation in my program took about 1 minute which created 4342 plants,
the parsing time was 16 sec and it rendered in 1h 21m, peak memory used
236MB.. The computer is a Athlon XP 2500+ with 512MB memory..
In the image you can se the species differentiated by colour and height (the
blueish green high plants are water loving, and the darker green really
short
tufts are dry loving, the other species are in between these in size and
colour (and in preference for soil conditions). The surface is just a simple
cosine function in the z direction and the wetness depends on the height of
the surface (low -> wet, high -> dry).
And I would like to thank Norbert Kern for giving a pointer in the right
direction with the link to the article in his post, and his incredible and
inspiring images. And of course all other here in the forums, I hope I can
become just half as good as some of you guys =)..
All c&c is welcome, and tips on improving the image, hope you like it...
/Jani
Post a reply to this message
Attachments:
Download 'vegetationtest.jpg' (496 KB)
Preview of image 'vegetationtest.jpg'
![vegetationtest.jpg](/povray.binaries.images/attachment/%3Cweb.44c738ba5178888afbb4eed00%40news.povray.org%3E/vegetationtest.jpg?ttop=443866&toff=4300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
That's really impressive. The grass looks perfect, and the weird tree-like
growths look like some kind of crazy bonsai. I love it!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I'm glad that somebody is so interested in vegetation simulation to program
it.
Especially interesting is the short calculation time.
How many iterations you have used?
At which order your calculation time increases with growing plant count?
Norbert Kern
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warning, A long boring post. Viewer Discretion Advised. ;)
"Norbert Kern" <nor### [at] t-online de> wrote:
> How many iterations you have used?
In that image i think it was around 600 iterations.
> At which order your calculation time increases with growing plant count?
The scaling of the program is quite horrible as I have done very little to
optimize it yet. But the order is about N^2.4, and at N=10 000 plants on my
computer i get about 1 IPS (Iteration per second), and at N=50 000 it's
around 1 minute for each iteration. I think it can pretty easily be lowered
In my current code the plants growt rate is really slow (about 0.01 units
per iteration) therefore the large number of iterations. I count as 1
iteration is approx 1-3 days irl, and all plants grow from a small seedling
(0.1 units) at a randomized point in a totally clear field that measures
100x100units and the largest plants can attain a radius of influence of
25units, i.e. approx 2500 iterations in optimum conditions. So if one has
20 000 plants it takes 5h to get to that point. But the grasses are mature
at about 100 iterations and die at a age of about 300-600. What growth
rates are you using on your plants?
At this point I'm trying to implement some code to import a heightfield for
the surface and maps for wetness and so forth.
A little screenshot of how the program looks at this point with N=10000,
noting to write home about but one can see that the differentiation between
the species is pretty strong already at 84 iterations so the competition is
stiff between the plants, and the trees are still tiny at this point (they
are the pure green spheres). The numbers in the parenthesis is just the
number of each species and inside the () is the number of mature plants
(will later on be used to calculate the number of seeds that germinate each
iteration).
I'll try to get a new render chewing tonight with more plants, and a more
interesting terrain, and try to post it tomorrow morning.
/Jani
Post a reply to this message
Attachments:
Download 'screenshot.png' (56 KB)
Preview of image 'screenshot.png'
![screenshot.png](/povray.binaries.images/attachment/%3Cweb.44c8d165b456ad5afbb4eed00%40news.povray.org%3E/screenshot.png?ttop=443866&toff=4300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"curtmack" <cur### [at] excite com> wrote:
> That's really impressive. The grass looks perfect, and the weird tree-like
> growths look like some kind of crazy bonsai. I love it!
Thank you very much. =)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Care to share how you calculated the distance between plants? I started
scribbling psudeocode to do something like this, but I couldn't find a
fast way to get the surface distance separating two plants. On a surface
with a large pit or canyon, plants on either side would have little
reason to compete, but a narrow canyon might leave them close enough by
straight lines to influence the calculation.
Your picture looks pretty sparse, but with the taller dry looking plant
it does look like something to be seen near a desert oasis or along a
hot beach. A lighter texture on the ground surface might help carry that
idea further.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
benighted wrote:
> Hi,
>
> I'm pretty new to POV (Well, I did mess some with it about 5 years ago (You
> know the standard RSOCP's and so on =))) and a first time poster on the
> forums, and have been playing around with POV a month or so and love it.
>
> I got so impressed with Norbert Kern's Vegetation Simulation WIP's so I
> thought I had to have a go at it (as I a long time have had a plan to make
> some artificial life simulator with a (simple) ecosystem and this was a
> first simple step in that direction). So this Sunday i sat down and wrote a
> simple program in C++ that does a simulation with 8 species with different
> water requirements, growth rates, maximum size and so on. And then added a
> export capability that wrote a povray include file with the plants as
> objects with size and position and a randomized rotation (to get some
> variation within a species as i use the same mesh for all the plants within
> a species).
>
> Yesterday night I sat down a hour or so and made these extremly simple
> plants only using Gilles Tran's lovely Makegrass macro, and a shrub/tree
> just exported from Arbaro, and then let my computer chew on it overnight.
> This is the result of this, and I'm pretty pleased with the result, although
> it would be nicer if I had more variation on the plants, but this will come
> with time.
>
> I will, if I have the time, make the software more user friendly (as it is
> now one has to change the source code to change anyting in the program),
> and more advanced. And if there is an intrest make it available as a open
> source program if it gets good enough and there is a intrest, but no
> promises that it will ever get to that point =)...
>
>
> Some facts about the image:
> The simulation in my program took about 1 minute which created 4342 plants,
> the parsing time was 16 sec and it rendered in 1h 21m, peak memory used
> 236MB.. The computer is a Athlon XP 2500+ with 512MB memory..
>
> In the image you can se the species differentiated by colour and height (the
> blueish green high plants are water loving, and the darker green really
> short
> tufts are dry loving, the other species are in between these in size and
> colour (and in preference for soil conditions). The surface is just a simple
> cosine function in the z direction and the wetness depends on the height of
> the surface (low -> wet, high -> dry).
>
> And I would like to thank Norbert Kern for giving a pointer in the right
> direction with the link to the article in his post, and his incredible and
> inspiring images. And of course all other here in the forums, I hope I can
> become just half as good as some of you guys =)..
>
> All c&c is welcome, and tips on improving the image, hope you like it...
>
> /Jani
>
>
> ------------------------------------------------------------------------
>
I've been working on a large project for some time that I need
vegetation for, Trees, shrubs, that sort of thing. The problem I'm
having is that I need at least five fair-sized trees around a central
structure, but I'm having problems creating a tree large enough that
doesn't interfere with the surroundings.
I was thinking that an elegant solution might be to create a
generator macro that would do collision detection and deflection
calculations given a starting point, tree type or set of parameters, and
age. I am, however, nowhere near skilled enough to manage such a thing
at this time.
Would it be possible to write a macro that could do this?
Otherwise, any suggestions would be appreciated.
Regards,
ADB
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nice!
out of interest, which tools are you using to visualise your sim in this
screenshot?
jus OGL? or ..
benpee
benighted wrote:
>A little screenshot of how the program looks at this point with N=10000,
>
...
>/Jani
>
>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Just a quick update.
I've rendered a new pic this night, using a terrain made in Wilbur, and
imported to my software as a TGA heightfield.
The iteration time was 8m 16sec for 109 steps. Used 16 000 plants (no
trees/shrubs this time). Parse time in POV was 4 sec and rendertime was 3h
16m.
The area of the mesh is 100x100m with a vertical scale of 10m between the
highest and lowest point, the largest plants are 2m tall. (or replace m
with your unit of choice =), i just use it in my thinking).
I'm not totally satisfied with the image but it's a pretty good impression
of "Grassy sanddunes" on a hot beach or some dry streambed in a dry place.
Now i just have to model some plants and make a bit "lusher" and more
colourful vistas, although I do like the deserts to =).. I'm still just
drooling over Norberts images, and of course congrats to Norbert for
winning the IRTC stills round, just lovely image :).
I'll be back later to answer the questions.
/Jani
Post a reply to this message
Attachments:
Download 'vegetationtest-2.jpg' (478 KB)
Preview of image 'vegetationtest-2.jpg'
![vegetationtest-2.jpg](/povray.binaries.images/attachment/%3Cweb.44c9aaa8b456ad5afbb4eed00%40news.povray.org%3E/vegetationtest-2.jpg?ttop=443866&toff=4300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Well, I thought I'll post a screenshot from my software to for the image
above to see the way it looks in simulation, the thing you probably notice
is that the plant distribution in the middle regions is a bit sparse. So I
guess I have to tweak the plants preferences some to get a more uniform
distribution.
I can tell you that the view in the render is from the lower right corner,
and that the view is mirrored in the render as oposed to the screenshot.
Just to mess with your brains ;)
/J
Post a reply to this message
Attachments:
Download 'screenshot2.png' (81 KB)
Preview of image 'screenshot2.png'
![screenshot2.png](/povray.binaries.images/attachment/%3Cweb.44c9adeeb456ad5afbb4eed00%40news.povray.org%3E/screenshot2.png?ttop=443866&toff=4300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |