Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 6: The Ogre Startup Sequence
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
КРАТКОЕ СОДЕРЖАНИЕ proVIDec 28.06.11 в 10:24 ВВЕДЕНИЕ В УРОК cin 30.06.11 в 14:32 |
|
|
В этом туториале в узнаете как написать простое Ogre приложение с нуля. proVIDec 28.06.11 в 06:53 |
||
|
ДЛЯ НАЧАЛА proVIDec 28.06.11 в 10:18 |
||
|
ПЕРВОНАЧАЛЬНЫЙ КОД cin 28.06.11 в 12:30 |
||
|
В этом туториале простой каркас станет для нас отправной точкой. proVIDec 28.06.11 в 13:01 |
+2 | |
|
ПРЕДУПРЕЖДЕНИЕ cin 28.06.11 в 12:33 |
||
|
Убедитесь, что вы можете скомпилировать этот код, прежде чем продолжать. cin 28.06.11 в 12:35 |
||
|
Код будет вообще ничего не делать - он будет выходить сразу после запуска. cin 28.06.11 в 12:35 |
||
|
Не волнуйтесь, после того как пройдёте через это руководство, мы выйдем на полнофункциональные приложения OGRE. cin 28.06.11 в 12:37 |
||
|
ВНУТРЕННИЙ ПРОЦЕСС ПО ПУНКТАМ proVIDec 28.06.11 в 14:12 ПРОЦЕСС ЗАПУСКА ИЗНУТРИ cin 29.06.11 в 09:07 КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА ЗАПУСКА wuffur 11.07.11 в 09:32 |
+3 | |
|
Как только вы поймете, что за процессы скрыты от ваших глаз, работать с Ogre станет гораздо легче. proVIDec 28.06.11 в 14:25 Как только вы поймете, что за процессы происходят "внутри", запустить Ogre станет гораздо легче. cin 29.06.11 в 09:09 |
||
|
Каркас примера выглядит сложным на первый взгляд, поскольку он пытается сделать много вещей которые могут и не быть необходимы для вашего приложения. cin 28.06.11 в 12:40 |
||
|
После завершения этого урока, вы сможете выбрать то, что именно необходимо для вашего приложения и вы можете создать класс именно с этим. cin 28.06.11 в 12:42 |
||
|
Прежде чем мы углубимся в это, мы сначала сделаем краткий обзор того, как работает процесс запуска на высоком уровне. cin 28.06.11 в 12:42 |
||
|
Базовый жизненный цикл Ogre выглядит подобно этому: cin 28.06.11 в 12:43 |
||
|
1.Создать объект Root. cin 28.06.11 в 12:44 |
||
|
2.Определить ресурсы которые Ogre будет использовать. cin 28.06.11 в 12:44 |
||
|
3.Выбрать и настроить систему рендеринга (DirectX, OpenGL, и так далее). cin 28.06.11 в 12:45 |
||
|
4.Создать окно рендеринга (RenderWindow) (окно в котором Ogre рисует всё). cin 28.06.11 в 12:47 |
||
|
5.Инициализировать все ресурсы которые вы будете использовать. cin 28.06.11 в 12:47 |
||
|
6.Создать сцену из этих ресурсов. cin 28.06.11 в 12:48 |
||
|
7.Настроить все остальные библиотеки и плагины. cin 28.06.11 в 12:49 |
||
|
8.Создать любое количество кадровых контроллеров. cin 28.06.11 в 12:50 8.Создать любое количество обработчиков кадров. cin 30.06.11 в 14:52 |
+3 | |
|
9.Запустить цикл рендеринга. cin 28.06.11 в 12:50 |
||
|
В этом туториале мы коснемся каждого из этих пунктов. proVIDec 28.06.11 в 15:09 В этом уроке мы пройдемся по каждому пункту довольно глубоко. cin 30.06.11 в 14:46 |
||
|
Обратите внимание что, вы должны сделать шаги 1-4 в по порядку, шаги 5 и 6 (инициализация ресурсов и создание сцены) можно позже встроить в ваш процесс запуска, если вам нравится. cin 30.06.11 в 14:20 |
||
|
Вы должны инициализировать плагины и создать "слушателей кадров" перед шагами 5 и 6 если вы этого хотите, но вы не должны делать это до окончания шага 4. cin 30.06.11 в 14:23 |
||
|
Кроме того, слушатели кадров / сторонние библиотеки не смогут получить доступ к любым связанным с ними игровым ресурсам (таких, как камеры, сущности и т.д.), до тех пор пока ресурсы подготовлены, и создана сцена. cin 30.06.11 в 14:28 |
+2 | |
|
Короче говоря, вы можете сделать некоторые из этих шагов не по порядку, если вы чувствуете, что будет лучше для вашего приложения, но мы не рекомендуем делать этого, если вы не уверены, что вы понимаете последствия того, что вы делаете. cin 30.06.11 в 14:34 |
||
|
ЗАПУСК OGRE cin 30.06.11 в 14:34 |
||
|
СОЗДАНИЕ ОБЪЕКТА ROOT cin 30.06.11 в 14:35 |
||
|
Объект Root является ядром движка OGRE, и должен быть создан прежде чем вы начнёте что либо делать с движком. cin 30.06.11 в 14:36 |
||
|
Нам нужно добавить следующие члены в наш класс BasicTutorial6: cin 30.06.11 в 14:37 |
||
|
Также добавьте следующие строчки в заголовочный файл: cin 30.06.11 в 14:38 |
||
|
Затем настройте конструктор и деструктор для работы с ними: cin 30.06.11 в 14:40 |
||
|
И затем в BasicTutorial6::go мы создаём новый объект класса Ogre::Root: cin 30.06.11 в 14:41 |
||
|
Конструктор класса Ogre::Root принимает три параметра: cin 30.06.11 в 14:48 |
||
|
pluginFileName ("plugins.cfg") - полный путь к файлу где прописаны все плагины. cin 30.06.11 в 14:49 |
||
|
configFileName( "ogre.cfg") - полный путь к файлу конфигурации cin 30.06.11 в 14:50 |
||
|
logFileName("Ogre.log") - полный путь к файлу журнала движка в который OGRE записывает всё что происходит внутри него. cin 30.06.11 в 14:51 |
||
|
Мы могли бы оставить эти значения по умолчанию, но для того чтобы наше приложение работало с предварительно собранным OGRE SDK, где имя файла конфигурации плагинов отличается в зависимости от того в отладочном режиме (Debug) собран движок или окончательном (Release), мы должны передать наш параметр mPluginsCfg в конструктор, так как имя конфигурационного файла будет 'plugins_d.cfg' при запуске в режиме отладки. cin 30.06.11 в 15:09 |
+1 | |
|
Идем дальше - компилируем и запускаем наше приложение. cin 30.06.11 в 15:11 |
||
|
Выглядит так как будто ничего не происходит, но если вы откроете Ogre.log, то вы увидите то что Ogre запустился, инициализировался и завершил работу. cin 30.06.11 в 15:14 |
||
|
РЕСУРСЫ proVIDec 28.06.11 в 06:55 |
||
|
Примечание: В этом разделе будет намного больше смысла, если вы откроете "resources.cfg" и взгляните на него, прежде чем продолжите. cin 30.06.11 в 15:16 |
||
|
Вы можете найти это в каталоге bin/release вашего SDK. cin 30.06.11 в 15:17 |
||
|
Следующая вещь которую мы должны сделать - определить ресурсы используемые нашим приложением. cin 30.06.11 в 15:17 |
||
|
Это могут быть текстуры, модели, скрипты и прочее. proVIDec 28.06.11 в 16:06 |
||
|
Мы не будем проходить всё, что нужно знать о ресурсах в этом учебнике. cin 30.06.11 в 15:18 |
||
|
А пока просто имейте в виду, что сначала необходимо определить все ресурсы, которые можно использовать в приложении, и то, что вы должны инициализировать конкретные ресурсы, прежде чем Ogre может их использовать. cin 30.06.11 в 15:20 |
