void TestScene5::runOgre() { // initialize framework & open window Ogre::Root* root = new Ogre::Root(); root->restoreConfig(); root->initialise(false); auto window = root->createRenderWindow("Ogre RenderWindow", 800, 600, false); auto sceneMgr = root->createSceneManager(Ogre::ST_GENERIC); // adjust camera auto cam1 = sceneMgr->createCamera("cam1"); auto camNode1 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode1"); cam1->setNearClipDistance(5); camNode1->attachObject(cam1); camNode1->setPosition(100, 100, 100); camNode1->lookAt(Ogre::Vector3(-1, -1, -1), Ogre::Node::TS_LOCAL); window->addViewport(cam1); // load & integrate model root->addResourceLocation("./resources/Ogre", "FileSystem"); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); auto model = sceneMgr->createEntity("model", "alexandria.mesh"); auto modelNode = sceneMgr->getRootSceneNode()->createChildSceneNode(); modelNode->attachObject(model); // position model modelNode->setPosition(-100, -100, -100); // loop runOgreLoop(root); }
void TestScene12::runOgre() { // initialize framework & open window Ogre::Root* root = new Ogre::Root(); root->restoreConfig(); root->initialise(false); auto window = root->createRenderWindow("Ogre RenderWindow", 800, 600, false); auto sceneMgr = root->createSceneManager(Ogre::ST_GENERIC); // adjust camera auto cam1 = sceneMgr->createCamera("cam1"); auto camNode1 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode1"); cam1->setNearClipDistance(5); camNode1->attachObject(cam1); camNode1->setPosition(Ogre::Vector3(100, 100, 100)); camNode1->lookAt(Ogre::Vector3(-1, -1, -1), Ogre::Node::TS_LOCAL); window->addViewport(cam1); // load & integrate model root->addResourceLocation("./resources/Ogre", "FileSystem"); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); Mesh_Cube M(1); M.createMesh("cube"); Ogre::SceneNode* groups[ROWS]; std::list<Ogre::SceneNode*> nodes; for (int i = 0; i < ROWS; i++) { groups[i] = sceneMgr->getRootSceneNode()->createChildSceneNode(); nodes.push_back(groups[i]); } for (int i = 0; i < ROWS * COLS; i++) { auto node = groups[i % ROWS]->createChildSceneNode(); node->attachObject(sceneMgr->createEntity(std::string("model") + boost::lexical_cast<std::string>(i), "cube")); node->setPosition( camNode1->getOrientation() * -Ogre::Vector3::UNIT_X * LEFT(i) + camNode1->getOrientation() * Ogre::Vector3::UNIT_Y * UP(i) ); } root->addFrameListener(new MoveObjectTask_Ogre12(nodes)); // loop runOgreLoop(root); }
int main() { Ogre::Root* root = new Ogre::Root(); root->addResourceLocation("/home/soulmerge/projects/Diplomarbeit/Prototype/resources/Ogre/", "FileSystem"); if (!root->restoreConfig() && !root->showConfigDialog()) { throw 1; } root->initialise(false); Ogre::SceneManager* sceneMgr = root->createSceneManager(Ogre::ST_GENERIC); sceneMgr->setAmbientLight(Ogre::ColourValue::White * 10); Ogre::RenderWindow* window = root->createRenderWindow("Ogre RenderWindow", 800, 600, false, NULL); Ogre::Camera* cam1 = sceneMgr->createCamera("cam1"); Ogre::Camera* cam2 = sceneMgr->createCamera("cam2"); Ogre::Camera* cam3 = sceneMgr->createCamera("cam3"); Ogre::Camera* cam4 = sceneMgr->createCamera("cam4"); Ogre::Viewport* vp1 = window->addViewport(cam1, 1, 0 , 0 , 0.5, 0.5); Ogre::Viewport* vp2 = window->addViewport(cam2, 2, 0.5, 0 , 0.5, 0.5); Ogre::Viewport* vp3 = window->addViewport(cam3, 3, 0 , 0.5, 0.5, 0.5); Ogre::Viewport* vp4 = window->addViewport(cam4, 4, 0.5, 0.5, 0.5, 0.5); vp1->setBackgroundColour(Ogre::ColourValue(1, 1, 1)); vp2->setBackgroundColour(Ogre::ColourValue(1, 1, 1) * 0.95); vp3->setBackgroundColour(Ogre::ColourValue(1, 1, 1) * 0.95); vp4->setBackgroundColour(Ogre::ColourValue(1, 1, 1)); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); Ogre::Entity* model = sceneMgr->createEntity("model", "alexandria.mesh"); Ogre::SceneNode* modelNode1 = sceneMgr->getRootSceneNode()->createChildSceneNode("modelnode1"); modelNode1->attachObject(model); cam1->setNearClipDistance(5); cam2->setNearClipDistance(5); cam3->setNearClipDistance(5); cam4->setNearClipDistance(5); /* cam1->setPolygonMode(Ogre::PM_WIREFRAME); cam2->setPolygonMode(Ogre::PM_WIREFRAME); cam3->setPolygonMode(Ogre::PM_WIREFRAME); cam4->setPolygonMode(Ogre::PM_WIREFRAME); */ Ogre::SceneNode* camNode1 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode1"); Ogre::SceneNode* camNode2 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode2"); Ogre::SceneNode* camNode3 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode3"); Ogre::SceneNode* camNode4 = sceneMgr->getRootSceneNode()->createChildSceneNode("camnode4"); camNode1->attachObject(cam1); camNode2->attachObject(cam2); camNode3->attachObject(cam3); camNode4->attachObject(cam4); Ogre::Quaternion q; q.FromAngleAxis(Ogre::Degree(90), Ogre::Vector3::UNIT_Y); camNode1->lookAt(Ogre::Vector3(-1, -1, -1), Ogre::Node::TS_LOCAL); camNode2->setOrientation(q * camNode1->getOrientation()); camNode3->setOrientation(q * camNode2->getOrientation()); camNode4->setOrientation(q * camNode3->getOrientation()); camNode1->setPosition(100, 100, 100); camNode2->setPosition(100, 100, -100); camNode3->setPosition(-100, 100, -100); camNode4->setPosition(-100, 100, 100); while(true) { Ogre::WindowEventUtilities::messagePump(); if (window->isClosed()) { return 0; } if (!root->renderOneFrame()) { return 0; } } return 0; }