Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход

BillboardAsset

класс в UnityEngine

Наследуется от:Object

Выполнено в:UnityEngine.CoreModule

Описание

BillboardAsset описывает, как отображается рекламный щит.

Билборды — это способ упрощённой отрисовки сложных 3D-объектов на большом расстоянии (метод уровня детализации, LOD). Поскольку объект далеко, его редко нужно отрисовывать со всей детализацией: он мал на экране и вряд ли окажется смысловым центром кадра. Вместо этого объект можно заранее отрендерить в текстуру и наложить её на очень простую плоскую геометрию, повёрнутую к камере (обычно на четырёхугольник), — это и есть билборд. На большом расстоянии ориентация объекта относительно камеры почти не меняется, поэтому билборд от кадра к кадру выглядит почти как сам объект и не требует перерисовки модели. Класс BillboardAsset позволяет создавать билборды, отрендеренные с нескольких направлений, благодаря чему BillboardAsset экономно представляет объект с низкой детализацией при любом примерно горизонтальном ракурсе.

BillboardAsset обычно создается путем импорта ресурсов SpeedTree. Вы также можете создать свой собственный, как только вы узнаете, как описан билборд.

Геометрия SpeedTree рекламного щита обычно более сложна, чем у обычного четырехугольника. Используя больше вершин для вырезания пустой части изображения рекламного щита, производительность рендеринга может быть потенциально улучшена из-за того, что графической системе не нужно рисовать столько избыточных прозрачных пикселей. Вы имеете доступ к данным геометрии через BillboardAsset.vertices и BillboardAsset.indices.

Все вершины рассматриваются в пространстве UV, поскольку геометрия должна быть текстурирована изображениями билбордов. Вершины UV легко расширяются до вершин пространства 3D, если знать ширину, высоту, дно билборда и направление, в котором он находится в данный момент. Предположим, что у нас есть билборд, расположенный в (0,0,0) и смотрящий на отрицательную ось Z, координаты пространства 3D рассчитываются следующим образом:

X = (u - 0.5) * ширина
Y = v * высота + внизу
Z = 0


Вершины пространства UV расширяются до вершин пространства 3D, с рекламным щитом SpeedTree на (0, 0, 0) в пространстве 3D.

Для того, чтобы отобразить что-то похожее на настоящую сетку 3D, размещенную на рекламных щитах, рекламные щиты SpeedTree выбирают соответствующее изображение из нескольких предварительно отображенных изображений в соответствии с текущим направлением просмотра.


Восемь изображений рекламного щита SpeedTree запекаются. Изображения создаются путем захвата рендируемого изображения дерева 3D под различными углами зрения, равномерно распределенными по оси Y. Первое изображение всегда начинается в положительном направлении оси X (или 0°, если вы представляете единичную окружность сверху).

Все изображения должны быть атласированы вместе в одной текстуре. Каждое изображение представлено как Vector4 из {левое u, верхняя часть, ширина в u, высота в v} в атласе. Вы имеете доступ ко всем изображениям через BillboardAsset.imageTexCoords. SpeedTree Modeler всегда экспортирует нормальную текстуру наряду с диффузной текстурой для еще лучшего приближения освещения, и он делит тот же макет атласа с диффузной текстурой.

Как только BillboardAsset будет построен, используйте BillboardRenderer чтобы представить его.

Свойства

Свойство Описание
bottomВысота рекламного щита, который находится под землей.
heightВысота щита.
imageCountКоличество предварительно отображенных изображений, которые могут быть переключены при просмотре рекламного щита под разными углами.
indexCountЧисло индексов в сетке рекламного щита.
materialМатериал, использованный для отображения.
vertexCountЧисло вершин в сетке рекламного щита.
widthШирина щита.

Конструкторы

Конструктор Описание
BillboardAssetСоздает новый BillboardAsset.

Открытые методы

Метод Описание
GetImageTexCoordsПолучить массив данных координат текстуры изображения билборда.
GetIndicesПолучить индексы сетки рекламного щита.
GetVerticesПолучить вершины сетки рекламного щита.
SetImageTexCoordsУстановите массив данных координат текстуры изображения билборда.
SetIndicesУстановить индексы сетки рекламного щита.
SetVerticesУстановить вершины сетки рекламного щита.
Унаследованные члены 4

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.