Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 6: The Ogre Startup Sequence
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Метод Root::createRenderWindow может быть использован для создания RenderWindow из окна вы которое уже создали. cin 01.07.11 в 05:52 |
|
|
Больше информации по этой функции вы можете найти в API документации. proVIDec 29.06.11 в 08:31 |
||
|
ИНИЦИАЛИЗАЦИЯ РЕСУРСОВ proVIDec 29.06.11 в 08:29 |
||
|
Теперь, когда у нас есть наш объект Корень (Root) и наши объекты RenderSystem и RenderWindow, созданные и готовые, мы очень близко к тому, чтобы быть готовыми создать нашу сцену. ghostintheshell 11.07.11 в 08:28 |
||
|
Все, что нам осталось сделать, это инициализировать ресурсы, которые мы будем использовать. proVIDec 03.07.11 в 03:27 |
||
|
В очень большой игре или приложении, у нас могут быть сотни или даже тысячи ресурсов, которые наша игра использует - все от meshes до текстур к сценариям. ghostintheshell 11.07.11 в 08:33 |
||
|
В любой момент времени, хотя, мы, вероятно, будем только использовать маленькое подмножество этих ресурсов. ghostintheshell 11.07.11 в 08:36 |
||
|
Чтобы задержать рост требований к памяти, мы можем загрузить только ресурсы, которые использует наше приложение. ghostintheshell 11.07.11 в 08:40 |
||
|
Мы делаем это, разделяя ресурсы на секции и только инициализируя их, поскольку мы идём. ghostintheshell 11.07.11 в 08:42 |
||
|
Мы не будем охватывать это в этой обучающей программе, как бы то ни было. Смотри Resources (Ресурсы) и ResourceManagers (мененджер ресусов) для полной обучающей программы, посвященной ресурсам. ghostintheshell 11.07.11 в 08:46 |
||
|
Прежде, чем мы будем инициализировать ресурсы, мы должны также определить номер по умолчанию mipmaps который используют текстуры. ghostintheshell 11.07.11 в 08:52 |
||
|
Мы должны установить это прежде, чем мы будем инициализировать ресурсы для этого, чтобы иметь любой эффект. ghostintheshell 11.07.11 в 08:56 |
||
|
Добавьте следующий код в BasicTutorial6::go: proVIDec 30.06.11 в 05:31 |
||
|
Теперь мы инициализировали все группы ресурсов для приложения и готовы использовать его. proVIDec 30.06.11 в 05:32 |
||
|
СОЗДАНИЕ СЦЕНЫ proVIDec 28.06.11 в 10:20 |
||
|
Далее нам нужно создать сцену. proVIDec 30.06.11 в 05:26 |
||
|
Вы должны знать, что есть три вещи, которые должны быть сделаны прежде, чем Вы начнете добавлять вещи к сцене: ghostintheshell 11.07.11 в 08:59 |
||
|
Перед продолжением давайте добавим, что еще многие включают в вершину нашего файла BasicTutorial6.cpp: ghostintheshell 11.07.11 в 09:01 |
+1 | |
|
СОЗДАНИЕ SCENEMANSGER(менеджер сцен) ghostintheshell 11.07.11 в 09:02 |
||
|
Во-первых, добавьте нового частного участника данных к классу BasicTutorial6: ghostintheshell 11.07.11 в 09:03 |
||
|
И затем добавьте следующий код к BasicTutorial6::go: ghostintheshell 11.07.11 в 09:04 |
||
|
СОЗДАНИЕ КАМЕРЫ proVIDec 30.06.11 в 05:33 |
||
|
Во-первых, добавьте нового частного участника данных к классу BasicTutorial6: ghostintheshell 11.07.11 в 09:05 |
||
|
А затем добавьте вот этот код в BasicTutorial6::go: proVIDec 30.06.11 в 05:34 |
||
|
ДОБАВЛЕНИЕ VIEWPORT(окно просмотра) ghostintheshell 11.07.11 в 09:06 |
||
|
СОЗДАНИЕ СЦЕН proVIDec 30.06.11 в 05:33 |
||
|
Вы можете создать так много SceneManagers, как Вам нравится и так много Камер сколько вы хотите, но Вы должны быть осторожными, что, когда Вы фактически хотите рендерить что-то на экране, используя Камеру, Вы должны добавить Viewport для него. ghostintheshell 11.07.11 в 09:08 |
||
|
Давайте добавим что-то к нашей сцене, теперь, когда мы позаботились об основах. ghostintheshell 11.07.11 в 09:09 |
||
|
Найдите функцию BasicTutorial6::go и добавьте в нее код: proVIDec 30.06.11 в 05:34 |
||
|
Мы должны включить OgreEntity в код, чтобы компилировать безошибочнр, так что добавьте эту строку к верху 'BasicTutorial6.cpp': ghostintheshell 11.07.11 в 09:12 |
||
|
ЦИКЛ РЕНДЕРИНГА - БРАТЬ ОДИН ghostintheshell 11.07.11 в 09:17 |
||
|
Чтобы восхищаться нашей работой до сих пор, мы должны сделать рендеринг нашей сцены. ghostintheshell 11.07.11 в 09:20 |
||
|
Ogre::Root особенность несколько методов, чтобы начать рендерить цикл, самым простым из которых является Ogre::Root::renderOneFrame(). ghostintheshell 11.07.11 в 09:25 |
||
|
Это в основном циклы до функции в ложных возвращениях цикла. ghostintheshell 11.07.11 в 09:27 |
||
|
Вот то, как это выглядит: ghostintheshell 11.07.11 в 09:28 |
||
|
Мы не будем проникать в неприукрашенные детали той функции, только указывать на функцию renderOneFrame. ghostintheshell 11.07.11 в 09:30 |
||
|
Мы кратко посмотрели на эту функцию в Основной Обучающей программе 4, но давайте рассмотрим это снова: ghostintheshell 11.07.11 в 09:31 |
||
|
Помимо обновления всех объектов рендеринга, она вызывает функции событий фрейма, и если любая из них вернет ложное значение, это вызовет выход из цикла. wuffur 11.07.11 в 09:39 |
||
|
Поскольку мы до сих пор не использовали экземпляров FrameListener, нам нужен альтернативный цикл рендеринга. wuffur 11.07.11 в 09:40 Так как мы еще не используем FrameListeners, мы нуждаемся в альтернативе цикла рендеринга. ghostintheshell 11.07.11 в 09:42 |
+1 | |
|
Добавьте эту линию в список подключаемых заголовочных файлов вверх нашего файла BasicTutorial6.cpp: wuffur 11.07.11 в 09:43 Добавьте эту строку к списку включений (includes)наверху нашего файла BasicTutorial6.cpp: ghostintheshell 11.07.11 в 09:45 |
+3 | |
|
Поместите это в BasicTutorial6::go функцию: ghostintheshell 11.07.11 в 09:46 |
||
|
Это будет циклично многократно, пока окно не закрывается, или renderOneFrame функция вернёт ложные значения. ghostintheshell 11.07.11 в 09:49 Цикл будет проходить снова и снова, до тех пор пока ни закроется окно, и функция renderOneFrame вернет ложное значение wuffur 11.07.11 в 09:51 |
+1 | |
|
Скомпилируйте и запустите приложение. proVIDec 30.06.11 в 05:34 |
||
|
Вы должны видеть окно и голову огра в нем. proVIDec 30.06.11 в 05:35 |
||
|
Вы должны нажаль на кнопку закрытия, чтобы выйти из приложения, потому что мы еще не выполнили входную функциональность. ghostintheshell 11.07.11 в 09:54 Вам нужно нажать кнопку закрыть(close), чтобы выйти из приложения, поскольку мы до сих пор не реализовали никаких средств для ввода значений. wuffur 11.07.11 в 09:54 |
||
|
OIS proVIDec 30.06.11 в 05:34 |
||
|
Хотя это и не единственный вариант для ввода в OGRE, OIS - один из лучших. wuffur 11.07.11 в 09:56 Хотя это не единственная вариант для входа в Ogre, OIS - один из лучших. ghostintheshell 11.07.11 в 09:56 |
+2 | |
|
Мы кратко рассмотрим как к OIS запускается в Вашем приложении. ghostintheshell 11.07.11 в 09:57 |
||
|
Для фактического использования библиотеки Вы должны проверить различные обучающие программы здесь (которые используют ее экстенсивно), и документацию OIS непосредственно. ghostintheshell 11.07.11 в 10:00 Для реального использования этой библиотеки, вам следует проверить различные руководства здесь(которые ее широко использует) и саму документацию по OIS. wuffur 11.07.11 в 10:02 |
+1 | |
|
Поместите следующие включения в BasicTutorial6.h: ghostintheshell 11.07.11 в 10:01 Расположите следующие директивы подключения заголовочных файлов в файл BasicTutorial6.h: wuffur 11.07.11 в 10:04 |
