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

         

Декалы


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

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

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

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

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

Большинство этих функций используются только с декалами. Однако функции прозрачности применяются для управления прозрачностью и декалов и текстур, присоединенных к сеткам и граням.




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