Jump to content

Real Time Simulation Of A Carboniferous Forest (Wip)

Recommended Posts


living in one of the most famous coal-mining areas of the world - the Ruhrgebiet in Germany - I collected fossils as a 10-year old child. Which was very easy, because the next mining dump was only a few meters away. (There were many, many mining dumps at that time). And so of course I found a lot of fossils of the carboniferous age - lepidodendron, sigillaria trunk fragments, some leaf fossils and so on.

Now 40 years have passed since then, and the Ruhrgebiet is not what it used to be anymore. There are nearly no coal mines anymore here, and all of the mining dumps have been flattened. And unfortunately I didn't continue my hobby. But since then, I have been fascinated by the carboniferous age. And since I started my career in the gaming industry as a graphic designer (main profession) and programmer 15 years ago I have a dream: To bring the carboniferous age back to life in a realistic real time 3D simulation.

Some weeks ago I started to fulfill this dream.

By now, I have set up the game engine and worked on the material techniques. The whole thing is a real challenge, since I meet some tasks I never had before: High texture resolution (of course, when you walk through, you want to examine everything in detail), high realism, high details...

Currently, I'm working on my first tree, a lepidodendron. The work is difficult, because I haven't found good template images. Here is what I have got by now:


Please note, that the tree model is far away from being finished. The textures are still raw and will become much more detailed in the final state - especially the leaf texture is very preliminary.

Nevertheless, I think it is in a state ready enough to be criticized. Please excuse the unfinished state - but since creating 3d models is really much work, I'd like to detect mistakes before creating all details, because I want to avoid unnecessary work (I'm doing this in my spare time, which is always too less ;) )

As mentioned, it was very difficult to find good artwork as a template for creating the tree, and my knowledge of paleontology is poor. And so I'd be very happy, if I could get some feedback here.

My questions are in particular:

  • Is the overall shape, the trunk shape, the treetop shape, ... correct/reliable?
  • Is the texture scale correct? E.g. is the pattern of the bark and the root o.k, or too small/too big?
  • Is the distance between the stigmaria correct?
  • Is the texture transition between bark and root o.k.?
  • And of course everything else, which you notice

I'd be very happy about answers.

If this is interesting for you, I would keep on posting work-in-progress images in this thread, until the forest is done. How do you think about this?

Best regards


Edited by phoenix64
  • I found this Informative 2
Link to post
Share on other sites

terrific work, yes please continue, I enjoy using the unreal engine for these level creations, and will look forward to your progress :)

Link to post
Share on other sites

Thank you :)

I'm creating it using the Ogre 3D engine, since i am trained to this best currently.

Link to post
Share on other sites

Those are pretty fantastic images for just getting started. I dont have enough specific knowledge of the fine details to build a tree. I know Roman here on the forum has played around with creations like that. Might want to contact him or Bruno. Maybe Tim can also offer some stuff for you to consider. Looks like some fun stuff to be programming. Regards, Chris

Link to post
Share on other sites

I love what you are doing!

My first and only thought is that the rows of leaf scars should not be arranged in a slanting pattern that suggests a spiral, they should be in interlocked horizontal rows.

Link to post
Share on other sites

Here are a of couple links for you to take a look at that might help. Unfortunately you just dont find a complete lycopod tree with all of its parts intact. And there are a number of Lepidodendron species to add to the complexity, not to mention the bark layering variations within the specimens!

Here's a reconstruction of a forest that Dr. DiMichele at the Smithsonian was a part of that might help with the general picture of a swamp back then.


Bruno, a fellow forum member and moderator of the naturalistes forum has a ton of plant fossil examples and reconstruction info over on that site..Take a look at each page and you'll see the closeup detail of fossils of the genus Lepidodendron and lots of reconstructions that will help your cause. He's also got a wealth of info on the other major plant members of the forest in that website....days and days worth of fossil images and reconstructions. It is a treasure!


Roman, another fellow member here has another fine set of fossil examples of Lepidodendron and other species to look at as well.


Lastly, here's another set of carboniferous links to have fun with.


Hope some of this helps from a general perspective.

Good luck.

Regards, Chris

Link to post
Share on other sites

Wow! That's great feedback and fantastic resources, thank you! :) This sure will help.

I'm just continuing the work and hope I will show some progress at the end of the weekend.

Link to post
Share on other sites


This is the current state.

I have worked on the treetop and added a bunch of trees to a landscape as a test.

The treetop texture is now inspired by recent lycopodium plants and the fossil in http://steurh.home.xs4all.nl/eng/loof.html

It's still not final, but I think it's already a lot better.

I'm still not sure about the overall shape of the treetop - there are many, many illustrations of lepidodendron, and none looks like the other ;)


I thought about the spiralness.

My guideline for the bark texture was http://nottinghamscience.blogspot.de/2013/03/talk-world-in-10-fossils.html (scroll down to 5.Lepidodendron).

