Pull to refresh

Ogre 3D. Серия обучающих статей. Выпуск 1

Reading time3 min
Views21K
В топике прозвучала просьба написать какие-нибудь статьи про Ogre 3D.
В первой статье я расскажу о установке Ogre и создании простейшего приложения использующего Ogre.

Установка


Самый простой вариант, это скачать sdk с ogre3d.org, но sdk есть только последняя стабильная версия, а все новые вкусности есть только в trunk.
Опишу в кратце сборку и установку из исходников.
Понадобится:
Исходники огра из svn.ogre3d.org/svnroot/ogre/trunk
Зависимости: качаем отсюда Microsoft Visual C++ Dependencies Package (как Вы поняли, я буду описывать работу под VC++)
Cmake (возможно вы использовали для других проектов): http://cmake.org/
DirectX SDK (если вы хотите использовать в качестве рендера DirectX 3D, для OpenGL не требуется): http://msdn.microsoft.com/directx
Распаковываем архив с зависимостями в папку, куда сделали checkout исходников (в моем случае D:/TestGameEngine/ogre_trunk/) и собираем зависимости (проект для студии лежит в \ogre_trunk\Dependencies\src\ выберете проект для своей версии студии)

Теперь можно приступить к сборке самого огра.
Запустим Cmake, в верхнем поле укажем папку с исходниками, а в нижней куда сложить файлы проекта и результаты конфигурации, после чего нажимаем configure и указываем компилятор, которым будем собирать.
Возможно лог будет пестрить ошибками о не найденных зависимостях, тогда укажем в параметра Ogre→OGRE_DEPENDENCIES_DIR папку /ogre_trunk/Dependencies, после чего Cmake пропишет пути к lib и include файлам разных библиотек. Как видите, есть некоторые зависимости, которые не обязательны, но нужны для какой либо фичи в движке. Например можете указать путь к doxygen, для генерации документации, хотя ее можно посмотреть здесь

Я немного поменял опции сборки (например мне не нужен OpenGL рендер и проекты для сборки примеров)
Если вы поменяли опции то нажимаем Configure, и если не нашлось ошибок, то нажимаем Generate.

Теперь открываем сгенерированный проект в студии, у меня это \ogre_build\OGRE.sln
Можно собрать какой-либо отдельный компонент или сразу собрать ALL_BUILD. Проект Package собирать не нужно, это сборка установщика.

Когда устанавливаем SDK пути инклудов и lib файлов прописываются в студии автоматически, при сборке из исходников это надо сделать руками.
Прописываем в настройках студии пути инклудов:
\ogre_trunk\OgreMain\include
\ogre_build\include
\ogre_trunk\Dependencies\include

Файлы библиотек:
\ogre_build\lib\[Release|Debug](надо указать оба путя, но я использую только Release версию, поэтому указал только ее)


Так-же в последствии не забудем указать OgreMain.lib в опциях линкера у проекта.
На этом сборку огра можно считать законченной.

Создание простейшего приложения


Теперь создадим простой проект на Ogre.
Создадим Win32 Console Application.
Добавляем в код #include «Ogre.h»
и в код функции main добавляем
  1. Ogre::Root* mRoot = new Ogre::Root(); //создаем главный объект огра
  2. mRoot->showConfigDialog(); //Показываем диалог конфигурации огра, выбор настроек.
  3. Ogre::RenderWindow* mWindow = mRoot->initialise(true); //создаем окно рендеринга, параметр true говорит, о том, что нужно создать это окно, иначе его нужно создать вручную
  4. Ogre::SceneManager* mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC); //создаем сцену со стандартным менеджером сцены.
  5. while (1)
  6. {
  7.   MSG msg;
  8.   while (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
  9.   {
  10.     TranslateMessage(&msg);
  11.     DispatchMessage(&msg);
  12.   }
  13.   if (!mRoot->_fireFrameStarted())
  14.     break;
  15.   mRoot->_updateAllRenderTargets();
  16.   if (!mRoot->_fireFrameEnded())
  17.     break;
  18.   if (mWindow->isClosed())
  19.     break;
  20. }
  21.   window->destroy();
  22.   root->shutdown();

Скопируем в папку с exe файлом файлы OgreMain.dll, и файл рендер системы, например RenderSystem_Direct3D9.dll
так-же создадим plugins.cfg, в котором укажем
PluginFolder=.
Plugin=RenderSystem_Direct3D9

это укажет огру, какие дополнительные плагины загрузить во время инициализации

После запуска видим простейшее приложение на огре, которое показывает пустое окно.
На всякий случай выложу исходники и скомпилированный пример:
Исходник
Скомпилированные бинарники (сама программ+OgreMain.dll+RenderSystem_Direct3D9.dll)

В следующей статье расскажу о создание простейший сцены в огре.
Tags:
Hubs:
Total votes 51: ↑43 and ↓8+35
Comments11

Articles