OgrePlanet (or "Oh noes, not another planet engine!")

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!
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

DanielSefton wrote:Nice :shock:

No disrespect to the ROAM guys, this looks a lot better. I don't understand why their textures are so low resolution.

I hope you use this as a reference, you're already on the right track! http://www.infinity-universe.com/Infini ... 4&PageNo=1 :D
Yes, Infinity is indeed one of my main sources of inspiration. Most of what I've done so far, I've picked up from his dev blog.

Also, I had a look at one of the ROAM terrain videos, and it seems that they are actually using high-resolution textures. However, when you view a high-resolution texture (say 1024) from a distance where the texture only spans a few pixels across, you will either get a lot of flickering (if you don't use any filtering), or the texture will look very low-res (if you use filtering) since you are actually seeing a mip-mapped version of the texture... My program is no different, I just chose to show you some screen shots that looked good.

If you read the Infinity dev blog, you will see InfinityAdmin say the same thing. The Infinity screenshots and videos look amazing, but that's just because he is hiding the ugly parts (like disabling the clouds in the 2010 tech video).
User avatar
Jabberwocky
OGRE Moderator
OGRE Moderator
Posts: 2819
Joined: Mon Mar 05, 2007 11:17 pm
Location: Canada
x 218

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by Jabberwocky »

The alien sunset looks great! I definitely feel like I'm peering into a hazy sunset horizon. :D

About infinity - an amazing project, with very impressive graphics. But I wouldn't hold my breath for it to be finished anytime soon. The graphics tech started around 2004, so they're not in a hurry. And then there's those dreaded 3 letters of so many doomed projects - "MMO" :twisted:

Still, I wish nothing for the best for the infinity devs and if it ever does reach completion it's certainly going to look good.
Image
dragutux
Halfling
Posts: 56
Joined: Thu Nov 19, 2009 9:39 am
x 12

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by dragutux »

actually the infinity project is "on hold" :D
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

After living without a decent computer for over a month while waiting for my RMA'd graphics card to get returned to me, and then moving to a new city, I am now back to coding. Here's a small video for you.

[youtube]rg-LDAMQeBo[/youtube]

Frame rates are around twice of that shown when not recording. Will try to get started with batching terrain patches now, some experimenting shows that will also help quite a bit with the frame rates.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by jacmoe »

lingfors wrote:Code now available here: http://bitbucket.org/lingfors/ogreplanet
You didn't actually commit anything, am I right?

But great to see that you're back to working on it.
The vista in that video looks natural. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

I did, but I removed it again due to a licensing issue. Basically, I want to release source under MIT license but there's some GPL code in there. The GPL code isn't strictly needed, but it's the part that generates the terrain... I haven't really gotten around to write my own complex terrain generation code, so the terrain would look much less interesting without it.

I'm thinking about doing a dual release - one release with this terrain under GPL, and one release without it under MIT, but I don't know if that would be a good idea. :?
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by jacmoe »

Let me guess, it's Mercator?
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

jacmoe wrote:Let me guess, it's Mercator?
I don't even know what Mercator is, so... no? :)
User avatar
Zonder
Ogre Magi
Posts: 1172
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 76

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by Zonder »

You can always release under MIT later when the dependancy is gone. I am sure people want to play with it regradless :)
There are 10 types of people in the world: Those who understand binary, and those who don't...
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by jacmoe »

lingfors wrote:
jacmoe wrote:Let me guess, it's Mercator?
I don't even know what Mercator is, so... no? :)
Mercator is Worldforge's terrain generator library:
http://worldforge.org/dev/eng/libraries/mercator
I truly hate that it's GPL. :(

But I was merely trying to trick you into revealing what library you're using now. And I failed. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

Aha. You could have just asked, it's no secret. :)

I've adapted the planetary terrain example from libnoise, although I'm using noise++ for the actual noise generation.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by jacmoe »