If the leaf scars (the small "bugs") are straightly orientated upwards, it would imo show a spiral structure on the whole bark, although lepidodendron fossils of other genus I have found in Plantguy's links dont.

Does anyone know the genus of the bark fossil in the upper link? (Anywhere I found it, it was only described as "lepidodendron", without genus). This might also be a solution for the treetop shape/texture.

A rotting tree in the background is also a test - it has not got a texture yet. In the final version, there will of course be a lot of those, waiting to become coal ;)

The "9" in the upper left is a very evil number :( It means the FPS, frames per second.

It should at least be > 60, because there are really few objects, and not much polys (in this version, a single tree has less than 5.000!)

I already found a lot of problems in my implementation (E.g. the water reflection is rendered with highest details, the shadow map is rendered twice, the trees are not instanced, the treetop is not tristripping-friendly etc.). But since a new Ogre3D version is coming soon, I'll probably wait until that. I'm not sure.

  • I found this Informative 1
Link to post
Share on other sites

Really cool reconstruction! To my eye the tree trunks should be thicker, or the trees shorter. The fossil tree reconstructions I have seen in museums seem more robust. That may be because they are limited by the height of the museum ceiling, but I am by no means an expert so take it for what its worth.

Link to post
Share on other sites

I can't help with the accuracy, though it sure looks good to me, but I just had to comment that your artwork is incredible and this is a wonderful undertaking. Thank you.

Link to post
Share on other sites

I thought about the spiralness.

My guideline for the bark texture was http://nottinghamscience.blogspot.de/2013/03/talk-world-in-10-fossils.html (scroll down to 5.Lepidodendron).

If the leaf scars (the small "bugs") are straightly orientated upwards, it would imo show a spiral structure on the whole bark, although lepidodendron fossils of other genus I have found in Plantguy's links dont....

I am pretty sure that these 'trees' would have grown from the top, in whorls (not spirals).

Link to post
Share on other sites
  • 2 weeks later...

Nice job.

Your branching appears to be a bit different than most reconstructions of lepidodendron. Most reconstructions have a Y-split of the main trunk, then further Y-splits of those and so forth. Yours appears to have side branching off a main straight trunk. Is that intentional?

Here's an older illustration that shows the repeating Y-splits to which I refer.


Edited by Stocksdale
Link to post
Share on other sites

Thank you for the image.

No, that's not really intentional - I think that my "Lepidodendrons" simply look too much like recent trees.

Your illustration is really good.

I also found some other illustrations, which back your opinion:



This looks far more realistic to me, and imo looks more, like a "giant clubmoss" would do.

I think, my rework will go in this direction.

Until now, I was struggling with engine performance and already have made some advance - updated to Ogre 1.9 and made some minor performance improvements.

Not much to show here; the number is now "14" and still way too low :-(

The performance was amongst others hit by extreme overdraw due to the treetops. Well, reworking the trees would fix this en passant ;)

Link to post
Share on other sites

I imagine this must be a daunting undertaking. Thanks for doing it and thanks for sharing your progress. :popcorn:

Link to post
Share on other sites


I think the Stocksdale's hint pointed into a good direction.

It begins to feel right now...

I made the trunks a bit thicker.

It is built up completely by Y-splits now.

The leaf is more like in other illustrations. It will become a bit more narrow though.

Lepidostrobus are still missing.

I think from this point up I can start to finalize this plant. Thank you :)

  • I found this Informative 1
Link to post
Share on other sites

I've nothing scientific to base this on, but I tend to think of a 'Coal Forest' as being dense, with a closed canopy that is interrupted only by watercourses and toppled trees.

Link to post
Share on other sites

Nice. Yes, I think the trees are looking more like the classic lepidodendron.

You might want to keep your earlier version as a basis for trees that do have a straight central trunk.

Along those lines, I found this illustration from a 1981 paper by Smithsonians' paleobotanist Bill DiMichele. The illustration shows a few different species of lepidodendrale and some of the shorter ones look like they did have more of a central trunk (at least in this illustration).


Link to post
Share on other sites

I've nothing scientific to base this on, but I tend to think of a 'Coal Forest' as being dense, with a closed canopy that is interrupted only by watercourses and toppled trees.

Good point. I imagine he may be working on just the top canopy and will be filling in other species as the project progresses.

Other species in the middle canopy (10 meters tall and under) could be the medullosa (seed ferns) and tree fern psaronius. And another common lepidodendrale that is a bit different that could be included is sigillaria.

Also, a species that has a central trunk is the early forerunner of angiosperms, cordaites. There would also be climbing fern vines and epiphytes growing on the lepidodendrons and psaronius.

ADDED NOTE: While listing these, I shouldn't forget the equisetum horsetails calamites. They were an important part of the coal forest composition.

