Outerra forum

Outerra Engine => Development screen shots and videos => Topic started by: angrypig on January 13, 2011, 04:53:09 pm

Title: Tree generator preview
Post by: angrypig on January 13, 2011, 04:53:09 pm
Here are some preliminary screenshots from the new procedural tree generator. The algorithm is based on strands model; there are 20 parameters per branch level that drive the process with a few additional global ones. The tree on the screenshot uses 5 branch levels so it may look as a lot, but the parameters are rather intuitive.

This is a high poly model with 15,000 leaves and 15,000 branches (220,000 faces total), that will be used to generate lower levels of detail.

Currently it uses only a basic shader.


(http://outerra.com/shots/screen_1294867084.jpg) (http://outerra.com/shots/screen_1294867084.jpg)
(http://outerra.com/shots/screen_1294952797.jpg) (http://outerra.com/shots/screen_1294952797.jpg)
(http://outerra.com/shots/screen_1294952928.jpg) (http://outerra.com/shots/screen_1294952928.jpg)


Rendering is very effective so this detail will be available in close views.

(http://outerra.com/shots/screen_1294954863.jpg) (http://outerra.com/shots/screen_1294954863.jpg)
Title: Tree generator preview
Post by: u3z05en on January 13, 2011, 05:09:40 pm
Amazing! Beautiful work!  :)
Title: Tree generator preview
Post by: RaikoRaufoss on January 13, 2011, 06:05:53 pm
Very nice work, finally something I feel I can post about. :D
Title: Tree generator preview
Post by: flightmaster on January 13, 2011, 07:32:50 pm
O_O O_O O_O
I don't know what to say....
oh yeah... are you going to add a function to smooth out the points at which branches sprout?
But.... just.... O_O wow....
Title: Tree generator preview
Post by: Jagerbomber on January 13, 2011, 08:04:05 pm
I CALL BEING FIRST TO CLIMB IT!  :cool:  :lol:
Title: Tree generator preview
Post by: C. Shawn Smith on January 13, 2011, 09:01:24 pm
Nice work.  I'd like to see the real-time framerates with a number of trees in the scene.  Are you guys still consistently getting 30 fps?  Or is it still too early?

Can't wait to see the tree generator screens :) *hint*
Title: Tree generator preview
Post by: ZeosPantera on January 14, 2011, 12:15:34 am
I think the first word that came to mind was **** but stupendous will have to suffice. Imagine a world the size of a world where no two trees are alike.
Title: Tree generator preview
Post by: Abc94 on January 14, 2011, 01:22:38 am
Wow!  Procedural trees look great, especially the leaves!  Looks even more amazing close up!

Quote from: angrypig
will be used to generate lower levels of detail.

So trees won't look this good close up?  220 000 faces is a ton for one object I guess.

BTW do you think you could post a video of walking around the tree(s)?
Title: Tree generator preview
Post by: ZeosPantera on January 14, 2011, 03:42:35 am
Quote from: Abc94
So trees won't look this good close up?

Quote from: angrypig
Rendering is very effective so this detail will be available in close views.

I kind of want to see that redwood forest I have been thinking about.

Also I was confused initially when I was on the OT forums and a non-pine tree was shown in a picture. Thank you for not having it generate a pine tree.

I also assume the leaves can have their color and density vary to simulate the change of the fall and bare branches of winter.
I ALSO assume since its generated there could be some sort of growth?

I smell a very cool time lapse of the life and birth of a forest complete with snow for the winter and a very fast day night cycle.
Title: Tree generator preview
Post by: angrypig on January 14, 2011, 04:23:15 am
Quote from: Abc94
trees won't look this good close up?  220 000 faces is a ton for one object I guess.
...will be available...
you shouldn't care about number of faces, that is our work :D

Quote from: Abc94
BTW do you think you could post a video of walking around the tree(s)?
Such a video is planned when i finish the LOD system. You will have to wait for it a few days. :)
Title: Tree generator preview
Post by: Michal on January 14, 2011, 09:48:01 am
Cool! Since you've modeled each leaf separately, you can do your fractal magic and make autumn-colors version? Or slightly alter leaf colors like those pine trees? Or maybe even simulate shadowing and darken leaves inside?
Title: Tree generator preview
Post by: sniperwolfpk5 on January 14, 2011, 11:46:10 am
Tell me what to say about this  :o
Title: Tree generator preview
Post by: Edding3000 on January 14, 2011, 12:22:20 pm
great work. would really like to see this in a video in a forest area!!

Edit/
How about movement of wind?

And what about other ground features? bushes grass and rocks? Also experimenting with this?
Title: Tree generator preview
Post by: corona on January 14, 2011, 12:57:50 pm
Wow, I haven't check the forum for a while (yeah, lame I know), but seriuosly this is awesome! Just please make sure this stuff scales nicely, no use having these ultra high detailed trees for situation where you need to have thousands on screen :-)

Damn I need to upgrade my PC when the Demo is out....oh well.
Title: Tree generator preview
Post by: Abc94 on January 14, 2011, 01:56:10 pm
Quote from: angrypig
Rendering is very effective so this detail will be available in close views.

Oh yeah, missed that.   :rolleyes:

Well I look forward to seeing a world full of procedural trees!   :D
Title: Tree generator preview
Post by: grabacr 31770 on January 14, 2011, 02:31:09 pm
Wow. That detail is amazing- if these are successfully integrated in a good LOD it will be stunning.

This project gets better and better. Will it be easy to apply this concept to all tree types, e.g the standard 2D trees being used now and more?
Title: Tree generator preview
Post by: angrypig on January 14, 2011, 04:14:54 pm
Quote from: Edding3000
How about movement of wind?
And what about other ground features? bushes grass and rocks? Also experimenting with this?

The wind will come later it is not priority now, this is just a generator tool build directly to engine. This generator can be used for bushes too, we will show some examples later when we finish tree rendering pipeline. The grass rendering needs a different approach and rocks is question for cameni. :)
Title: Tree generator preview
Post by: angrypig on January 14, 2011, 04:43:14 pm
Quote from: _michal
Cool! Since you've modeled each leaf separately, you can do your fractal magic and make autumn-colors version? Or slightly alter leaf colors like those pine trees? Or maybe even simulate shadowing and darken leaves inside?

We plan to develop procedural material system for leaves and bark that will be able to add irregularities and other effects like moss and etc. and a slight color toning to make leaves more unique.

Current implementation doesn't have shadows because I want to use lower LODs for shadow casting. Ambient occlusion is missing too there is only a darkening on branches that depends on density. Ambient occlusion is very important  for visual quality but currently there are more important parts that have to be finished first. I hope I will find some time for it soon.
Title: Tree generator preview
Post by: Michal on January 14, 2011, 04:56:03 pm
Thanks for answer. Looking forward to next updates. It's going to be really impressive system.
Title: Tree generator preview
Post by: OGREMAN on January 14, 2011, 05:06:51 pm
Fantastic... that is absolutely Brilliant AngryPig love it.... I know its not a finished version yet but even so its a great structure, classic deciduous tree model .... I suppose that the only non eye candy element comes from the absence of collars where the lower (thick) branches join, its these collars that blend the contours of one branch into another, just great tree form though .... I think that this model (5 branching points) would be capable of accurately replicating the characteristics of a wide range of tree species if you could easily selectively alter some of the parameters.
For example.... the model in the screenshots is a dead ringer for the ACER genus, but if you could have the angle of branching decreased to 10-30deg from the vertical and add approx 40-50% to branch length then (with the correct leaf shape) you have a "BETULA genus" or silver birch which is very common and would be perfect to compliment the lower slopes of the existing Outerra conifers.
Keep it going, sooo coool.
Title: Tree generator preview
Post by: Matt6767 on January 14, 2011, 05:52:42 pm
Quote from: angrypig
Quote from: Edding3000
How about movement of wind?
And what about other ground features? bushes grass and rocks? Also experimenting with this?

The wind will come later it is not priority now, this is just a generator tool build directly to engine. This generator can be used for bushes too, we will show some examples later when we finish tree rendering pipeline. The grass rendering needs a different approach and rocks is question for cameni. :)
I look forward to seeing what the grass will look like.
Title: Tree generator preview
Post by: Jagerbomber on January 14, 2011, 06:43:32 pm
My computer is scared of grass...
Title: Tree generator preview
Post by: ZeosPantera on January 14, 2011, 10:23:49 pm
Quote from: OGREMAN
Fantastic... that is absolutely Brilliant AngryPig love it.... I know its not a finished version yet but even so its a great structure, classic deciduous tree model .... I suppose that the only non eye candy element comes from the absence of collars where the lower (thick) branches join, its these collars that blend the contours of one branch into another, just great tree form though .... I think that this model (5 branching points) would be capable of accurately replicating the characteristics of a wide range of tree species if you could easily selectively alter some of the parameters.
For example.... the model in the screenshots is a dead ringer for the ACER genus, but if you could have the angle of branching decreased to 10-30deg from the vertical and add approx 40-50% to branch length then (with the correct leaf shape) you have a "BETULA genus" or silver birch which is very common and would be perfect to compliment the lower slopes of the existing Outerra conifers.
Keep it going, sooo coool.

