Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 8: Multiple and Dual SceneManagers

← →
Английский оригинал Перевод на русский

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

КРАТКОЕ СОДЕРЖАНИЕ

proVIDec 28.06.11 в 10:24

0

В этом коротком туториале мы изучим, как переключаться между несколькими менеджерами сцены.

proVIDec 29.06.11 в 13:29

0

ДЛЯ НАЧАЛА

proVIDec 28.06.11 в 10:18

0

ПЕРВОНАЧАЛЬНЫЙ КОД

proVIDec 29.06.11 в 13:29

0

Измените заголовочный файл класса из Базового Руководства 8, чтобы он выглядел так.

wuffur 12.07.11 в 16:29

0

Убедитесь, что файл реализации из Базового Руководства 7, выглядит так.

wuffur 12.07.11 в 16:30

0

Убедитесь, что можете скомпилировать код, прежде чем продолжать. При запуске программы будет отображаться лишь черный экран. Нажмите Esc, чтобы выйти.

proVIDec 03.07.11 в 03:46

0

СОЗДАНИЕ ПРИЛОЖЕНИЯ

proVIDec 03.07.11 в 09:42

0

СОЗДАНИЕ МЕНЕДЖЕРОВ СЦЕНЫ

proVIDec 29.06.11 в 13:29

0

Мы уже описали то, как выбирать ваш SceneManager, поэтому я не буду подробно рассказывать об этой функции.

wuffur 12.07.11 в 16:31

0

Единственной вещью, которую мы изменили, является то, что мы создаем две из них.

wuffur 12.07.11 в 16:32

0

Найдите функцию chooseSceneManager и добавьте в нее следующий код:

proVIDec 03.07.11 в 09:38

0

СОЗДАНИЕ КАМЕР

proVIDec 29.06.11 в 13:29

0

Следующая вещь, которую нам нужно сделать - это создать объект Camera для каждого из двух экземпляров SceneManager.

wuffur 12.07.11 в 16:32

0

Единственное отличие от предыдущих разделов руководства является то, что мы создаем две из них с одинаковыми именами.

wuffur 12.07.11 в 16:33

0

Найдите функцию createCamera и добавьте следующий код:

wuffur 12.07.11 в 16:33

0

СОЗДАНИЕ ОБЛАСТЕЙ ПРОСМОТРА

cin 30.06.11 в 15:26

0

При создании Viewport для этого приложения, мы будем брать небольшое отступление от предыдущих руководств.

wuffur 15.07.11 в 17:42

0

Когда вы создаете Viewport, вы должны сделать две вещи: установить сам Viewport и затем установить соотношение геометрических размеров камеры, которую вы используете.

wuffur 15.07.11 в 17:43

0

Начнем с того, что добавим следующий код в функцию createViewports :

wuffur 15.07.11 в 17:44

0

Текущий код устанавливает принадлежность Viewport в нашей функции setupViewport(), так как мы используем этот код снова в другом месте.

wuffur 15.07.11 в 17:45

0

Первая вещь, которую нам нужно сделать это убрать все уже созданные объекты Viewport.

wuffur 15.07.11 в 17:46

0

Еще ничего не было создано, но когда мы позже снова вызовем эту функцию, нам нужна будет помощь, чтобы убедиться, что они убрали все, до того как создавать новые.

wuffur 15.07.11 в 17:47

0

После этого мы будем устанавливать Viewport как мы уже делали в предыдущих руководствах.

wuffur 15.07.11 в 17:48

0

Добавьте следующий код в функцию setupViewport() в верх этого файла:

wuffur 15.07.11 в 17:48

0

СОЗДАНИЕ СЦЕНЫ

cin 30.06.11 в 15:26

0

И наконец, нам нужно создать сцену для каждого SceneManager, чтобы на ней были объекты.

wuffur 15.07.11 в 17:49

0
+3

Мы не будем делать ничего сложного, просто кое-что отличное так как мы знаем, когда мы уже менялись местами между ними.

wuffur 15.07.11 в 17:55

0

Найдите функцию createScene и добавьте следующий код:

wuffur 15.07.11 в 17:56

0

Прежде чем продолжать, убедитесь, что ваш код компилируется.

proVIDec 30.06.11 в 05:25

0

Запуск программы должен показать космический skybox.

proVIDec 08.07.11 в 15:54

0

Пока это все.

proVIDec 03.07.11 в 03:48

0

ДОБАВЛЕНИЕ ФУНКЦИОНАЛЬНОСТИ

cin 30.06.11 в 15:26

0

ДВОЙНЫЕ МЕНЕДЖЕРЫ СЦЕНЫ

cin 30.06.11 в 15:26

0

Первая порция функциональности, которую нам нужно добавить в эту программы сделана, чтобы позволить пользователи рендерить оба объекта SceneManager бок о бок.

wuffur 15.07.11 в 18:02

0

Когда нажата кнопка V мы будем переключать двойной режим объекта Viewport.

wuffur 15.07.11 в 18:02

0

Основной план для этого прост.

wuffur 15.07.11 в 18:03

0
+1

Чтобы выключить режим Viewport, мы просто вызовем setupViewport(которой сделан в предыдущей секции) с главным SceneManager, чтобы переделать этот Viewport в одиночный режим.

wuffur 15.07.11 в 18:05

0

Когда мы хотим включить его, мы будем вызывать новую функцию, называемую dualViewport.

wuffur 15.07.11 в 18:05

0

Мы будем отслеживать состояние объекта Viewport с помощью переменной mDual.

wuffur 15.07.11 в 18:06

0

Добавьте следующий код в конец функции keyPressed():

wuffur 15.07.11 в 18:06

0

Теперь у нас переменная mDual переключена и вызвана соответствующая функция в зависимости от того, каком режиме мы находимся.

wuffur 15.07.11 в 18:08

0

Теперь мы будем определять функцию dualViewport(), которая на самом деле содержит код, который покажет вместе два объекта Viewport.

wuffur 15.07.11 в 18:09

0

Чтобы выводит два объекта SceneManager бок о бок, мы по существу сделаем ту же вещь, что мы уже делали с функцией setupViewport().

wuffur 15.07.11 в 18:10

0

Существует только одно отличие и оно состоит в том, что мы будем делать два объекта Viewport, по одному на каждую камеру в наших объектах SceneManager.

wuffur 15.07.11 в 18:11

0

Добавьте к функции dualViewport() следующий код :

wuffur 15.07.11 в 18:11

0

Все это уже должно быть вам знакома, за исключением дополнительных параметров, которые мы добавили в вызов функции addViewport.

wuffur 15.07.11 в 18:25

0

Первый параметр переданный в эту функции все еще объект Camera, который мы используем.

wuffur 15.07.11 в 18:26

0

Второй параметр - это направление по оси z объекта Viewport.

wuffur 15.07.11 в 18:27

0
+2

Более высокое положение на оси z расположено сверху более низкого положения на оси z.

wuffur 15.07.11 в 18:28

0
Минутку...

Следующая страница →