Models not showing up!

Jedimace1

16-11-2008 16:59:41

Hello. I ran the tutorial 6 with some rendering code, and couldn't see anything on the screen. I tried moving the object around the world and I tried checking the log. The log says it loaded fine, yet it was not displayed. Here's the log: http://rafb.net/p/h8Prg141.html, and here's my code:
import ogre.renderer.OGRE as ogre
import ogre.io.OIS as OIS
import ogre.gui.CEGUI as CEGUI
import ogre.gui.hikari as Hikari
import SampleFramework as sf

class ExitListener(ogre.FrameListener):

def __init__(self, keyboard):
ogre.FrameListener.__init__(self)
self.keyboard = keyboard

def frameStarted(self, evt):
self.keyboard.capture()
return not self.keyboard.isKeyDown(OIS.KC_ESCAPE)

class AppFrameListener(ogre.FrameListener):

def __init__(self, keyboard, mouse, joystick, hikariMgr):
ogre.FrameListener.__init__(self)
self.keyboard = keyboard
self.mouse = mouse
self.joystick = joystick
self.hikariMgr = hikariMgr

def frameStarted(self, evt):
self.keyboard.capture()
self.joystick.capture()
self.mouse.capture()
self.hikariMgr.update()
return True;

class Application(object):

def go(self, title):
self.createRoot()
self.defineResources()
self.setupRenderSystem()
self.createRenderWindow(title)
self.initializeResourceGroups()
self.setupPreScene()
self.setupScene()
self.setupInputSystem()
self.setupGUI()
self.createFrameListener()
self.startRenderLoop()
self.cleanUp()

def createRoot(self):
self.root = ogre.Root()

def defineResources(self):
cf = ogre.ConfigFile()
cf.load("resources.cfg")
seci = cf.getSectionIterator()
while seci.hasMoreElements():
secName = seci.peekNextKey()
settings = seci.getNext()
for item in settings:
typeName = item.key
archName = item.value
ogre.ResourceGroupManager.getSingleton().addResourceLocation(archName, typeName, secName)

def setupRenderSystem(self):
if not self.root.restoreConfig() and not self.root.showConfigDialog():
raise Exception("User canceled the config dialog! -> Application.setupRenderSystem()")

def createRenderWindow(self, title):
self.root.initialise(True, title)

def initializeResourceGroups(self):
ogre.TextureManager.getSingleton().setDefaultNumMipmaps(5)
ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()

def setupPreScene(self):
self.hikariMgr = Hikari.HikariManager(".\\")
self.sceneMgr = self.root.createSceneManager(ogre.ST_GENERIC, "Default SceneManager")
self.camera = self.sceneMgr.createCamera("Camera")
self.viewPort = self.root.getAutoCreatedWindow().addViewport(self.camera)

def setupScene(self):
sceneMgr = self.sceneMgr
sceneMgr.ambientLight = (1.0, 1.0, 1.0)
ent1 = sceneMgr.createEntity ('Robot', 'ninja.mesh')
node1 = sceneMgr.getRootSceneNode().createChildSceneNode ('RobotNode')
node1.attachObject (ent1)
ent2 = sceneMgr.createEntity ('Robot2', 'ninja.mesh')
node2 = node1.createChildSceneNode ('RobotNode2', (50, 0, 0))
node2.attachObject (ent2)

def setupInputSystem(self):
windowHandle = 0
renderWindow = self.root.getAutoCreatedWindow()
windowHandle = renderWindow.getCustomAttributeInt("WINDOW")
paramList = [("WINDOW", str(windowHandle))]
self.inputManager = OIS.createPythonInputSystem(paramList)
try:
self.keyboard = self.inputManager.createInputObjectKeyboard(OIS.OISKeyboard, False)
self.mouse = self.inputManager.createInputObjectMouse(OIS.OISMouse, False)
self.joystick = self.inputManager.createInputObjectJoyStick(OIS.OISJoyStick, False)
except Exception, e:
raise e

def setupGUI(self):
self.renderer = CEGUI.OgreCEGUIRenderer(self.root.getAutoCreatedWindow(), ogre.RENDER_QUEUE_OVERLAY, False, 3000, self.root.getSceneManager("Default SceneManager"))
self.system = CEGUI.System(self.renderer)

def createFrameListener(self):
self.exitListener = ExitListener(self.keyboard)
self.root.addFrameListener(self.exitListener)
self.appFrameListener = AppFrameListener(self.keyboard, self.mouse, self.joystick, self.hikariMgr)
self.root.addFrameListener(self.appFrameListener)
self.debugListener = sf.FrameListener(self.root.getAutoCreatedWindow(), self.camera, True, True)
self.debugListener.showDebugOverlay(True)
self.root.addFrameListener(self.debugListener)

def startRenderLoop(self):
self.root.startRendering()

def cleanUp(self):
self.inputManager.destroyInputObjectKeyboard(self.keyboard)
self.inputManager.destroyInputObjectMouse(self.mouse)
self.inputManager.destroyInputObjectJoyStick(self.joystick)
OIS.InputManager.destroyInputSystem(self.inputManager)
self.inputManager = None
del self.renderer
del self.system
del self.viewPort
del slef.camera
del self.sceneMgr
del self.hikariMgr
del self.appFrameListener
del self.exitListener
del self.root

if __name__ == '__main__':
try:
import psyco
psyco.full()
except ImportError:
pass
try:
ta = Application()
ta.go("Test Window")
except ogre.OgreException, e:
print e

Thanks for any help, I want to get this working so I can do some more cool stuff. Please ignore the Hikari code, I haven't finished it yet.

-Jedimace1

SiWi

16-11-2008 19:21:36

Just to make sure: Did you try facing your camera at your node and cancling out hikari stuff?

Jedimace1

16-11-2008 20:30:13

Yeah, I have. I moved the model 50 units in each direction(-x, x, z, -z, y, -y) and didn't see it. I had this problem before implementing the Hikari stuff, too.

dermont

17-11-2008 04:10:39

As SiWi suggested try setting up your camera as per the SampleFramework implementation:

...
self.camera = self.sceneMgr.createCamera("Camera")
self.camera.setPosition(ogre.Vector3(0, 0, 500))
self.camera.lookAt(ogre.Vector3(0, 0, -300))
self.camera.NearClipDistance = 5
...

Jedimace1

17-11-2008 05:54:41

Oh, I guess it was there. Thanks for the code, apparently I was trying to move the object/camera wrong.