I know someone that must get excited come Arbor Day!
Title: Tree generator preview
Post by: Vicious713 on January 19, 2011, 04:38:30 am
220K faces? Isn't that more polygons than Nathan Drake? *googles*

... ack, Nathan, one of the most detailed characters in games atm, is boasting only 37K polies.
 Lightning from FF13 is just about 30K.. Gears of wars characters are int he 20's..
Meanwhile, i think GT5 boasts 200K polies per car, and in Forza3, some cars hit 1 Million polies when in photomode, so i guess if systems from 2005 can handle that, then this tree shouldn't be a problem. But i'd like to mention that in GT5 you can have up to 16 cars on a track, and on Forza3 you can only have 8.

I guess i'm saying these trees are incredibly complex, i'm sure the engine can render them with the awesomeness that is Outerra's LOD, but how will something so abstract look from a distance?

Quote from: angrypig
We plan to develop procedural material system for leaves and bark that will be able to add irregularities and other effects like moss and etc. and a slight color toning to make leaves more unique.

Does this mean we can get multicolored trees? =D
(http://theskateboardmag.com/content/blogs/rodent/fall-trees.jpg)
Title: Tree generator preview
Post by: RaikoRaufoss on January 19, 2011, 10:55:00 am
Yes, please give us multicolored trees!  They'll give us a fresh splash of color. :P
Title: Tree generator preview
Post by: ZeosPantera on January 19, 2011, 02:16:23 pm
the trees in OT are set currently to vary slightly in both color and size. Its just using one model.
Title: Tree generator preview
Post by: necro on January 20, 2011, 02:14:34 am
Mhh is it right that i cannot see any specularity on the leafs?

Unfortunately the branches are too linear, because of its procedural nature. But i know that there is no other chance for that without using 2*pow(10,10) unique treemodels, or increasing the level of iteration  ;)
Will you calculate each tree on the gpu? (the rendering of course, but i meant the calculationpart of each branch). I would guess that you are using recursive algorithms for that - i would. But as i know GPU-shader doesnt support recursive algorithms. So please tell me something about the techniques which you used.
Title: Tree generator preview
Post by: cameni on January 20, 2011, 02:36:46 am
Angrypig wrote that the shaders are just simple ones at the moment, so no specular.
The linearity of the branches comes from rendering simplification, it's not a shortcoming of procedural system. Slightly curved branches would require more polygons.

