Planet Rendering Engine preview (released Jul/20/2009)

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
JohnJ
OGRE Expert User
OGRE Expert User
Posts: 975
Joined: Thu Aug 04, 2005 4:14 am
Location: Santa Clara, California
x 4

Post by JohnJ »

Ok, glad to hear you got it working :)
User avatar
Sovaka
Greenskin
Posts: 109
Joined: Sat Dec 20, 2008 6:26 am
Location: QLD, Australia
x 3
Contact:

Re: Planet Rendering Engine preview

Post by Sovaka »

Your engine looks amazing!
How goes the progress?
User avatar
Beauty
OGRE Community Helper
OGRE Community Helper
Posts: 767
Joined: Wed Oct 10, 2007 2:36 pm
Location: Germany
x 39
Contact:

Re: Planet Rendering Engine preview

Post by Beauty »

JohnJ wrote:Also, here's a shot demonstrating the quadtree-based LOD system:
This is a nice picture (from this post) and I added it to the wiki.
I think this is ok. If not, you can tell me and I'll remove it.
http://www.ogre3d.org/wiki/index.php/LOD
Help to add information to the wiki. Also tiny edits will let it grow ... :idea:
Add your country to your profile ... it's interesting to know from where of the world you are.
User avatar
Beauty
OGRE Community Helper
OGRE Community Helper
Posts: 767
Joined: Wed Oct 10, 2007 2:36 pm
Location: Germany
x 39
Contact:

Re: Planet Rendering Engine preview

Post by Beauty »

Is this planet rendering engine similar to a Scene Manager?
If yes, we could add it to the list of scene managers of wiki page
www.ogre3d.org/wiki/index.php/SceneManagersFAQ
Help to add information to the wiki. Also tiny edits will let it grow ... :idea:
Add your country to your profile ... it's interesting to know from where of the world you are.
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: Planet Rendering Engine preview

Post by DavlexDesign »

Love your work,
I've been toying around with another algorithm to render entire planets ..http://www.youtube.com/watch?v=I3_pb6Gq5hs

It uses a slightly modified version of the ROAM algorithm, which keeps detail up and vertex count down to a minimum,
if you look at the video, you'll see that the planet vertex count for the terrain stays under 8,000 vertecies,
the atmosphere and clouds are just big spheres, pretty lame but I'll fix that later.

There are no shaders or any special stuff yet, but I'll get to that later as well.

regards
Alex
User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany
x 1

Re: Planet Rendering Engine preview

Post by xadhoom »

Hi DavlexDesign!

This looks very promising :P. Impressive work!

I hope that future implementations can benefit from the upcoming Ogre paging system. Hopefully the different terrain paging implementations can share the same API then...

xad
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: Planet Rendering Engine preview

Post by DavlexDesign »

Hi xad,
Thanks for the feed back, What do you mean about the "new Paging system" ?
The way this engine works I can chunk down to what ever size I need, it will be perfect for any sort of new paging system,
as a matter of fact it might help it, I'm pretty new to Ogre, and any tricks/ optimizations would be welcome. :D

alex
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Planet Rendering Engine preview

Post by jacmoe »

/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: Planet Rendering Engine preview

Post by DavlexDesign »

This new Paging system sounds nice, hopefully they can get it running nice (I don't doubt it)

I was thinking of using the BatchGeometry and BatchPage classes from PagedGeometry to handle the chunk rendering and loading, do you think I might be wasting my time with this, or will this new paging system be relatively compatible with these classes ?
This picture shows the seams between chunks
This picture shows the seams between chunks
Chunkmap.gif (32.17 KiB) Viewed 8900 times
At the moment my paging system is my very own, I have no seams in my geometry (between chunks) at all, with only a minimal amount of vertex duplication, everything is kept to a minimum to keep the frame rate up above 500 fps on my home PC (2.6 ghz Intel Core 2 duo, 2 gb RAM, Nvidia 9800 GT Video, Windows XP Pro SP3). I know I can improve this when I do Page culling, because currently my paging system uses a brute force approach and traverses all of the planet map and updates everything(including vertex and index buffers) every pass, even chunks that are not in view, so the improvement could be quite substancial, this planet class is only a proof of concept version to me(far from complete), it's not even a version 1.0 yet, I'll let it out when I get it to a full point version.

Alex
User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany
x 1

Re: Planet Rendering Engine preview

Post by xadhoom »

I would not say that you are wasting your time but as far as I see the upcoming paging system has a very flexible OOP API, where you could adapt your code on if you want. As a special motivation (if you are interested) the paging system will initially be used for (2D) terrain. Maybe you could be the first with a fully working Planet implementation... :wink:

xad
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: Planet Rendering Engine preview

Post by DavlexDesign »

G'day xad,

I had a further read/study of the doc on this new paging system, it does sound quite flexible, and I think that if it follows relatively close to the charts shown, my system will easily integrate with it, I worked out today that I can cull what I'm actually sending to the video card by about 40 to 50% (with the new paging system I'm currently working on), meaning that my frame rate should improve some what, like I said before, the system at this stage sends the whole planet to the card every frame, but with my new Vertex and Index Buffer re-mapper class, I won't have to write so much old data to the card each time. That way the cpu will have more time to work on the little things that make a game a good game (GAME PLAY) something sadly lacking in allot of the new stuff.
Ground and water are paged like everything else will be.
Ground and water are paged like everything else will be.
Pageing.jpg (48.81 KiB) Viewed 8749 times
To give you an idea of scale, the ocean is around 1 km deep at the three way join in the map.
Anyway, got side tracked here ... I think that I will make this system modular enough to integrate with the new one, at the moment the paging system does the ground and the water, my plan is to have everything attached to a page will be paged along with it ( as you can see above), allot of what the doc mentioned about the new paging system I've sort of implemented, maybe not as clean or tidy but it is there already, as you can see in the background of the picture, the water and terrain are fully sent to the video card, only hardware culling is going on here, still allot of improvement to be had, but as I said ... it is still a work in progress.

