Как правильно подключить OGRE SDK? подключал по разным туториалам, при компановки выдаёт ошибки. не могли бы скинуть ссылку на годный тутор или написать здеся? буду благодарен петросян, и по совместительству программист на c#
Единственный годный тутор на офф сайте http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Setting+Up+An+Application Опиши среду и то какие ошибки возникают.
всё делаю в visual studio 2010, создаю системную переменную переменную OGRE_HOME, скачал и установил appWizard, в визуале появилась Ogre application создал проект, пытаюсь скомпилить вот этот код
//------------------------------------------------------------------------------------- BaseApplication::~BaseApplication(void) { if (mTrayMgr) delete mTrayMgr; if (mCameraMan) delete mCameraMan;
//Remove ourself as a Window listener Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this); windowClosed(mWindow); delete mRoot; }
//------------------------------------------------------------------------------------- bool BaseApplication::configure(void) { // Show the configuration dialog and initialise the system // You can skip this and use root.restoreConfig() to load configuration // settings if you were sure there are valid ones saved in ogre.cfg if(mRoot->showConfigDialog()) { // If returned true, user clicked OK so initialise // Here we choose to let the system create a default rendering window by passing 'true' mWindow = mRoot->initialise(true, "OgreApp1 Render Window");
// Let's add a nice window icon #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 HWND hwnd; mWindow->getCustomAttribute("WINDOW", (void*)&hwnd); LONG iconID = (LONG)LoadIcon( GetModuleHandle(0), MAKEINTRESOURCE(IDI_APPICON) ); SetClassLong( hwnd, GCL_HICON, iconID ); #endif return true; } else { return false; } } //------------------------------------------------------------------------------------- void BaseApplication::chooseSceneManager(void) { // Get the SceneManager, in this case a generic one mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC); } //------------------------------------------------------------------------------------- void BaseApplication::createCamera(void) { // Create the camera mCamera = mSceneMgr->createCamera("PlayerCam");
// Position it at 500 in Z direction mCamera->setPosition(Ogre::Vector3(0,0,80)); // Look back along -Z mCamera->lookAt(Ogre::Vector3(0,0,-300)); mCamera->setNearClipDistance(5);
mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller } //------------------------------------------------------------------------------------- void BaseApplication::createFrameListener(void) { Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***"); OIS::ParamList pl; size_t windowHnd = 0; std::ostringstream windowHndStr;
// Alter the camera aspect ratio to match the viewport mCamera->setAspectRatio( Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); } //------------------------------------------------------------------------------------- void BaseApplication::setupResources(void) { // Load resource paths from config file Ogre::ConfigFile cf; cf.load(mResourcesCfg);
// Go through all sections & settings in the file Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
//Need to capture/update each device mKeyboard->capture(); mMouse->capture();
mTrayMgr->frameRenderingQueued(evt);
if (!mTrayMgr->isDialogVisible()) { mCameraMan->frameRenderingQueued(evt); // if dialog isn't up, then update the camera if (mDetailsPanel->isVisible()) // if details panel is visible, then update its contents { mDetailsPanel->setParamValue(0, Ogre::StringConverter::toString(mCamera->getDerivedPosition().x)); mDetailsPanel->setParamValue(1, Ogre::StringConverter::toString(mCamera->getDerivedPosition().y)); mDetailsPanel->setParamValue(2, Ogre::StringConverter::toString(mCamera->getDerivedPosition().z)); mDetailsPanel->setParamValue(4, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().w)); mDetailsPanel->setParamValue(5, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().x)); mDetailsPanel->setParamValue(6, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().y)); mDetailsPanel->setParamValue(7, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().z)); } }
return true; } //------------------------------------------------------------------------------------- bool BaseApplication::keyPressed( const OIS::KeyEvent &arg ) { if (mTrayMgr->isDialogVisible()) return true; // don't process any more keys if dialog is up
if (arg.key == OIS::KC_F) // toggle visibility of advanced frame stats { mTrayMgr->toggleAdvancedFrameStats(); } else if (arg.key == OIS::KC_G) // toggle visibility of even rarer debugging details { if (mDetailsPanel->getTrayLocation() == OgreBites::TL_NONE) { mTrayMgr->moveWidgetToTray(mDetailsPanel, OgreBites::TL_TOPRIGHT, 0); mDetailsPanel->show(); } else { mTrayMgr->removeWidgetFromTray(mDetailsPanel); mDetailsPanel->hide(); } } else if (arg.key == OIS::KC_T) // cycle polygon rendering mode { Ogre::String newVal; Ogre::TextureFilterOptions tfo; unsigned int aniso;
//Unattach OIS before window shutdown (very important under Linux) void BaseApplication::windowClosed(Ogre::RenderWindow* rw) { //Only close for window that created OIS (the main window in these demos) if( rw == mWindow ) { if( mInputManager ) { mInputManager->destroyInputObject( mMouse ); mInputManager->destroyInputObject( mKeyboard );
половина в таком духе "7 IntelliSense: не удается открыть источник файл "boost/range.hpp" c:\ogresdk_vc10_v1-7-4\include\ogre\ogreiteratorrange.h 34 1" вторая в таком "12 IntelliSense: имя, за которым следует выражение "::", должно определять класс или пространство имен c:\ogresdk_vc10_v1-7-4\include\ogre\ogregpuprogramparams.h 352 3" при компиляции две вот такие ошибки "Ошибка 1 error C1083: Не удается открыть файл включение: boost/thread/tss.hpp: No such file or directory c:\ogresdk_vc10_v1-7-4\include\ogre\threading\ogrethreadheadersboost.h 29 1 OgreApp1 " петросян, и по совместительству программист на c#
Важно какая ошибка идет самой первой. Судя по тому что тебе компилятор выдает у тебя не подключен сам Ogre SDK, надо проверить его подключение. Для начала проверь правильность задания переменной, если все правильно, то проблемы с Визардом, но я им не разу не пользовался, так что помочь не смогу.
Еще можешь спросить на ogre.su/forum раздел "проблемы со сборкой".
А толку от этого кода?! Этот код класса BaseApplication, в проекте должен быть еще один файл с классом, который наследует BaseApplication и запускает все, т.е. функцию BaseApplication::go(), а также создает сцену, ведь она пустая, если не скачал OgreFramework , то скачай его на их сайте, там 4 файла, потом скопируй их в папку со своим проектом и запускай, и не забудь настроить свой проект. Это я описал, как работает как раз OgreFramework, но там можно будет под себя поменять, конечно. По настройке, вот видео - http://www.youtube.com/watch?v=6PteziHQQHQ