ANOTHER ADDED NOTE: It would be really cool (but may not be possible) for the user to determine the composition of the forest by typing in the different species and percentage. Then the program generating a world based on those parameters.

Edited by Stocksdale
Link to post
Share on other sites

And the earth was without form, and void... B)

Yes, of course there will hopefully be a lot of different plants in the final simulation, including the ones you mentioned. And probably a few animals, at least a meganeura dragonfly.

In my opinion too it should be an overgrown primeval forest (The current ground is completely preliminary and will change).

But I don't know if I will be able to manage this technically.

To have detailed plants will be possible. To have many plants also. But to have many detailed plants will be difficult, when it comes to render performance, since I have performance issues already (with so few plants :( ). E.g. the water plane is a real performance killer, because everything has to be rendered twice for the reflection. (But a carboniferous forest without water is just unthinkable).

Like other game engines, Ogre offers a so called "LOD" technique, level of detail (The plants far away are less detailed than the nearer ones). I did not implement this yet, but probably will, so that more plants can be rendered. And the less detailed plants could be also used for the water plane to ease the reflection performance hit.

This all will take some time. I am currently loosely planning the final version for January, depending on my other workload.

Regarding the landscape generator: A friend of mine implemented this for a game once (The Settlers II 10th anniversary). Really cool; you just had to enter some parameters and it created a complete game level for you. But as it took him several extra weeks to create this generator, I doubt that I will implement it for this project.

Link to post
Share on other sites
  • 3 weeks later...


The lepidodendron is nearly done now.

The texture is not completely final and needs a bit more variety.

I am happy with the overall shape of the lepidodendron.

I am not very happy with the alignment of the branches - they look rather cluttered. But currently I don't know how to make it better, so for the time being I will carry on with other parts of the simulation.

At least I know a good place for my next vacation trip. Just need to find a time travel agency.

The next steps will be to make the landscape more attractive and to add some fern - both ground fern and tree fern.

Link to post
Share on other sites

Nice and interesting concept, which gives a breath of fresh air (cabonifére came from) and we exchange tiresome virtual massacres, often in settings very well made, but distorted by the violence, which invariably associated with them.
Some suggestions (my two cents).
You should try other game engine, which in my opinion will be more suitable for large areas covered with dense vegetation. I think in particular of CryENGINE, which allows realistic environments and manages well the extended liquid without killing the FPS;
In addition, there is the game engine of arma3 game, very efficient to represent a lot of vegetation over large distances, with good water management, as well (only problem, the tools provided are a disaster to install and configure).
However, it seems more appropriate than that of OGRE and the two cities, manage very well Lods. :)

From a technical point of view, I think your trunks could be reduced by polygons, more lowpoly, without altering the graphic quality and the normal map part in the relief effect to simulate the details. What would be gained in terms of polycount could be partly redistributed to give a slight bend the trunk, which seems too straight and too virtual.

For leaves and branches, the ideal would be to sculpt in the highpoly, then baking on the low poly, to recover the diffuse, the normal, specular and ambient occlusion.
But it is a lot of work, it's true.
So much for the constructive criticism and in any case, this is a beautiful project: bravo.

Edited by paolo
Link to post
Share on other sites

Thank you :)

Yes, I also find it very interesting to use 3D for something more serious than games. Not that I don't like games (of course I like it, I make my living creating games ;)), but realtime 3D has so much more to offer...

Especially when used with Oculus Rift, which I hope to support in the final version.

When starting the project, I thought about game engines and already evaluated Unity.

I came to the decision, that it would be best to develop it with Ogre. Though it might not be the most sophisticated engine, I have extremely efficient tools for it, making the development process of models and textures work like a charm. (At least for me, because I have written them ;))

So I'll make the prototype with Ogre, and when it is done, I will evaluate again. CryEngine is of course very obvious. The vast majority of the work is creating models and textures; and I don't think it will be very difficult to port it to another engine once everything is done.

Ogre itself also has a paged geometry implementation, which should allow extreme amounts of vegetation etc., so probably it won't be even necessary to switch. But I haven't checked this yet. And there are things like water and atmosphere, which really suggest to use something else.

By now, I have already made a lot of performance improvements; LOD models and batch rendering are implemented, the shadow map is reused in the mirror rendering, and objects can be excluded from the mirror rendering, which has already improved the performance a lot.

I also experimented with LOD models; the trunks are indeed high poly, but may be easily made to LODs in 3ds max without quality loss. So there is both high detail in near distance and low poly in far distance.

The treetops are much more difficult, but indeed I hope to achieve a better result with normal maps.

Nevertheless, thank you very much for your hints, and I'd be very happy if you could try it out when I release the first version (and keep on constructive criticism ;))

@Scylla: Thank you. Calamites will be the next thing after creating the fern stuff. I'm looking forward creating them; they look very characteristic and interesting. Sphenophyllium will follow later.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...