void MultiMgrSample::dualViewport(Ogre::SceneManager *primarySceneMgr, Ogre::SceneManager *secondarySceneMgr) { mWindow->removeAllViewports(); Ogre::Viewport *vp = 0; Ogre::Camera *cam = primarySceneMgr->getCamera(CAMERA_NAME); vp = mWindow->addViewport(cam, 0, 0, 0, 0.5, 1); vp->setBackgroundColour(Ogre::ColourValue(0,0,0)); cam->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); cam = secondarySceneMgr->getCamera(CAMERA_NAME); vp = mWindow->addViewport(cam, 1, 0.5, 0, 0.5, 1); vp->setBackgroundColour(Ogre::ColourValue(0,0,0)); cam->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); }
int startup(){ _root = new Ogre::Root("plugins_d.cfg"); if(!_root->showConfigDialog()){ return -1; } Ogre::RenderWindow* window = _root->initialise(true, "Ventana Ogre"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* camera = _sceneManager->createCamera("Camera"); camera->setPosition(Ogre::Vector3(500,100,500)); camera->lookAt(Ogre::Vector3(0,0,0)); camera->setNearClipDistance(5); Ogre::Viewport* viewport = window->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); camera->setAspectRatio(Ogre::Real(viewport->getActualWidth()/viewport->getActualHeight())); _listener = new FrameListenerProyectos(window,camera); _root->addFrameListener(_listener); loadResources(); createScene(); _root->startRendering(); return 0; }
void AsteroidGame::windowResized(Ogre::RenderWindow* rw){ /* Update the window and aspect ratio when the window is resized */ int width = rw->getWidth(); int height = rw->getHeight(); Ogre::SceneManager* scene_manager = ogre_root_->getSceneManager("MySceneManager"); Ogre::Camera* camera = scene_manager->getCamera("MyCamera"); if (camera != NULL){ camera->setAspectRatio(Ogre::Real(width/height)); } Ogre::Camera* camera_2 = scene_manager->getCamera("MyCamera_2"); if (camera_2 != NULL){ camera_2->setAspectRatio(Ogre::Real(width/height)); } const OIS::MouseState &ms = mouse_->getMouseState(); ms.width = width; ms.height = height; ogre_window_->resize(width, height); ogre_window_->windowMovedOrResized(); ogre_window_->update(); }
void BaseApp::createViewport() { Ogre::Camera* cam = mSceneMgr->getCamera("PlayerCam"); Ogre::Viewport * vp = mWindow->addViewport(cam); vp->setBackgroundColour(ColourValue(0.0f,0.0f,0.0f,0.0f)); cam->setAspectRatio(Ogre::Real(vp->getActualWidth())/Ogre::Real(vp->getActualHeight())); }
void gkScene::setMainCamera(gkCamera* cam) { if (!cam) return; m_startCam = cam; Ogre::Camera* main = m_startCam->getCamera(); GK_ASSERT(main); if (!m_viewport) { gkWindow* window = getDisplayWindow(); GK_ASSERT(window); m_viewport = window->addViewport(cam); } else m_viewport->getViewport()->setCamera(main); GK_ASSERT(m_viewport); gkVector2 size = getDisplayWindow()->getSize(); main->setAspectRatio(size.x / size.y); cam->setFov(gkDegree(cam->getFov())); }
void application::create_viewports() { Ogre::Viewport* vp = wnd->addViewport(cam); vp->setBackgroundColour (Ogre::ColourValue {0, 0, 0}); cam->setAspectRatio (Ogre::Real (vp->getActualWidth()) / Ogre::Real (vp->getActualHeight())); }
void OgreNode::updateFBO() { Ogre::TexturePtr rttTexture = mRenderSystem->getRtt("RttTex", mSize.width(), mSize.height()); mRenderTarget = rttTexture->getBuffer()->getRenderTarget(); Ogre::Camera* cam = mRenderSystem->getOgreCamera(); mRenderTarget->addViewport(cam); Ogre::Real aspectRatio = Ogre::Real(mSize.width()) / Ogre::Real(mSize.height()); cam->setAspectRatio(aspectRatio); QSGGeometry::updateTexturedRectGeometry(&mGeometry, QRectF(0, 0, mSize.width(), mSize.height()), QRectF(0, 0, 1, 1)); Ogre::GLTexture *nativeTexture = static_cast<Ogre::GLTexture *>(rttTexture.get()); delete mTexture; mTexture = mQuickWindow->createTextureFromId(nativeTexture->getGLID(), mSize); mMaterial.setTexture(mTexture); mMaterialO.setTexture(mTexture); LOG(INFO) << "Updated FBO, new size: " << mSize.width() << "x" << mSize.height() << ", texture id: " << nativeTexture->getGLID(); }
int Hundir::start() { _root = new Ogre::Root(); if(!_root->restoreConfig()) { _root->showConfigDialog(); _root->saveConfig(); } Ogre::RenderWindow* window = _root->initialise(true,"Hundir Example"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* cam = _sceneManager->createCamera("MainCamera"); cam->setPosition(Ogre::Vector3(-10,30,35)); cam->lookAt(Ogre::Vector3(0,0,0)); cam->setNearClipDistance(5); cam->setFarClipDistance(10000); Ogre::Viewport* viewport = window->addViewport(cam); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); double width = viewport->getActualWidth(); double height = viewport->getActualHeight(); cam->setAspectRatio(width / height); loadResources(); createScene(); _framelistener = new MyFrameListener(window, cam, _sceneManager); _root->addFrameListener(_framelistener); _root->startRendering(); return 0; }
//------------------------------------------------------------------------------------------- void MagickWidget::loadMesh(Ogre::MeshPtr pMesh) { QString directory(OgitorsRoot::getSingletonPtr()->GetProjectOptions()->ProjectDir.c_str()); if(directory.isEmpty()) directory = "./"; QDir(directory).mkpath("entitycache"); Ogre::TexturePtr texture = Ogre::TextureManager::getSingleton().createManual( "MeshMagickTex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, 512, 512, 0, Ogre::PF_R8G8B8A8 , Ogre::TU_RENDERTARGET ); Ogre::RenderTexture *rttTex = texture->getBuffer()->getRenderTarget(); Ogre::SceneManager *mSceneMgr = Ogre::Root::getSingletonPtr()->createSceneManager("OctreeSceneManager", "MeshMagickTexMgr"); Ogre::Light *dirl = mSceneMgr->createLight("DisplayLight"); dirl->setDirection(-1,-1,-1); dirl->setDiffuseColour(1,1,1); dirl->setType(Ogre::Light::LT_DIRECTIONAL); Ogre::Camera* RTTCam = mSceneMgr->createCamera("MeshMagickCam"); RTTCam->setNearClipDistance(0.01F); RTTCam->setFarClipDistance(0); RTTCam->setAspectRatio(1); RTTCam->setFOVy(Ogre::Degree(90)); RTTCam->setPosition(0,0,1); RTTCam->lookAt(0,0,0); Ogre::Viewport *v = rttTex->addViewport( RTTCam ); v->setClearEveryFrame( true ); v->setBackgroundColour(Ogre::ColourValue(0,0,0)); Ogre::Entity *mEntity; mEntity = mSceneMgr->createEntity("scbDisplay", pMesh->getName()); mSceneMgr->getRootSceneNode()->attachObject(mEntity); Ogre::Vector3 vSize = mEntity->getBoundingBox().getHalfSize(); Ogre::Vector3 vCenter = mEntity->getBoundingBox().getCenter(); vSize += Ogre::Vector3(vSize.z, vSize.z, vSize.z); float maxsize = std::max(std::max(vSize.x,vSize.y),vSize.z); vSize = Ogre::Vector3(0, 0, maxsize * 1.15f) + vCenter; RTTCam->setPosition(vSize.x,vSize.y,vSize.z); RTTCam->lookAt(vCenter.x,vCenter.y,vCenter.z); rttTex->update(); Ogre::String imagefile = OgitorsUtils::QualifyPath(directory.toStdString() + "/entitycache/meshmagick.png"); rttTex->writeContentsToFile(imagefile); mEntity->detachFromParent(); mSceneMgr->destroyEntity(mEntity); rttTex->removeAllViewports(); Ogre::Root::getSingletonPtr()->destroySceneManager(mSceneMgr); mDisplayWidget->setImage(QString(imagefile.c_str())); }
int main(int argc, char* argv[]){ cout << "Test Ogre Program blaha" << endl; //Relative to where its executed from, not binary location Ogre::Root *mRoot = new Ogre::Root("configs/plugins.cfg","configs/config.cfg","logs/main.log"); if(!(mRoot->restoreConfig() || mRoot->showConfigDialog())){ delete mRoot; return -1; } // setup resources // Only add the minimally required resource locations to load up the Ogre head mesh Ogre::ResourceGroupManager::getSingleton().addResourceLocation("/Users/jgrey/OgreSDK/Media/materials/programs", "FileSystem", "General"); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("/Users/jgrey/OgreSDK/Media/materials/programs/GLSL", "FileSystem", "General"); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("/Users/jgrey/OgreSDK/Media/materials/scripts", "FileSystem", "General"); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("/Users/jgrey/OgreSDK/Media/materials/textures", "FileSystem", "General"); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("/Users/jgrey/OgreSDK/Media/models", "FileSystem", "General"); //Create the window Ogre::RenderWindow *mWindow = mRoot->initialise(true, "initial Render Window"); Ogre::SceneManager *sceneManager = mRoot->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera *camera = sceneManager->createCamera("PlayerCam"); camera->setPosition(Ogre::Vector3(0,0,80)); camera->lookAt(Ogre::Vector3(0,0,-300)); camera->setNearClipDistance(5); Ogre::Viewport* vp = mWindow->addViewport(camera); vp->setBackgroundColour(Ogre::ColourValue(0,0,0,0)); camera->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); Ogre::Entity* ogreHead = sceneManager->createEntity("Head","ogreHead.mesh"); Ogre::SceneNode* headNode = sceneManager->getRootSceneNode()->createChildSceneNode(); headNode->attachObject(ogreHead); sceneManager->setAmbientLight(Ogre::ColourValue(0.5,0.5,0.5)); //Run the system bool continueRunning = true; while(continueRunning){ mRoot->renderOneFrame(); headNode->rotate(Ogre::Vector3(0,1,0),Ogre::Radian(0.005)); if(mWindow->isClosed()){ continueRunning = false; } } delete mRoot; }
//----------------------------------------------------------------------------- void Engine::OnRenderViewSize() { if(m_pRenderWnd) m_pRenderWnd->windowMovedOrResized(); if(m_pCamera) m_pCamera->setAspectRatio( Ogre::Real(m_pViewport->getActualWidth()) / Ogre::Real(m_pViewport->getActualHeight())); }
void MultiMgrSample::setupViewport(Ogre::SceneManager *curr) { mWindow->removeAllViewports(); Ogre::Camera *cam = curr->getCamera(CAMERA_NAME); Ogre::Viewport *vp = mWindow->addViewport(cam); vp->setBackgroundColour(Ogre::ColourValue(0,0,0)); cam->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); }
void Window::addViewport() { Pipe *pipe = static_cast<Pipe *>(getPipe()); Ogre::Camera *cam = pipe->_ogre->getCamera(); _vp = mWindow->addViewport(cam); _vp->setBackgroundColour(Ogre::ColourValue(0,0,0)); cam->setAspectRatio( Ogre::Real(_vp->getActualWidth()) / Ogre::Real(_vp->getActualHeight())); }
GameState* StateManager::changeState ( const std::string& state_name, Ogre::RenderWindow* window ){ _prev_state = _current_state; _current_state = _states[state_name]; window->removeAllViewports(); Ogre::Camera* camera = _current_state->getScene()->getCamera(MainCameraName); Ogre::Viewport* vp = window->addViewport(camera); vp->setBackgroundColour(Ogre::ColourValue(0.5,0.5,0.5)); camera->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); return _current_state; }
// ----------------------------------------------------------------------------- CardEditor::CardEditor(EditorProject* project, DeckEditor* parentEditor, QWidget *parent, Qt::WFlags flags) : QWidget(parent, flags), EditorWidget(project, parentEditor), widget(0), cards(project->getCards()), current(0), hasChanged(false), notified(false), currentItem(0), cardCount(cards.size()), rsError(false) { ui.setupUi(this); // We're trying to create a 3D Render Preview. If this fails, the user // will still be able to edit stuff, but can't preview changes. try { // Create Editor RenderView widget = new OgreWidget(Util::toQString(EditorSystem::getInstance().getRenderView()), ui.ogreWidget); widget->setBaseSize(QSize(288,384)); widget->setFixedWidth(288); widget->setFixedHeight(384); widget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); widget->setFocusPolicy(Qt::NoFocus); ui.ogreWidget->setAttribute(Qt::WA_PaintOnScreen); ui.ogreWidget->setAttribute(Qt::WA_NoSystemBackground); ui.ogreWidget->setAttribute(Qt::WA_NoBackground); ui.innerLayout->addWidget(widget, 1, 1); // We need a camera and Viewport in order to display anything Ogre::Camera* camera = Ogre::Root::getSingletonPtr()->getSceneManager("root")->createCamera("PlayerCam"); Ogre::Viewport* viewport = static_cast<OgreWidget*>(widget)->getRenderWindow()->addViewport(camera); camera->setAspectRatio( Ogre::Real(viewport->getActualWidth()) / Ogre::Real(viewport->getActualHeight())); // Initialize UI & associated Managers Arcomage::UI::UIManager::getInstance().bootstrap(); // Preload required Editor Fonts Arcomage::ResourceManager::getInstance().preloadResources( Arcomage::ConfigurationManager::getInstance().getPath("Fonts")+"/fonts.xml", /* unused, Music */ "", /* unused, Sound effects */ ""); } catch (Ogre::Exception& e) { rsError = true; widget = new OgreWidget("errorwidget", ui.ogreWidget, true); ToolkitUtil::getInstance().notifyError(e.what()); } populateTree(); this->connectUI(); }
// funcion que configura la camara void createCamera(Ogre::RenderWindow* window){ camera = _sceneManager->createCamera("Camera"); camera->setPosition(Ogre::Vector3(0,60,-100)); camera->lookAt(Ogre::Vector3(0,0,50)); camera->setNearClipDistance(5); Ogre::Viewport* viewport = window->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); camera->setAspectRatio(Ogre::Real(viewport->getActualWidth())/Ogre::Real(viewport->getActualHeight())); }
void OgreWidget::moveAndResize() { mWindow->reposition(x(), y()); mWindow->resize(width(), height()); mWindow->windowMovedOrResized(); for (int ct = 0; ct < mWindow->getNumViewports(); ++ct) { Ogre::Viewport* pViewport = mWindow->getViewport(ct); Ogre::Camera* pCamera = pViewport->getCamera(); pCamera->setAspectRatio(static_cast<Ogre::Real>(pViewport->getActualWidth()) / static_cast<Ogre::Real>(pViewport->getActualHeight())); } }
void ReliefApp::GenerateRelief() { //Get depth data Ogre::TexturePtr depthTex = Ogre::TextureManager::getSingleton().createManual( "DepthTexture", // name Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, // type 512, // width 512, // height 0, // number of mipmaps //Ogre::PF_B8G8R8A8, // pixel format Ogre::PF_FLOAT32_R, Ogre::TU_RENDERTARGET ); Ogre::RenderTarget* pTarget = depthTex->getBuffer()->getRenderTarget(); Ogre::Camera* pOrthCam = MagicCore::RenderSystem::GetSingleton()->GetMainCamera(); pOrthCam->setProjectionType(Ogre::PT_ORTHOGRAPHIC); pOrthCam->setOrthoWindow(3, 3); pOrthCam->setPosition(0, 0, 3); pOrthCam->lookAt(0, 0, 0); pOrthCam->setAspectRatio(1.0); pOrthCam->setNearClipDistance(0.5); pOrthCam->setFarClipDistance(5); Ogre::Viewport* pViewport = pTarget->addViewport(pOrthCam); pViewport->setDimensions(0, 0, 1, 1); MagicCore::RenderSystem::GetSingleton()->RenderLightMesh3D("RenderMesh", "Depth", mpLightMesh); MagicCore::RenderSystem::GetSingleton()->Update(); Ogre::Image img; depthTex->convertToImage(img); std::vector<double> heightField(512 * 512); for(int x = 0; x < 512; x++) { for(int y = 0; y < 512; y++) { heightField.at(x * 512 + y) = (img.getColourAt(x, 511 - y, 0))[1]; } } Ogre::TextureManager::getSingleton().remove("DepthTexture"); // MagicDGP::LightMesh3D* pReliefMesh = MagicDGP::ReliefGeneration::PlaneReliefFromHeightField(heightField, 511, 511); //MagicDGP::LightMesh3D* pReliefMesh = MagicDGP::ReliefGeneration::CylinderReliefFromHeightField(heightField, 511, 511); if (pReliefMesh != NULL) { delete mpLightMesh; mpLightMesh = pReliefMesh; mpLightMesh->UnifyPosition(2); mpLightMesh->UpdateNormal(); } MagicCore::RenderSystem::GetSingleton()->SetupCameraDefaultParameter(); MagicCore::RenderSystem::GetSingleton()->RenderLightMesh3D("RenderMesh", "MyCookTorrance", mpLightMesh); }
Player* PlayerManager::createHumanPlayer(const Ogre::String& name, Ogre::RenderWindow *window, GUI* gui) { // TODO: Handle Human Multiplayer, also this code should be somewhere else Ogre::Camera *camera = mSceneMgr->createCamera("Player1"); camera->setNearClipDistance(NEAR_CLIP_DISTANCE); Ogre::Viewport *vp = window->addViewport(camera); vp->setBackgroundColour(Ogre::ColourValue(0,0,0)); camera->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); HumanController* hc = new HumanController(gui); Player* player = createPlayer(name + "Human", hc, false); player->attachCamera(camera); return player; }
/** * @brief resize the GL window * @author Kito Berg-Taylor */ void THIS::resizeGL( int width, int height ) { if ( !mWindow ) return; mWindow->resize(width, height); mWindow->windowMovedOrResized(); for(int i = 0; i < mWindow->getNumViewports(); ++i) { Ogre::Viewport* pViewport = mWindow->getViewport(i); Ogre::Camera* pCamera = pViewport->getCamera(); pCamera->setAspectRatio(static_cast<Ogre::Real>(pViewport->getActualWidth()) / static_cast<Ogre::Real>(pViewport->getActualHeight())); pViewport->_updateDimensions(); } paintGL(); }
void OgreWidget::resizeEvent(QResizeEvent* evt) { if(m_pOgreRenderWindow) { m_pOgreRenderWindow->resize(width(), height()); m_pOgreRenderWindow->windowMovedOrResized(); for(int ct = 0; ct < m_pOgreRenderWindow->getNumViewports(); ++ct) { Ogre::Viewport* pViewport = m_pOgreRenderWindow->getViewport(ct); Ogre::Camera* pCamera = pViewport->getCamera(); pCamera->setAspectRatio(static_cast<Ogre::Real>(pViewport->getActualWidth()) / static_cast<Ogre::Real>(pViewport->getActualHeight())); } } }
//We're not sure whether return a reference to a vector is such a great idea. void CinematicManager::createPerspectiveCamera(Ogre::Real windowW, Ogre::Real windowH, const Ogre::Vector3 &initialPos, const Ogre::Quaternion &initialOrient, Control* control) { Ogre::Camera* cam = _scnMgr->createCamera(PERSP_CAM_NAME + Ogre::StringConverter::toString(_camCurId)); cam->setNearClipDistance(1.0f); cam->setFarClipDistance(400.0f); cam->setPosition(0.0f, 0.0f, 0.0f); cam->setAspectRatio(windowW / windowH); Ogre::SceneNode* defaultNode = _scnMgr->createSceneNode(); defaultNode->setPosition(initialPos); //It's in local space. defaultNode->setOrientation(initialOrient); defaultNode->attachObject(cam); _camsVec.push_back(new ZCameraInfo(_camsVec.size(), "PERSPECTIVE", cam->getName(), control, cam)); }
void OneLeftApplication::SetupScene() { scene_maker_ = new DefaultSceneMaker("media/scene/scene.json"); scene_maker_->Make(root_); scene_manager_ = root_->getSceneManager("default"); Ogre::Camera* camera = scene_manager_->getCamera("default"); // Isso é coisa de gameplay .-. Ogre::Viewport* viewport = window_->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0, 0, 0)); camera->setAspectRatio(Ogre::Real(window_->getWidth()) / Ogre::Real(window_->getHeight())); // windowResized(window_);dd }
void CameraWrapper::attach(Ogre::Viewport* viewport) { #if OGRE_VERSION_MAJOR == 1 Ogre::Camera* camera = getCamera(); mViewport = viewport; if (mViewport == 0) { LOG(ERROR) << "Failed to get viewport"; return; } mViewport->setBackgroundColour(mBgColour); camera->setAspectRatio( float(mViewport->getActualWidth()) / float(mViewport->getActualHeight())); mViewport->setCamera(camera); mIsActive = true; LOG(INFO) << "Attached camera to viewport"; #else LOG(ERROR) << "Attaching camera to viewport is not supported in ogre " << OGRE_VERSION_MAJOR << "." << OGRE_VERSION_MINOR << " . Use compositor instead"; #endif }
int MyApp::start() { _root = new Ogre::Root(); if(!_root->restoreConfig()) { _root->showConfigDialog(); _root->saveConfig(); } _pTrackManager = new TrackManager; _pSoundFXManager = new SoundFXManager; Ogre::RenderWindow* window = _root->initialise(true,"MyApp Example"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* cam = _sceneManager->createCamera("MainCamera"); cam->setPosition(Ogre::Vector3(7,10.5,8)); cam->lookAt(Ogre::Vector3(0,3.5,0)); cam->setNearClipDistance(5); cam->setFarClipDistance(10000); Ogre::Viewport* viewport = window->addViewport(cam); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); double width = viewport->getActualWidth(); double height = viewport->getActualHeight(); cam->setAspectRatio(width / height); loadResources(); createScene(); createOverlay(); Ogre::SceneNode *node = _sceneManager->getSceneNode("Neptuno"); _framelistener = new MyFrameListener(this, window, cam, node, _overlayManager, _sceneManager); _root->addFrameListener(_framelistener); // Reproducción del track principal... this->_mainTrack->play(); _root->startRendering(); return 0; }
void wxOgreRenderWindow::setCameraAspectRatio() { Ogre::Camera* camera = viewport_->getCamera(); if ( camera ) { int width; int height; GetSize( &width, &height ); camera->setAspectRatio( Ogre::Real( width ) / Ogre::Real( height ) ); if ( camera->getProjectionType() == Ogre::PT_ORTHOGRAPHIC ) { Ogre::Matrix4 proj; buildScaledOrthoMatrix( proj, -width / ortho_scale_ / 2, width / ortho_scale_ / 2, -height / ortho_scale_ / 2, height / ortho_scale_ / 2, camera->getNearClipDistance(), camera->getFarClipDistance() ); camera->setCustomProjectionMatrix(true, proj); } } }
int startup(){ _root = new Ogre::Root("plugins_d.cfg"); /* if(!_root->showConfigDialog()){ return -1; } */ Ogre::RenderSystem* _rs = _root->getRenderSystemByName("Direct3D9 Rendering Subsystem"); // or use "OpenGL Rendering Subsystem" _root->setRenderSystem(_rs); _rs->setConfigOption("Full Screen", "No"); _rs->setConfigOption("Video Mode", "800 x 600 @ 32-bit colour"); _rs->setConfigOption("FSAA", "0"); _rs->setConfigOption("Floating-point mode", "Fastest"); _rs->setConfigOption("Use Multihead", "Auto"); _rs->setConfigOption("VSync", "No"); _rs->setConfigOption("VSync Interval", "1"); Ogre::RenderWindow* window = _root->initialise(true, "Ventana Ogre"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* camera = _sceneManager->createCamera("Camera"); camera->setPosition(Ogre::Vector3(0.0f,300.0f,-1000.0f)); camera->lookAt(Ogre::Vector3(0,0,0)); camera->setNearClipDistance(5); Ogre::Viewport* viewport = window->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); camera->setAspectRatio(Ogre::Real(viewport->getActualWidth()/viewport->getActualHeight())); _listener = new FrameListenerProyectos(window,camera); _root->addFrameListener(_listener); loadResources(); createScene(); _root->startRendering(); return 0; }
//---------------------------------------------------------------------------------------- ImageConverter::ImageConverter(const size_t& width/*=128*/, const size_t& height/*=128*/) { mWidth = width; mHeight = height; mResourceManager = Ogre::ResourceGroupManager::getSingletonPtr(); mResourceManager->createResourceGroup("QTImageConverter"); mResourceManager->initialiseResourceGroup("QTImageConverter"); mSceneMgrPtr = Ogre::Root::getSingletonPtr()->createSceneManager("OctreeSceneManager", "QTImageConverterSceneManager"); mSceneMgrPtr->setAmbientLight(Ogre::ColourValue(1, 1, 1)); Ogre::TexturePtr rendertexture = Ogre::TextureManager::getSingleton().createManual("RenderTex", "QTImageConverter", Ogre::TEX_TYPE_2D, mWidth, mHeight, 1, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET); mRttTex = rendertexture->getBuffer()->getRenderTarget(); // create our plane to set a texture to Ogre::Plane plane(Ogre::Vector3::UNIT_Z, 0); Ogre::MeshManager::getSingleton().createPlane("terrain", "QTImageConverter", plane, 100, 100, 1, 1, true, 1, 1, 1, Ogre::Vector3::UNIT_Y); // attach the plane to the scene manager and rotate it so the camera can see it mEntityTerrain = mSceneMgrPtr->createEntity("terrainEntity", "terrain"); Ogre::SceneNode* node = mSceneMgrPtr->getRootSceneNode()->createChildSceneNode(); node->attachObject(mEntityTerrain); mEntityTerrain->setCastShadows(false); Ogre::Camera* RTTCam = mSceneMgrPtr->createCamera("QTImageConverterCam"); RTTCam->setNearClipDistance(0.01F); RTTCam->setFarClipDistance(0); RTTCam->setAspectRatio(1); RTTCam->setFOVy(Ogre::Degree(90)); RTTCam->setPosition(0, 0, 50); RTTCam->lookAt(0, 0, 0); Ogre::Viewport *v = mRttTex->addViewport(RTTCam); v->setBackgroundColour(Ogre::ColourValue(1, 1, 1)); v->setClearEveryFrame(true); }
void OgreSubsystem::restart() { // save some stuff Ogre::Camera* cam = mViewport->getCamera(); Ogre::ColourValue back = mViewport->getBackgroundColour(); // get rid of the original window... mWindow->removeAllViewports(); mRoot->detachRenderTarget(mWindow->getName()); mWindow->destroy(); // and make a new one Ogre::NameValuePairList miscP; miscP["vsync"] = "false"; miscP["FSAA"] = "0"; miscP["gamma"] = "false"; miscP["border"] = "fixed"; miscP["colourDepth"] = "32"; miscP["monitorIndex"] = "0"; for (std::map<String, String>::iterator it = mParams.begin(); it != mParams.end(); ++it) { miscP[it->first] = it->second; } mCurrentParams = mParams; mWindow = mRoot->createRenderWindow((getGfxParameter("window_name") != "") ? getGfxParameter("window_name") : "OryxEngine Application", mResolutionX,mResolutionY,mFullscreen,&miscP); mWindow->setActive(true); mViewport = mWindow->addViewport(cam); mViewport->setBackgroundColour(back); cam->setAspectRatio(Ogre::Real(mViewport->getActualWidth()) / Ogre::Real(mViewport->getActualHeight())); mNeedsRestart = false; }
void OgreApplication::windowResized(Ogre::RenderWindow* rw){ /* Update the window and aspect ratio when the window is resized */ int width = rw->getWidth(); int height = rw->getHeight(); Ogre::SceneManager* scene_manager = ogre_root_->getSceneManager("MySceneManager"); Ogre::Camera* camera = scene_manager->getCamera("MyCamera"); if (camera != NULL){ //std::cout << "1 " << (double)width/height << std::endl; camera->setAspectRatio((double)width/height); } const OIS::MouseState &ms = mouse_->getMouseState(); ms.width = width; ms.height = height; ogre_window_->resize(width, height); ogre_window_->windowMovedOrResized(); ogre_window_->update(); }