def locateResources(self): rgm = Ogre.ResourceGroupManager.getSingleton() # ensure our resource group is separate, even with a local resources.cfg rgm.createResourceGroup(RGN_MESHVIEWER, False) # use parent implementation to locate system-wide RTShaderLib OgreBites.ApplicationContext.locateResources(self) # allow override by local resources.cfg if not self.getFSLayer().fileExists("resources.cfg"): # we use the fonts from SdkTrays.zip trays_loc = self.getDefaultMediaDir() + "/packs/SdkTrays.zip" rgm.addResourceLocation(trays_loc, "Zip", RGN_MESHVIEWER) if self.rescfg: cfg = Ogre.ConfigFile() cfg.loadDirect(self.rescfg) for sec, settings in cfg.getSettingsBySection().items(): for kind, loc in settings.items(): rgm.addResourceLocation(loc, kind, sec) # explicitly add mesh location to be safe if not rgm.resourceLocationExists(self.meshdir, Ogre.RGN_DEFAULT): rgm.addResourceLocation(self.meshdir, "FileSystem", Ogre.RGN_DEFAULT)
def main(): root = Ogre.Root("plugins.cfg", "ogre.cfg", "") cfg = Ogre.ConfigFile() cfg.loadDirect("resources.cfg") rgm = Ogre.ResourceGroupManager.getSingleton() for sec, settings in cfg.getSettingsBySection().items(): for kind, loc in settings.items(): rgm.addResourceLocation(loc, kind, sec) arch = cfg.getSettings("General").values()[0] rgm.addResourceLocation(arch + "/materials/programs/GLSL", "FileSystem", "General") arch += "/RTShaderLib" rgm.addResourceLocation(arch + "/materials", "FileSystem", "General") rgm.addResourceLocation(arch + "/GLSL", "FileSystem", "General") if not root.restoreConfig(): root.showConfigDialog(Ogre.ConfigDialog()) win = root.initialise(True) OgreRTShader.ShaderGenerator.initialize() shadergen = OgreRTShader.ShaderGenerator.getSingleton() sgres = SGResolver(shadergen) Ogre.MaterialManager.getSingleton().addListener(sgres) rgm.initialiseAllResourceGroups() rs = shadergen.getRenderState( OgreRTShader.cvar.ShaderGenerator_DEFAULT_SCHEME_NAME) rs.addTemplateSubRenderState( shadergen.createSubRenderState( OgreRTShader.cvar.PerPixelLighting_Type)) scn_mgr = root.createSceneManager(Ogre.ST_GENERIC) shadergen.addSceneManager(scn_mgr) scn_mgr.setAmbientLight(Ogre.ColourValue(.1, .1, .1)) light = scn_mgr.createLight("MainLight") lightnode = scn_mgr.getRootSceneNode().createChildSceneNode() lightnode.setPosition(0, 10, 15) lightnode.attachObject(light) cam = scn_mgr.createCamera("myCam") cam.setPosition(0, 0, 15) cam.setNearClipDistance(5) cam.lookAt(0, 0, -1) vp = win.addViewport(cam) vp.setBackgroundColour(Ogre.ColourValue(.3, .3, .3)) ent = scn_mgr.createEntity("Sinbad.mesh") node = scn_mgr.getRootSceneNode().createChildSceneNode() node.attachObject(ent) root.startRendering()
def main(): root = Ogre.Root("plugins.cfg", "ogre.cfg", "") cfg = Ogre.ConfigFile() cfg.loadDirect("resources.cfg") rgm = Ogre.ResourceGroupManager.getSingleton() for sec, settings in cfg.getSettingsBySection().items(): for kind, loc in settings.items(): rgm.addResourceLocation(loc, kind, sec) if not root.restoreConfig(): root.showConfigDialog(None) root.saveConfig() win = root.initialise(True) Ogre.RTShader.ShaderGenerator.initialize() shadergen = Ogre.RTShader.ShaderGenerator.getSingleton() sgres = SGResolver(shadergen) Ogre.MaterialManager.getSingleton().addListener(sgres) rgm.initialiseAllResourceGroups() rs = shadergen.getRenderState( Ogre.RTShader.ShaderGenerator.DEFAULT_SCHEME_NAME) rs.addTemplateSubRenderState( shadergen.createSubRenderState("SGX_PerPixelLighting")) scn_mgr = root.createSceneManager() shadergen.addSceneManager(scn_mgr) scn_mgr.setAmbientLight((.1, .1, .1)) light = scn_mgr.createLight("MainLight") lightnode = scn_mgr.getRootSceneNode().createChildSceneNode() lightnode.setPosition(0, 10, 15) lightnode.attachObject(light) cam = scn_mgr.createCamera("myCam") cam.setNearClipDistance(5) camnode = scn_mgr.getRootSceneNode().createChildSceneNode() camnode.attachObject(cam) camnode.lookAt((0, 0, -1), Ogre.Node.TS_WORLD) camnode.setPosition(0, 0, 15) vp = win.addViewport(cam) vp.setBackgroundColour((.3, .3, .3)) ent = scn_mgr.createEntity("Sinbad.mesh") node = scn_mgr.getRootSceneNode().createChildSceneNode() node.attachObject(ent) while not root.endRenderingQueued(): root.renderOneFrame()
def locateResources(self): rgm = Ogre.ResourceGroupManager.getSingleton() # ensure our resource group is separate, even with a local resources.cfg rgm.createResourceGroup(self.RGN_THIS_APP, False) # use parent implementation to locate system-wide RTShaderLib OgreBites.ApplicationContext.locateResources(self) if self.rescfg: cfg = Ogre.ConfigFile() cfg.loadDirect(self.rescfg) for sec, settings in cfg.getSettingsBySection().items(): for kind, loc in settings.items(): rgm.addResourceLocation(loc, kind, sec) if not rgm.resourceLocationExists('.', Ogre.RGN_DEFAULT): rgm.addResourceLocation('.', "FileSystem", Ogre.RGN_DEFAULT)