Программирование стратегических игр с DirectX 9.0

bda5893f

Альфа-карты


Вы, наверное, уже использовали при разработке игр альфа-маски. Они позволяют получить текстуры с участками различной степени прозрачности. Альфа-карта (alpha map)— это маска для текстуры. Там, где в маске есть отверстия, сквозь них видна текстура. Где маска непрозрачна — текстура скрыта. Подумав вы поймете, что это фундаментальная тема.

Я имел смелость создать очень простую структуру, показанную на рис. A.25.


Рис. A.25. Простая текстура

Я знаю, что в текстуре нет ничего особенного, но она вполне соответствует текущим потребностям. Теперь притворимся, что в текстуре нет альфа-канала и вы накладываете ее поверх текстуры фона. Результат выполнения этих операций показан на рис. A.26.


Рис. A.26. Текстура, размещенная поверх фоновой текстуры

Надеюсь вы увидели явную проблему текстуры с мультипликационной рожицей. Это уродливый квадрат вокруг нее! Вызвано это тем, что в текстуре отсутствует альфа-канал и все, что находится под ней, скрывается до самых границ изображения.

Теперь вообразите, что мы взяли квадратный кусок картона и проделали в нем отверстие. В результате мы получили маску для мультипликационной рожицы. Поместите маску поверх изображения и вообразите, что все, что скрывает картон, невидимо. Результат показан на рис. A.27.


Рис. A.27. Текстура с альфа-маской, размещенная поверх фоновой текстуры

Па-пам! Посмотрите, как воображаемая картонная маска делает рамку вокруг текстуры невидимой. Теперь мы видим прелестную круглую мультипликационную рожицу. Достаточно резать воображаемый картон, пришла пора реальных дел!



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