The calculation algorithm doesn't have to be recursive, in fact recursive algorithms wouldn't be optimal even if they were possible on GPU. You could run the algorithm on separate branch levels, so that the currently computed level becomes the source of data for the next one.

Not that we are computing the tree model on the GPU :)
That would be too much hassle for practically no gain. Only the resulting tree data are uploaded to GPU to be rendered.
Title: Tree generator preview
Post by: necro on January 20, 2011, 02:56:58 am
Thanks for the explanation.
I meant with shortcoming of procedural system, that a deeper iteration-level would result in more polygons - sorry for my bad expressions.


Btw. out of topic: It would be great if you would document your shader-work more. I'm very interested in this topic. And yeah i know - this would be very time-impressive so its just a please.
Title: Tree generator preview
Post by: angrypig on January 31, 2011, 11:37:37 am
LOD testing on branches...

-there is 400 trees in view
-24 automatically generated LODs per tree
-LOD0 has 15000 branches and LOD23 has 100 branches.

(http://outerra.com/shots/screen_1296490504.jpg) (http://outerra.com/shots/screen_1296490504.jpg)
Title: Tree generator preview
Post by: Edding3000 on January 31, 2011, 12:48:08 pm
looking good! cant wait for the tree's to be implemented, with different colours and sizes!
Would love to see a video starring the new tree's
Title: Tree generator preview
Post by: ZeosPantera on January 31, 2011, 02:36:41 pm
Quote from: angrypig
LOD testing on branches...

-there is 400 trees in view
-24 automatically generated LODs per tree
-LOD0 has 15000 branches and LOD23 has 100 branches.

The lack of shadow was throwing me off. Will the LOD go higher then 23?

Can you force a screenshot from the other end with the lod23?
Title: Tree generator preview
Post by: angrypig on January 31, 2011, 03:13:24 pm
Quote from: ZeosPantera
The lack of shadow was throwing me off. Will the LOD go higher then 23?
There are missing not only shadows but also ambient occlusion on ground. That is why i called it LOD testing... :)
I don't see reason why use more than 16 LODs there. There will be two additional LOD stages one for billboard and another one for very distant trees which will be projected to terrain mesh. These LODs are only for branch geometry, leaves will have another count because they are rendered differently.

