Программирование графики с использованием Direct3D

       

Декалы


Декал (decal) — это текстура, добавляемая к сцене без присоединения к грани или сетке. Декалы визуализируются в сцене в соответствии с их местоположением, благодаря чему они увеличиваются или уменьшаются в зависимости от расстояния до зрителя. Декалы также подчиняются правилам скрытия невидимых поверхностей. Если декал находится позади объекта, он закрывается этим объектом.

Декалы имеют один существенный недостаток: они всегда расположены лицевой поверхностью к зрителю и не могут просматриваться с разных углов. Это значительно ограничивает область их применения. Если их расположить вдалеке от камеры, они могли бы использоваться, например, для представления картин в сцене музея или мониторов в рубке космического корабля.

Несмотря на указанный недостаток, декалы полезны при визуализации двумерных объектов сцены. Эффекты, реализация которых посредством сеток и граней оказывается слишком ресурсоемкой (например, взрывы) часто могут быть эффективно реализованы с применением декалов.

Интерфейс Direct3DRMTexture предоставляет ряд функций для работы с декалами:

  • GetDecalOrigin()
  • GetDecalScale()
  • GetDecalSize()
  • GetDecalTransparency()
  • GetDecalTransparentColor()
  • SetDecalOrigin()
  • SetDecalScale()
  • SetDecalSize()
  • SetDecalTransparency()
  • SetDecalTransparentColor()

  • Во всех рассмотренных до данного момента демонстрационных программах текстуры назначались интерфейсу Direct3DRMMeshBuilder, а затем конструктор сеток присоединялся к фрейму функцией AddVisual() интерфейса Direct3DRMFrame.

    В этом разделе мы введем и обсудим понятие декала. Декал— это текстура, которая добавляется непосредственно к сцене. Декалы в сцене выглядят точно также, как и в графическом редакторе; они не могут быть обернуты вокруг объектов сцены. Можно перемещать и масштабировать декалы, но их нельзя вращать; декалы всегда повернуты к камере своей лицевой поверхностью. Этот факт ограничивает полезность декалов, но их все равно удобно применять для добавления к сцене двумерных элементов. Например, часто в приложениях с помощью декалов изображают взрывы, поскольку использование для изображения взрывов граней и сеток требует слишком большого количества ресурсов.

    СОВЕТ О декалах. Некоторые из функций интерфейса Direct3DRMTexture используют слово «decal», и декалы реализуются с помощью интерфейса Direct3DRMTexture. Интерфейса Direct3DRMDecal не существует.



    Содержание раздела