Oh yeah, here's a pic with a little clearer view of the detail and structure the fractals produce, and how far you can see in the distance.
Clearer pic of the engine at work
Clearer pic of the engine at work
PlanetDetail.jpg (66.82 KiB) Viewed 8690 times
You can only get that kind of detail in the far distance with a ROAM algorithm and 8220 verticies I think, and that includes the back side of the planet also.

Alex
User avatar
Kay Trance
Halfling
Posts: 80
Joined: Wed May 20, 2009 9:01 am
x 1

Re: Planet Rendering Engine preview

Post by Kay Trance »

JohnJ, nice work, I am impressed!

Due to my experience in ogre, could you tell me some information regarding your algorithm of making a planet?
As I have understood, you make your own planet as a new custom made MovableObject class, and inside it, you implement LOD techniques and all other stuff like mapping and procedural heights.

I was wondering if you could, in some kind if step-by-step, tell us from what doest your MO class consist of.
Maybe you could provide some links (or some sources that were useful for you while creating) regarding creating and implementing MO classes, something like that.

Much appreciated.
mathieutozer
Gnoblar
Posts: 2
Joined: Tue May 26, 2009 7:37 am

Re: Planet Rendering Engine preview

Post by mathieutozer »

This is probably old news but there's some source I got running once to scratch this same itch (not clever enough to write it all myself!). So it might be of use to someone else doing the same thing. http://sponeil.net/
User avatar
Kay Trance
Halfling
Posts: 80
Joined: Wed May 20, 2009 9:01 am
x 1

Re: Planet Rendering Engine preview

Post by Kay Trance »

hmmm... it looks familiar... I should investigate it more closely. Thanks for the link!
User avatar
Beauty
OGRE Community Helper
OGRE Community Helper
Posts: 767
Joined: Wed Oct 10, 2007 2:36 pm
Location: Germany
x 39
Contact:

Re: Planet Rendering Engine preview

Post by Beauty »

in some kind if step-by-step, tell us from what doest your MO class consist of.
For such a description it would be good to create a wiki page.
And this thread could be used for detailed user questions, so that the author gets ideas what he can focus.

The development information for the Tibor game is a nice example how a project can be descripted.
http://www.ogre3d.org/wiki/index.php/Experiences:Tibor
Help to add information to the wiki. Also tiny edits will let it grow ... :idea:
Add your country to your profile ... it's interesting to know from where of the world you are.
User avatar
JohnJ
OGRE Expert User
OGRE Expert User
Posts: 975
Joined: Thu Aug 04, 2005 4:14 am
Location: Santa Clara, California
x 4

Re: Planet Rendering Engine preview

Post by JohnJ »

I'm thinking about releasing the planet rendering code for the stuff you see in this thread, which is now over a year old (wow, time passes fast :)). Sorry I've been mostly absent from these forums for quite a while, but this project in a way led to me being hired for a full-time (freelance) job that I'm really busy with right now.

The engine from what I've shown in this thread is actually quite primitive (compared to what I've done under NDA, but I can't talk about that) and is far from perfect or complete, but hopefully if I can open-source it some of you will be able to at least learn from it, and maybe develop it into a usable library :). Unfortunately I don't have the time to make this into a library and support it like PagedGeometry, or even participate in it's open-source development at all due to the similarity of it to what I do under contract for work now, but I will finish this project in a few months and will be free then.