Quote from: ZeosPantera
Can you force a screenshot from the other end with the lod23?
Not now because I already started to optimize leaves rendering so I don't have working version now.
Title: Tree generator preview
Post by: necro on January 31, 2011, 03:37:07 pm
do you use a hemispherical approach for ambient occlusion?
and i like the results... who did not >_>? I guess the problems are the leaves. The old (actual) ones were looking too flat and not naturally.
Title: Tree generator preview
Post by: OGREMAN on February 01, 2011, 08:04:46 pm
Ooooh  What Realy strikes me down with Awe! is that the thing is so convincing that a bird has built its nest in the bole of the tree (Bottom Right of picture) "All Hail Angrypig" Ooooh
Quote from: angrypig
LOD testing on branches...

-there is 400 trees in view
-24 automatically generated LODs per tree
-LOD0 has 15000 branches and LOD23 has 100 branches.

(http://outerra.com/shots/screen_1296490504.jpg) (http://outerra.com/shots/screen_1296490504.jpg)
Title: Tree generator preview
Post by: MatthewS on February 03, 2011, 04:51:19 am
`Twas brillig, and the slithy toves
  Did gyre and gimble in the wabe:
All mimsy were the borogoves,
  And the mome raths outgrabe.

"Beware the Jabberwock, my son!
  The jaws that bite, the claws that catch!
Beware the Jubjub bird, and shun
  The frumious Bandersnatch!"

He took his vorpal sword in hand:
  Long time the manxome foe he sought --
So rested he by the Tumtum tree,
  And stood awhile in thought.

And, as in uffish thought he stood,
  The Jabberwock, with eyes of flame,
Came whiffling through the tulgey wood,
  And burbled as it came!

One, two! One, two! And through and through
  The vorpal blade went snicker-snack!
He left it dead, and with its head
  He went galumphing back.

"And, has thou slain the Jabberwock?
  Come to my arms, my beamish boy!
O frabjous day! Callooh! Callay!'
  He chortled in his joy.

`Twas brillig, and the slithy toves
  Did gyre and gimble in the wabe;
All mimsy were the borogoves,
  And the mome raths outgrabe.


Lewis Carroll
Title: Tree generator preview
Post by: cameni on February 03, 2011, 04:56:45 am
His was a jabberwockized version of Jabberwocky :D
Title: Tree generator preview
Post by: angrypig on February 03, 2011, 05:44:52 am
Hmm too dense. I will have to create another tree because this one was made for meadows.
This one is too wide and too low and is overlapping with neighbor trees. In final version there will be differently shaped trees of same kind for deep forest, for a forest border, and for standalone trees on meadows.

(http://outerra.com/shots/screen_1296727758.jpg) (http://outerra.com/shots/screen_1296727758.jpg)(http://outerra.com/shots/screen_1296728046.jpg) (http://outerra.com/shots/screen_1296728046.jpg)
Title: Tree generator preview
Post by: necro on February 03, 2011, 06:47:19 am
Does it look good while standing lonely on meadows? (if you tested it yet). The perspective is too near for imagine the trees in the whole world. So i will wait with my judgement about them.
But as programmer i like your work.
Title: Tree generator preview
Post by: ZeosPantera on February 03, 2011, 03:36:14 pm
MY EYES>>> They burn.....

too green.
Title: Tree generator preview
Post by: OGREMAN on February 03, 2011, 05:14:10 pm
Quote from: cameni
His was a jabberwockized version of Jabberwocky :D

Yes it most certainly was Olly. :-)  I typed it from memory so there were a few gramatical errors, of course as the entire passage was deliberately written to be entirely nonsense (non English) it makes no difference ... MatthewS is quite right, his quote from the book/net/blogs is more likely to be a more accurate rendition.
Title: Tree generator preview
Post by: MatthewS on February 04, 2011, 03:48:47 am
Quote from: OGREMAN
Quote from: cameni
His was a jabberwockized version of Jabberwocky :D

Yes it most certainly was Olly. :-)  I typed it from memory so there were a few gramatical errors, of course as the entire passage was deliberately written to be entirely nonsense (non English) it makes no difference ... MatthewS is quite right, his quote from the book/net/blogs is more likely to be a more accurate rendition.


