OGRE Manual / Руководство OGRE: 2.8 Overlays

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

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

Наложение позволяет сделать 2D- и 3D-элементы в верхней части обычного содержания сцены для создания эффектов, таких как над-головные экраны (HUD), системы меню, панели статуса и др.. Панель частоты кадров, которая входит в стандартную комплектацию OGRE - является примером наложения. Наложения могут содержать 2D и 3D элементы. 2D элементы используются для HUD, а 3D-элементы могут быть использованы для создания кабины или любого другого 3D-объекта, который вы хотели бы вынести в верхнюю часть остальной сцены.

DCamer 19.05.10 в 19:10

0

Вы можете создавать наложения либо через метод SceneManager::createOverlay, либо определив их в скрипте в формате .overlay. Последнее, наиболее удобно, поскольку его легче настроить (без необходимости перекомпиляции кода). Заметьте, что вы может определить столько, сколько хотите наложений: они все вначале скрыты, отобразить их можно, вызвав метод "show()". Вы можете также показать несколько наложений сразу, с их Z-порядоком вызвав метод Overlay::setZOrder().

DCamer 19.05.10 в 19:16

0

<b>Создание 2D-элементов</b>

DCamer 19.05.10 в 19:17

0

Класс OverlayElement тезис детальных 2D-элементов, которые будут добавлены к наложению. Все элементы, которые могут быть добавлены в наложение вытекают из этого класса. Это дает возможность (рекомендуется) пользователяи OGRE определить свои собственные подклассы OverlayElement в целях обеспечения собственных элементов управления. Основные общие черты всех OverlayElements такие вещи, как размер, положение, основные названия материала и т.д. Подклассы расширяют такое поведение для включения более сложные свойств и поведений.

DCamer 19.05.10 в 19:24

0

Важным встроенным подклассом OverlayElement является OverlayContainer. OverlayContainer то же, что и OverlayElement, он может содержать другие OverlayElements, группируя их вместе (позволяя им "прикатится" друг к другу, например) и предоставляя их локальные координаты для удобства в списке.

DCamer 19.05.10 в 19:26

0

Третий важный класс - OverlayManager. Всякий раз, когда приложение хочет создать двумерные элементы, чтобы добавить в наложение (или контейнер), то следует вызывать OverlayManager::createOverlayElement. Тип элемента, который вы хотите создать определяется строкой, по той причине, что она позволяет плагинам регистрировать новые типы OverlayElement без включения этих библиотек. Например, чтобы создать панель (простую прямоугольную область, которая может содержать другие OverlayElements) вы можете вызвать OverlayManager::getSingleton().createOverlayElement("Panel", "myNewPanel");

DCamer 19.05.10 в 19:37

0

<b>Добавление двумерных элементов в наложение</b>

DCamer 19.05.10 в 19:33

0

Только OverlayContainer может быть добавлен непосредственно в наложение. Причина в том, что каждый уровень устанавливает Z-порядок элементов в контейнере, поэтому если вы вставили несколько контейнеров, то внутренний контейнеры выше в Z-порядке, чем внешний, убедитесь, что они будут корректно отображаться. Чтобы добавить контейнер (например, панель) в наложения, просто вызовите Overlay::add2D.

DCamer 19.05.10 в 19:41

0

Если вы хотите добавить дочерние элементы в контейнер, вызовите OverlayContainer::addChild. Дочерние элементы могут быть самостоятельными OverlayElements или OverlayContainer. Помните, что положение дочернего элемента находится относительно левого верхнего угла, от его родителя.

DCamer 19.05.10 в 19:43

0

<b>Несколько слов о двумерных координатах</b>

DCamer 19.05.10 в 19:34

0

OGRE позволяет размещать и изменять размеры элементов на основе двух систем координат: <b>относительных (relative)</b> и <b>пиксельных (pixel)</b>.

DCamer 24.05.10 в 14:41

0

<i><b>Пиксельный режим</b></i>
Этот режим удобен, если вы хотите определить точные размеры элементов наложения, и эти элементы будут меньше, если увеличить разрешение экрана (на самом деле вы можете хотеть сделать так). В этом режиме единственным способом разместить что-то в середине, в правой или нижней части экрана, надежно в любом разрешении, заключается в использовании параметров выравнивания, в то время как в относительном режиме вы можете это сделать только с помощью правой относительной координаты. Этот режим очень прост, верхняя левая часть экрана (0,0) и правая нижняя часть экрана зависят от разрешения. Как уже упоминалось выше, вы можете использовать параметры выравнивания чтобы сделать горизонтальные и вертикальные координаты источника правой, нижней или центральной части экрана, если вы хотите разместить пиксельный элементы в этих местах, не зная разрешения.

DCamer 24.05.10 в 14:42

0

<i><b>Относительный режим</b></i>
Этот режим удобен, если вы хотите чтобы элементы наложения были того же размера, независимо от того, какое разрешение. В относительном режиме, верхняя левая часть экрана равна (0,0), а нижняя правая равна (1,1). Так что, если вы разместите элемент на (0,5, 0,5), это верхний левый угол находящийся точно в центре экрана, независимо от того, в каком разрешении приложение запущено. Тот же принцип применяется к размерам, если вы установите ширину элемента в 0,5, она охватит половину ширины экрана. Отметим, что поскольку соотношение сторон экрана, как правило, 1,3333 : 1 (ширина : высота), элемент с размерами (0,25, 0,25) не будет квадратным, а займет ровно 1/16-ую экрана в условной области. Если вы хотите чтобы он был квадратным вам придется компенсировать область используя типичные пропорции, например, используя (0,1875, 0,25).

DCamer 24.05.10 в 14:55

0

<b>Преобразование наложений</b>

DCamer 19.05.10 в 19:34

0

Еще одна приятная особенность наложений является возможность поворота, прокрутки и их масштаб в целом. Вы можете использовать это для увеличения/уменьшения системы меню, помещение его за кадр и другие приятные последствия. Смотрите методы Overlay::scroll, Overlay::rotate и Overlay::scale для получения дополнительной информации.

DCamer 24.05.10 в 14:57

0

<i><b>Заскриптованные наложения</b></i>
Наложение также могут быть определены в скриптах. Смотрите раздел 3.4 Заскриптованные наложения.

DCamer 24.05.10 в 14:58

0

<i><b>Системы GUI</b></i>
Наложения действительно предназначен только для работы с интерактивными элементами экрана, хотя вы можете использовать их как основу для GUI. Для более полного решения GUI, мы рекомендуем CEGui (http://www.cegui.org.uk), как показано в примере Demo_Gui.

DCamer 24.05.10 в 15:00

0
Минутку...