WEst
Community Member

Posts: 805
Daniel Martinek
|
 |
« on: September 24, 2007, 11:02:59 AM » |
|
I'm currently developing a nature rendering system for my own RPG, and I'm willing to give it away for free when it is completed. Its current features are: - Creation and placement of procedural trees using adjustable parameters and a seed value
- Creation and placement of meadows
- Rendering of the trees and grass
For generating the tree presets I wrote an application called FreeTree: The system uses a procedural mesh as trunk and a minimesh system for the leaves. The system uses shaders to animate grass,leaves and the tree trunk, so it will only work with shader hardware. It is coded in VB.NET 2005 and will come as a managed *.dll once finished, paired with the FreeTree Editor, a small sample project and some documentation. If anyone has a good idea about what to add to the nature system, feel free to post in here or meet me in the TV IRC Channel or on MSN/ICQ/PM.
|
|
|
|
|
Logged
|
Greetings
Daniel Martinek Lead Programmer Roaming Nova Studios
|
|
|
|
Raine
|
 |
« Reply #1 on: September 24, 2007, 11:09:17 AM » |
|
Awesome! Can't wait to try it. 
|
|
|
|
|
Logged
|
|
|
|
|
Zaknafein
|
 |
« Reply #2 on: September 24, 2007, 11:37:52 AM » |
|
Excellent stuff! Will the bundled textures be free as well?
|
|
|
|
|
Logged
|
|
|
|
GD
Customers
Community Member
    
Posts: 360
Josip Basic
|
 |
« Reply #3 on: September 24, 2007, 11:44:29 AM » |
|
Really nice idea and implementation!
|
|
|
|
|
Logged
|
|
|
|
WEst
Community Member

Posts: 805
Daniel Martinek
|
 |
« Reply #4 on: September 24, 2007, 11:47:53 AM » |
|
Excellent stuff! Will the bundled textures be free as well?
At the moment I'm using some textures from other games, for testing, but I will try to get some nice looking free textures for the release (even when I have to draw them myself  )
|
|
|
|
|
Logged
|
Greetings
Daniel Martinek Lead Programmer Roaming Nova Studios
|
|
|
|
Sarge
|
 |
« Reply #5 on: September 24, 2007, 12:05:08 PM » |
|
Amazing work, keep it up !
Sarge.
|
|
|
|
|
Logged
|
|
|
|
Zaneiel32
Community Member

Posts: 27
|
 |
« Reply #6 on: September 24, 2007, 12:41:14 PM » |
|
Great work West!, hows the FPS hold up? i notice when my scenes start geting busy with stuff i take a prety good hit on my FPS.
Can't wait to try it out.
|
|
|
|
|
Logged
|
|
|
|
|
aspurgeon
|
 |
« Reply #7 on: September 24, 2007, 02:41:56 PM » |
|
I think this is great! Can't wait to try it out!
|
|
|
|
|
Logged
|
|
|
|
Rynus_Rein
Community Member

Posts: 1010
|
 |
« Reply #8 on: September 25, 2007, 09:35:48 AM » |
|
Looks good West! I remember you talking about it a while ago (was it in the IRC channel?)
|
|
|
|
|
Logged
|
Rynus Rein Current Project: MapX Live, Society3D
|
|
|
|
bjennison
|
 |
« Reply #9 on: September 26, 2007, 04:42:09 PM » |
|
Those screenshots look awesome.
How the heck do you create thick looking "meadows" of grass without a billion mini-meshes on screen at any one time??
|
|
|
|
|
Logged
|
|
|
|
|
HumanoidTyphoon
|
 |
« Reply #10 on: September 27, 2007, 02:32:21 AM » |
|
Damn thats awesome!! Was just about to look into grass shaders specifically. You got a really nice effect there!
|
|
|
|
|
Logged
|
Ordo Ab Chao
|
|
|
WEst
Community Member

Posts: 805
Daniel Martinek
|
 |