OMG  I didn't even realize it was your sig!  Thought you were making a comment about the screenshot.  :)  

Yes I just googled it.
Title: Re: Tree generator preview
Post by: KelvinNZ on April 10, 2012, 03:17:56 am
Hi Angrypig,

Have you made any further advancements on the procedural tree generator?

Can you also confirm if the "Blue Marble" technique or another unannounced technique will be able to plant the appropriate trees where they should be based on the worldly region they belong?
Title: Re: Tree generator preview
Post by: Nodset on April 10, 2012, 07:20:56 am
very interesting. I love the amount of detail in there, but the branch-splitting could be a bit smoother if possible. :) great work :D
Title: Re: Tree generator preview
Post by: Chaoss on April 10, 2012, 12:42:42 pm
It's looking really good so far, but the last screenshot was posted over a year ago, has any progress been made in this area?
Title: Re: Tree generator preview
Post by: cameni on April 10, 2012, 02:38:19 pm
Hi Angrypig,

Have you made any further advancements on the procedural tree generator?
You need some luck prying information from Angrypig, one of his writing periods :D

Procedural tree generator was put on hold because we focused on the release of the demo. There are several things that need to be done before the first release; the work is divided between us both. It's mainly about seamless transitions to billboard trees and fixing the lighting so that it's consistent.

Quote
Can you also confirm if the "Blue Marble" technique or another unannounced technique will be able to plant the appropriate trees where they should be based on the worldly region they belong?
Now this is mine - yes, it's the ultimate goal. We need to build a database of trees with some statistical parameters that can be used by the generator. Initially we'll throw just a few basic tree types at it, but it will be refined over time.
Title: Re: Tree generator preview
Post by: KelvinNZ on April 10, 2012, 11:19:03 pm
That's great, a scalable system. Will that mean for some reason if any tress that are not included can be added to the dataset by adding the specific tree data for the generator? and, will this be able to be carried out by 3rd parties in the future whereby data can be added to be relevant to the type of generator used? I hope this makes sense.

