Декал (decal) — это текстура, добавляемая к сцене без присоединения к грани или сетке. Декалы визуализируются в сцене в соответствии с их местоположением, благодаря чему они увеличиваются или уменьшаются в зависимости от расстояния до зрителя. Декалы также подчиняются правилам скрытия невидимых поверхностей. Если декал находится позади объекта, он закрывается этим объектом.
Декалы имеют один существенный недостаток: они всегда расположены лицевой поверхностью к зрителю и не могут просматриваться с разных углов. Это значительно ограничивает область их применения. Если их расположить вдалеке от камеры, они могли бы использоваться, например, для представления картин в сцене музея или мониторов в рубке космического корабля.
Несмотря на указанный недостаток, декалы полезны при визуализации двумерных объектов сцены. Эффекты, реализация которых посредством сеток и граней оказывается слишком ресурсоемкой (например, взрывы) часто могут быть эффективно реализованы с применением декалов.
Интерфейс Direct3DRMTexture предоставляет ряд функций для работы с декалами:
Во всех рассмотренных до данного момента демонстрационных программах текстуры назначались интерфейсу Direct3DRMMeshBuilder, а затем конструктор сеток присоединялся к фрейму функцией AddVisual() интерфейса Direct3DRMFrame.
В этом разделе мы введем и обсудим понятие декала. Декал— это текстура, которая добавляется непосредственно к сцене. Декалы в сцене выглядят точно также, как и в графическом редакторе; они не могут быть обернуты вокруг объектов сцены. Можно перемещать и масштабировать декалы, но их нельзя вращать; декалы всегда повернуты к камере своей лицевой поверхностью. Этот факт ограничивает полезность декалов, но их все равно удобно применять для добавления к сцене двумерных элементов. Например, часто в приложениях с помощью декалов изображают взрывы, поскольку использование для изображения взрывов граней и сеток требует слишком большого количества ресурсов.
СОВЕТ | О декалах. Некоторые из функций интерфейса Direct3DRMTexture используют слово «decal», и декалы реализуются с помощью интерфейса Direct3DRMTexture. Интерфейса Direct3DRMDecal не существует. |