« Reply #11 on: September 29, 2007, 02:33:18 PM » |
|
I recently worked on performance optimizing in two main regions of my library: - Generation Speed
- and Rendering Speed
I was able to cut down the generation time of a tree from 140ms to about 40ms (depending on the tree ofcourse). And I also added a new Level of Detail System to the library. Now there are 4 different representation meshes of the tree, that are rendered depending on their SortingOrder (I will explain that some time later). The first 3 representations are the normal trunk as mesh / leaves as minimesh system, with different polycounts for the trunk and the the 4th is a simple billboard that is rendered at the generation of the tree. Below you will see one new screenshot of a test scene I created for performance testing inside my editor. As you maybe see the billboards aren't perfect yet, but I'm working on it (you will not see an obvious transition between the 3 normal representations, but there is a small change with the billboard as I can't render a billboard for every camera position ). There is still a lot to do, but it is progressing very well.
|
|
|
|
|
Logged
|
Greetings
Daniel Martinek Lead Programmer Roaming Nova Studios
|
|
|
vbCrLf
Community Member

Posts: 312
|
 |
« Reply #12 on: September 30, 2007, 03:40:05 AM » |
|
Its really nice WEst! Can't wait to try it... About the grass, in the far part of the landscape there is no grass. I think its will be much better if you see a low detail level grass instead of nothing.
|
|
|
|
|
Logged
|
|
|
|
|
newborn
|
 |
« Reply #13 on: September 30, 2007, 10:01:35 AM » |
|
you will not see an obvious transition between the 3 normal representations, but there is a small change with the billboard as I can't render a billboard for every camera position
To counter this, what I did was to create billboards at runtime and update them every second. Which means: the first time the tree is rendered, a billboard is created (using render surface) and then updated every second (if the player moves around, the tree doesn't look too weird). From what I understand, you want to use pre-gen billboards. So what I would suggest you would be to create 8 billboards (camera at angle 0, 45, 90, 125...) It works, this is how most MMORPG games on the market do it for their models: trees, houses, etc. You will still see a transition between the 2D and 3D version, but at least, if you're behind your model, the 2D version rendered is not showing the front of it.
|
|
|
|
|
Logged
|
|
|
|
|
Eric
|
 |
« Reply #14 on: September 30, 2007, 10:23:12 AM » |
|
Looks awesome WEst, and sounds like you're getting a bunch of good features in there. Keep us posted on your progress
|
|
|
|
|
Logged
|
|
|
|
|
Hypnotron
|
 |
« Reply #15 on: September 30, 2007, 11:44:48 AM » |
|
To counter this, what I did was to create billboards at runtime and update them every second. Which means: the first time the tree is rendered, a billboard is created (using render surface) and then updated every second (if the player moves around, the tree doesn't look too weird).
From what I understand, you want to use pre-gen billboards. So what I would suggest you would be to create 8 billboards (camera at angle 0, 45, 90, 125...) It works, this is how most MMORPG games on the market do it for their models: trees, houses, etc. You will still see a transition between the 2D and 3D version, but at least, if you're behind your model, the 2D version rendered is not showing the front of it.
newborn has the right idea here. generate your billboards on the fly and update them at a low frequency in a round robin sort of scheduling system, but with priority to the closer ones and ones in the frustum (e.g. if its close and in frustum and its age + aspect angle has changed > epsilon, move it to the top of the list) generating billboards at runtime is easier than you think and it saves your artists allot of needless work.
|
|
|
|
|
Logged
|
|
|
|
WEst
Community Member

Posts: 805
Daniel Martinek
|
 |
« Reply #16 on: September 30, 2007, 12:20:04 PM » |
|
Yeah I think you are right with the updating, I will try that idea. It shouldn't be much of a problem because I already create the billboards at runtime, so it's only a small code change.
|
|
|
|
|
Logged
|
Greetings
Daniel Martinek Lead Programmer Roaming Nova Studios
|
|
|
WEst
Community Member

Posts: 805
Daniel Martinek
|
 |
« Reply #17 on: October 06, 2007, 07:23:53 AM » |
|
It's time for the weekly dev report  : Finally I found a bug that was bothering me the whole week and caused terrible problems with the LOD system, but now it is fixed. I also did some further performance testing, I currently tried 450 trees within an area of 256x256 meters and it runs with quite smooth 60 FPS on my PC (Athlon X2 4600+, R1800 XL) the LoD system does a good job in reducing the polycount, but I have still to work on some things with the billboard system and implement the system proposed by newborn and Hypnotron. Another thing I will do before release is to change the generation of the tree to a faster and better method (I already have some nice ideas about it), as at the moment it is possible that some branches won't be attached to the trunk in a nice way. I also added support for random coloring of the tree leaves to have a more realistic result (will be added to the grass too). Examples for the coloring can be seen in the screenshots attached to the post. Finally there is a small youTube video with poor quality that shows the tree system with 450 trees (don't mind the FPS as the video capturing is very slow): http://www.youtube.com/watch?v=IGZ77AOiD0Y
|
|
|
|
|
Logged
|
Greetings
Daniel Martinek Lead Programmer Roaming Nova Studios
|
|
|
Rynus_Rein
Community Member

Posts: 1010
|
 |
« Reply #18 on: October 06, 2007, 07:52:23 AM » |
|
Looks good! Can't wait for the release.
|
|
|
|
|
Logged
|
Rynus Rein Current Project: MapX Live, Society3D
|
|
|
|
Zaknafein
|
 |
« Reply #19 on: October 06, 2007, 11:00:01 AM » |
|
Very nice! Are there normals on the leaf billboards and the trunk? It kinda looks flat-shaded...
|
|
|
|
|
Logged
|
|
|
|
|