However, the technique I've been suggesting and using in this thread (Chunked LOD) I've found over time has some serious problems (particularly with seamless normal calculation), that are difficult (although not impossible) to solve efficiently. The solution used in the engine shown here works, but limits the maximum resolution of a planet to ~16000x16000ish. My new favorite technique (GPU accelerated geometry clipmaps, also mapped to a cube) is far better in almost every way (particular normal map generation), and is a perfect technique IMO for large planetary worlds for a video game, although it has different limitations of it's own.

I still do plan on finishing my "dream" 3D scifi space game, but since it's put on hold for now due to work, etc. I think releasing my code here is the best choice for now.

I might not be able to release anythjng at all for another month though because my computer was practically destroyed during travel, and for misc. reasons it can't be fixed until then.

P.S. DavlexDesign: Nice :)
User avatar
Beauty
OGRE Community Helper
OGRE Community Helper
Posts: 767
Joined: Wed Oct 10, 2007 2:36 pm
Location: Germany
x 39
Contact:

Re: Planet Rendering Engine preview

Post by Beauty »

Thanks for your detailed post and your opinion to make your project open source :)
Your are a good boy.
I whish you the best for your work, your travels and life!
Help to add information to the wiki. Also tiny edits will let it grow ... :idea:
Add your country to your profile ... it's interesting to know from where of the world you are.
mariusz.plaskowicki
Gnoblar
Posts: 9
Joined: Fri Aug 22, 2008 9:08 am

Re: Planet Rendering Engine preview

Post by mariusz.plaskowicki »

I think a lof of people (including me) will be happy to put their hands on your code.
And congratulations for getting hired based on your ogre work. I hope that when your NDA work gets released you'll let as know :D
User avatar
tretle
Gnoblar
Posts: 5
Joined: Thu Apr 23, 2009 8:03 pm
Location: Ireland

Re: Planet Rendering Engine preview

Post by tretle »

I just want to thank you in advance JohnJ. Its really cool to have someone do what you are doing and its a great contribution t the community. I am sure lots of open source projects will benefit immensely from your contribution. One I am looking forward to the most being vegastrike.
You are truly a cool guy :D
User avatar
JohnJ
OGRE Expert User
OGRE Expert User
Posts: 975
Joined: Thu Aug 04, 2005 4:14 am
Location: Santa Clara, California
x 4

Re: Planet Rendering Engine preview

Post by JohnJ »

Thanks :)

BTW I should be able to release it roughly one week from now.
User avatar
tretle
Gnoblar
Posts: 5
Joined: Thu Apr 23, 2009 8:03 pm
Location: Ireland

Re: Planet Rendering Engine preview

Post by tretle »

You freaking rock :D :P If you are ever in Ireland I must get you a crate of bears :D
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Planet Rendering Engine preview

Post by jacmoe »

That's going to be one huge crate - depending on the type of bear.. :wink:
I vote polar bears, this time of year.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
JohnJ
OGRE Expert User
OGRE Expert User
Posts: 975
Joined: Thu Aug 04, 2005 4:14 am
Location: Santa Clara, California
x 4

Re: Planet Rendering Engine preview

Post by JohnJ »

Lol :)

Don't get too excited though, like I said the code I'll be releasing is about a year old. I'll probably release the whole system including planet and star rendering for an example at least, but the only really useful part is probably the planet rendering code (which itself isn't 100% complete, but is works well at what it does, although needs some refactoring) - the solar system management is all wrong which is one reason why I'll be doing a total rewrite of the engine when I finally get the time to resume work on this. Anyway, I'm glad it will be useful in some projects :D
User avatar
Quorthon3D
Greenskin
Posts: 100
Joined: Fri Aug 08, 2008 8:06 pm
Location: Belo Horizonte - Brazil

Re: Planet Rendering Engine preview

Post by Quorthon3D »

Nice, very good jobs, greate engine, and i wait the release.
Sorry for my fail english, I'm studing, I swear! =]
User avatar
JohnJ
OGRE Expert User
OGRE Expert User
Posts: 975
Joined: Thu Aug 04, 2005 4:14 am
Location: Santa Clara, California
x 4

Re: Planet Rendering Engine preview

Post by JohnJ »

I'm finally back in California, and now all that remains is for me to put the pieces of my computer back together again. Hopefully my hard drives won't be ruined as well as the GPU/motherboard, but even if they are I'll find a backup of the planet renderer code somewhere. Anyway, hopefully it'll be all up and running soon :)
Post Reply