I always knew that masterminds of programming came from your side of the planet. Great work.
Title: Re: Tree generator preview
Post by: sailor on April 11, 2012, 01:06:15 pm
I posted these videos in another topic, but I think it deserves to be repeated here too. Please, please do something like this:
Physically Guided Animation of Trees (http://www.youtube.com/watch?v=28ZOMiPdY30#)
Physically Based Real-Time Translucency for Leaves (http://www.youtube.com/watch?v=CGqKc5UzPwE#)
The trees look like alive, amazing! :)
Title: Re: Tree generator preview
Post by: KelvinNZ on April 11, 2012, 08:49:11 pm
wow, Cameni/Angrypig, what are your thoughts on this type of procedure?
Title: Re: Tree generator preview
Post by: FMCS on April 26, 2012, 12:26:00 pm
Absolutely breath taking!!!


Frank
Title: Re: Tree generator preview
Post by: traumstrand5 on May 24, 2012, 09:15:06 am
Amazing!
Let there be trees! Now!  :D

and this one posted right here by Sailor just above looks realyl great as well indeed:

I posted these videos in another topic, but I think it deserves to be repeated here too. Please, please do something like this:
Physically Guided Animation of Trees (http://www.youtube.com/watch?v=28ZOMiPdY30#)
Physically Based Real-Time Translucency for Leaves (http://www.youtube.com/watch?v=CGqKc5UzPwE#)
The trees look like alive, amazing! :)
Title: Re: Tree generator preview
Post by: Éadríc on February 28, 2013, 09:48:33 am
I'll admit that I don't know much about procedural generation and how much processing power it winds up taking, but seeing these lovely, highly detailed trees I can't help but wonder: taking several LODs into account, won't merely a few of such trees in the foreground make any reasonably equipped PC lag terribly?

Surely vast, dense forests are taxing even if you only use the crudest models for the closest trees. And that's disregarding other engine features that are supposed to run simultaneously.

I don't mean to sound like a skeptic or a pessimist, but I'm just very curious about what we can roughly and reasonably expect. I'm ready to be blown away, though.
Title: Re: Tree generator preview
Post by: cameni on February 28, 2013, 10:11:31 am
Actually if the trees are made in a GPU-friendly way, the performance can easily surpass the expectations gained from the existing tree rendering experiences, as our tests with these trees have shown. Sure, a good LOD is essential, and that's what makes this more complex than using pre-made models: the geometry has to be generated in a suitable way (not hand modeled), and the generator should be able to produce the LODs so that switching isn't distracting.

It's technically challenging, but we believe the results will be really worth it.
Title: Re: Tree generator preview
Post by: Éadríc on February 28, 2013, 11:05:51 am
Thanks for the swift reply!

This is all very promising indeed. I hope you'll be able to integrate this and the biome data without too much difficulty. Being a child of my land, I'm looking forward to beech and oak forests especially.
Title: Re: Tree generator preview
Post by: Sergesosio on April 09, 2013, 10:51:46 am
Do procedural trees have that much more advantage over hand modeled ones, is it not faster to model a tree than to program one, especially if you want them to look realistic. Any disadvantages other than the fact you get the same tree over and over, But it wasn't noticeable in crysis, and they used hand modeled ones. Just with random rotation, scale and skins.

Besides procedural patterns start becoming noticeable in large scale to. And you don't need 15k branches for one tree to look good.
Title: Re: Tree generator preview
Post by: Chaoss on April 09, 2013, 11:09:06 am
On the subject of trees is there any progress on the 3D trees so far? It's been over 2 years since we've seen anything
Title: Re: Tree generator preview
Post by: cameni on April 10, 2013, 09:53:35 am
There was little progress on the 3D trees since before the tech demo release. It's in angrypig's queue for a long time, but there's always something else that needs to be done before it.

One of the things that I'm going to do soon as an intermediate step is rendering billboards with approximated lighting, so that the transition between 3D models and billboards is not visible. I just need some extended data to be created along with the tree billboards. Angrypig has it in his queue ...  :o :-[ ;D
Title: Re: Tree generator preview
Post by: XZS on April 10, 2013, 04:32:58 pm
Sorry for being a little bit off-topic here. Cameni, if I'm not wrong, the team behind Outerra/Anteworld
is still composed of only you and AngryPig, right ? While you mention the ever-growing queue on your todo list,
why don't you hire one other guy in your team ?

For a small compagny, I guess money could be of course an issue here.
But I'm quite sure you can delegate a part of the job to some enthusiastic volunteers and speed a little bit up the work.
Title: Re: Tree generator preview
Post by: cameni on April 10, 2013, 05:30:21 pm
It's actually very hard to find someone who can work on these things with us. A large part of the problem is the non-standard procedural architecture of the engine and the necessity to work closely together on things that need to be implemented "natively" into the engine. So for now we have to focus on the core and outsource peripheral parts instead, which is what we are attempting to do right now with external partners (things like OSM processing, character animation data etc).