Готовый перевод OGRE Manual / Руководство OGRE: 2.8 Overlays

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переведено на Нотабеноиде
http://notabenoid.org/book/137/1519

Переводчики: DCamer

Настройки

Готово:

100.00% КП = 1.0