Руководство API скрипты

BillboardAsset

к Руководству

класс в UnityEngine / Наследует от: Object / Реализовано в: UnityEngine.CoreModule

Описание

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

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

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

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

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

X = (u - 0.5) * width
Y = v * height + bottom
Z = 0

Figure 1: How UV vertices are expanded to 3D vertices

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

Figure 2: How the eight billboard images are baked

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

После создания объекта BillboardAsset используйте BillboardRenderer для его рендеринга.

Свойства

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

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

BillboardAsset Создает новый BillboardAsset.

Публичные Методы

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

Унаследованные члены

Свойства

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

Публичные Методы

GetInstanceID Возвращает id экземпляра объекта.
ToString Возвращает имя объекта.

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

Destroy Удаляет игровой объект, компонент или актив.
DestroyImmediate Уничтожает объект obj. Вместо этого рекомендуется использовать метод Destroy.
DontDestroyOnLoad Не уничтожает целевой объект при загрузке новой сцены. .
FindObjectOfType Возвращает первый активный загруженный объект.
FindObjectsOfType Получает список всех загруженных объектов.
Instantiate Клонирует исходный объект и возвращает клон.

Операторы

bool Объект существует?
operator != Сравнивает, ссылаются ли два объекта на другой объект.
operator == Сравнивает две ссылки на объекты, чтобы определить, ссылаются ли они на один и тот же объект.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3