In that case it shouldn't take you too long before you've made that code your own. :wink:
It's an example, and you are meant to learn from it - not copy it, of course.
Libnoise is truly amazing. :)
/* 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

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by DavlexDesign »

G'day lingfos,

I like Noise++ myself, well, that is what I've loosely based my fractals off of, Eats LibNoise alive for performance, and produces a similar result.
The first incarnations of my Planet engine used a custom FBM fractal mixed in with a RidgedMultiFractal hanging off of a Perlin Noise function
I soon changed to LibNoise, and I got nice results, then I switched to Noise++ and got the same results, with better performance.

I now use a noise++ permutation, I use the noise++ routines, plus a couple of my own intermediary functions and a couple of my own base fractal algorithms,
I'm still proofing them at the moment, but when I'm done, I will have fully predictive erosion and stuff like that. Yes I will give this stuff away with my system when I release it. SHIT!!! I'm ranting again.

Stick with noise++ for now lingfos, it's a great base system to work from.

Alex
rndbit
Gnoblar
Posts: 20
Joined: Sat Mar 05, 2011 7:57 pm

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by rndbit »

lingfors wrote:After living without a decent computer for over a month while waiting for my RMA'd graphics card to get returned to me, and then moving to a new city, I am now back to coding. Here's a small video for you.

[youtube]rg-LDAMQeBo[/youtube]

Frame rates are around twice of that shown when not recording. Will try to get started with batching terrain patches now, some experimenting shows that will also help quite a bit with the frame rates.
video looks great. i take its all generated randomly?
User avatar
lingfors
Hobgoblin
Posts: 525
Joined: Mon Apr 02, 2007 12:18 am
Location: Sweden
x 79

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by lingfors »

Source code now available at bitbucket again.

Terrain textures are missing though, because I can't remember where I found them, and thus can't check the licenses.
User avatar
Jabberwocky
OGRE Moderator
OGRE Moderator
Posts: 2819
Joined: Mon Mar 05, 2007 11:17 pm
Location: Canada
x 218

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by Jabberwocky »

Very cool of you to share your code, lingfors.
Image
iSerge
Gnoblar
Posts: 2
Joined: Tue Jun 05, 2012 10:45 am

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by iSerge »

lingfors wrote:Source code now available at bitbucket again.

Terrain textures are missing though, because I can't remember where I found them, and thus can't check the licenses.
Hi) Very cool work, I'm never write this )
I get project from hg, under windows 7 and VC90 + Ogre 1.8 post small fixes I'm compiled it. Run without texture (
On MacOSX Lion, also compiled after small fixes, but crush on run.

Code: Select all

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000028
0x00000001003823e5 in Ogre::RenderSystem::_render ()
(gdb) info s
#0  0x00000001003823e5 in Ogre::RenderSystem::_render ()
#1  0x0000000105164326 in Ogre::GLRenderSystem::_render ()
#2  0x00000001003db0ba in Ogre::SceneManager::renderSingleObject ()
#3  0x000000010037c3fd in Ogre::QueuedRenderableCollection::acceptVisitor ()
#4  0x00000001003da0ae in Ogre::SceneManager::renderBasicQueueGroupObjects ()
#5  0x00000001003d8642 in Ogre::SceneManager::renderVisibleObjectsDefaultSequence ()
#6  0x00000001003d3537 in Ogre::SceneManager::_renderScene ()
#7  0x00000001001f1815 in Ogre::Camera::_renderScene ()
#8  0x000000010039e69a in Ogre::RenderTarget::_updateViewport ()
#9  0x000000010039e412 in Ogre::RenderTarget::_updateAutoUpdatedViewports ()
#10 0x000000010039e376 in Ogre::RenderTarget::updateImpl ()
#11 0x000000010039ff8d in Ogre::RenderTarget::update ()
#12 0x0000000100380a9f in Ogre::RenderSystem::_updateAllRenderTargets ()
#13 0x00000001003c58b1 in Ogre::Root::_updateAllRenderTargets ()
#14 0x00000001003c5830 in Ogre::Root::renderOneFrame ()
#15 0x0000000100007904 in OgrePlanet::Application::startRenderLoop (this=0x7fff5fbff8a8) at OPApplication.cpp:194
#16 0x000000010000abde in OgrePlanet::Application::go (this=0x7fff5fbff8a8) at OPApplication.cpp:46
#17 0x000000010002c9f4 in main (argc=1, argv=0x7fff5fbff970) at OPMain.cpp:39
Its happen in

Code: Select all

void Application::startRenderLoop()
	{
        mTrayManager = new OgreBites::SdkTrayManager("OgrePlanetTrayManager", mWindow, mMouse);
        mTrayManager->showFrameStats(OgreBites::TL_BOTTOMLEFT);
        mTrayManager->showLogo(OgreBites::TL_BOTTOMRIGHT);
        mTrayManager->hideCursor();

        mRoot->addFrameListener(this);

		Ogre::Timer timer;
		timer.reset();
        Ogre::Real timeFactor = 60.0 * 60.0 * 24.0;

        ---->>>>>while (mPlanet->notifyPreRender() && mRoot->renderOneFrame() && mPlanet->notifyPostRender())
        {
I don't know what doing. Help please. In the evening I'm test it on Linux
P.S. Sorry for my english)
iSerge
Gnoblar
Posts: 2
Joined: Tue Jun 05, 2012 10:45 am

Re: OgrePlanet (or "Oh noes, not another planet engine!")

Post by iSerge »

On Ogre build from src on MacOSX Lion

Code: Select all

Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1.

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000028
0x000000010168e622 in Ogre::RenderSystem::_render (this=0x104f0f0f8, op=@0x7fff5fbfe9f0) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderSystem.cpp:660
660			mVertexCount += op.vertexData->vertexCount * trueInstanceNum;
(gdb) info s
#0  0x000000010168e622 in Ogre::RenderSystem::_render (this=0x104f0f0f8, op=@0x7fff5fbfe9f0) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderSystem.cpp:660
#1  0x0000000106aaf08d in Ogre::GLRenderSystem::_render (this=0x104f0f0f8, op=@0x7fff5fbfe9f0) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/RenderSystems/GL/src/OgreGLRenderSystem.cpp:2874
#2  0x000000010172a7b5 in Ogre::SceneManager::renderSingleObject (this=0x104f6d638, rend=0x104f87910, pass=0x104f15d58, lightScissoringClipping=true, doLightIteration=true, manualLightList=0x0) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:3453
#3  0x000000010172895f in Ogre::SceneManager::BRAND NAME::visit (this=0x104f71ff8, r=0x104f87910) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:2878
#4  0x000000010167d7d6 in Ogre::QueuedRenderableCollection::acceptVisitorGrouped (this=0x104f614b8, visitor=0x104f71ff8) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:450
#5  0x000000010167d5d3 in Ogre::QueuedRenderableCollection::acceptVisitor (this=0x104f614b8, visitor=0x104f71ff8, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:418
#6  0x0000000101728e29 in Ogre::SceneManager::renderObjects (this=0x104f6d638, objs=@0x104f614b8, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP, lightScissoringClipping=true, doLightIteration=true, manualLightList=0x0) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:2979
#7  0x0000000101729137 in Ogre::SceneManager::renderBasicQueueGroupObjects (this=0x104f6d638, pGroup=0x10630a6a8, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:3057
#8  0x0000000101729075 in Ogre::SceneManager::_renderQueueGroupObjects (this=0x104f6d638, pGroup=0x10630a6a8, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:3036
#9  0x0000000101725f9b in Ogre::SceneManager::renderVisibleObjectsDefaultSequence (this=0x104f6d638) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:2316
#10 0x0000000101725ce5 in Ogre::SceneManager::_renderVisibleObjects (this=0x104f6d638) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:2232
#11 0x000000010171f707 in Ogre::SceneManager::_renderScene (this=0x104f6d638, camera=0x104f6ce28, vp=0x1068005b8, includeOverlays=true) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreSceneManager.cpp:1529
#12 0x000000010137e63b in Ogre::Camera::_renderScene (this=0x104f6ce28, vp=0x1068005b8, includeOverlays=true) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreCamera.cpp:426
#13 0x000000010189c6bb in Ogre::Viewport::update (this=0x1068005b8) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreViewport.cpp:217
#14 0x00000001016b51f5 in Ogre::RenderTarget::_updateViewport (this=0x104f130a8, viewport=0x1068005b8, updateStatistics=true) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderTarget.cpp:199
#15 0x00000001016b4eb9 in Ogre::RenderTarget::_updateAutoUpdatedViewports (this=0x104f130a8, updateStatistics=true) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderTarget.cpp:177
#16 0x00000001016b4db0 in Ogre::RenderTarget::updateImpl (this=0x104f130a8) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderTarget.cpp:154
#17 0x00000001016b7385 in Ogre::RenderTarget::update (this=0x104f130a8, swap=false) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderTarget.cpp:611
#18 0x000000010168c2ce in Ogre::RenderSystem::_updateAllRenderTargets (this=0x104f0f0f8, swapBuffers=false) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRenderSystem.cpp:122
#19 0x0000000101702279 in Ogre::Root::_updateAllRenderTargets (this=0x104f004a8) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRoot.cpp:1393
#20 0x0000000101702223 in Ogre::Root::renderOneFrame (this=0x104f004a8) at /Users/iserge/Develop/OtherBuilds/ogre_src_v1-8-0/OgreMain/src/OgreRoot.cpp:978
#21 0x0000000100008034 in OgrePlanet::Application::startRenderLoop (this=0x7fff5fbff8a8) at OPApplication.cpp:194
#22 0x000000010000b30e in OgrePlanet::Application::go (this=0x7fff5fbff8a8) at OPApplication.cpp:46
#23 0x000000010002c5b4 in main (argc=1, argv=0x7fff5fbff970) at OPMain.cpp:39