Blank Display

h_ryan503

12-08-2007 22:33:53

So I've been working with NxOgre for not to long now, but no matter what I do I can never get anything to display on my screen. I can compile fine, and it runs. The window comes up with my background color and whatever meshes I may have put in. However nothing from the NxOgre ever shows up.

For instance I have yet to get a floor to display.

Here is some of my code that is essecial to getting it to display:

First I set up resources


ConfigFile cf;
cf.load("config.yaml",":",true);

ConfigFile::SectionIterator seci = cf.getSectionIterator();
String secName, typeName, archName;

while (seci.hasMoreElements()) {
secName = seci.peekNextKey();
ConfigFile::SettingsMultiMap *csettings = seci.getNext();
ConfigFile::SettingsMultiMap::iterator i;

for (i = csettings->begin(); i != csettings->end(); ++i) {
Ogre::String k = i->first;
Ogre::String v = i->second;
Ogre::StringUtil::toLowerCase(k);
Ogre::StringUtil::toUpperCase(v);
}
}



Then I config them


ConfigFile cf;
cf.load("media/resources.cfg");

ConfigFile::SectionIterator seci = cf.getSectionIterator();
String secName, typeName, archName;

while (seci.hasMoreElements()) {
secName = seci.peekNextKey();
ConfigFile::SettingsMultiMap *settings = seci.getNext();
ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i) {
typeName = i->first;
archName = i->second;
ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}

mRoot->loadPlugin("RenderSystem_GL_d");
mRoot->loadPlugin("Plugin_ParticleFX_d");
mRoot->loadPlugin("Plugin_OctreeSceneManager_d");
mRoot->loadPlugin("Plugin_CgProgramManager_d");

Ogre::RenderSystem* mRenderSystem;
Ogre::RenderSystemList *pRenderSystemList;
pRenderSystemList = mRoot->getAvailableRenderers();
Ogre::RenderSystemList::iterator pRenderSystem;
pRenderSystem = pRenderSystemList->begin();
Ogre::RenderSystem *pSelectedRenderSystem;
pSelectedRenderSystem = *pRenderSystem;

while (pRenderSystem != pRenderSystemList->end()) {
if ((*pRenderSystem)->getName() == "OpenGL Rendering Subsystem") {
mRenderSystem = *pRenderSystem;
break;
}
pRenderSystem++;
}

mRoot->setRenderSystem(mRenderSystem);

mWindow = mRoot->initialise(true);


Then I create my scene


// Set ambient light
mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5));

// Create a light
//Light* l = mSceneMgr->createLight("MainLight");
//l->setPosition(20,80,50);

Ogre::RenderSystem* mRenderSystem;
Ogre::RenderSystemList *pRenderSystemList;
pRenderSystemList = getRoot()->getAvailableRenderers();
Ogre::RenderSystemList::iterator pRenderSystem;
pRenderSystem = pRenderSystemList->begin();
Ogre::RenderSystem *pSelectedRenderSystem;
pSelectedRenderSystem = *pRenderSystem;

while (pRenderSystem != pRenderSystemList->end()) {
if ((*pRenderSystem)->getName() == "OpenGL Rendering Subsystem") {
mRenderSystem = *pRenderSystem;
break;
}
pRenderSystem++;
}

getRoot()->setRenderSystem(mRenderSystem);

mWorld = new World();
mScene = mWorld->createScene("Main",mSceneMgr,"gravity: yes, floor: yes");


I have been working on this way to many late nights to have no solved it. Not to mention no one else on this forum seems to have this problem.

If you need any other code or have any idea what simple obvious thing I'm missing please save me!

betajaen

12-08-2007 23:14:52

Hmm.

Just to cross out a number of things, does this work?

mWorld = new World();
mScene = mWorld->createScene("Main",mSceneMgr,"gravity: yes, floor: yes");
mScene->createBody("cube.1m.mesh", new CubeShape(1), Vector3(0,0.5,0), "mass: 10");
mCamera->setPosition(10,10,10);
mCamera->lookAt(0,0,0);

h_ryan503

12-08-2007 23:42:08

So of course that worked...kinda

The cube appeared fine ( first time ever, thank you! ), however there still is no floor. Also gravity is not working because the cube did not move unless it is resting on an invisible floor.

One step closer thank you very much!

next?

betajaen

12-08-2007 23:48:53

Floor:yes just means an invisible floor, so it does work. Gravity works as well, as your cube is 0.5 above the ground...Move the it to 0,10,0 and it'll fall.

So it all works fine.

h_ryan503

12-08-2007 23:58:32

Eureka!!!!!

Thank you for showing me my simple solution!! Yes it worked just fine, a bit laggy at the beggening of the fall but thats all.

So how do you add a texture to the floor?

betajaen

13-08-2007 00:02:43

Millions of ways to do it...Well not millions, probably around 5. This is an Ogre thing, but for the sake of my sanity; A simple flat mesh made in Blender will do the trick.

h_ryan503

13-08-2007 00:12:46

Yes I relized soon after my post that I could simply make a mesh and place it level on the floor :p

Thank you very much, and I look forward to doing many great things with your NxOgre!