Альфа-карты
Вы, наверное, уже использовали при разработке игр альфа-маски. Они позволяют получить текстуры с участками различной степени прозрачности. Альфа-карта (alpha map)— это маска для текстуры. Там, где в маске есть отверстия, сквозь них видна текстура. Где маска непрозрачна — текстура скрыта. Подумав вы поймете, что это фундаментальная тема.
Я имел смелость создать очень простую структуру, показанную на рис. A.25.
Рис. A.25. Простая текстура
Я знаю, что в текстуре нет ничего особенного, но она вполне соответствует текущим потребностям. Теперь притворимся, что в текстуре нет альфа-канала и вы накладываете ее поверх текстуры фона. Результат выполнения этих операций показан на рис. A.26.
Рис. A.26. Текстура, размещенная поверх фоновой текстуры
Надеюсь вы увидели явную проблему текстуры с мультипликационной рожицей. Это уродливый квадрат вокруг нее! Вызвано это тем, что в текстуре отсутствует альфа-канал и все, что находится под ней, скрывается до самых границ изображения.
Теперь вообразите, что мы взяли квадратный кусок картона и проделали в нем отверстие. В результате мы получили маску для мультипликационной рожицы. Поместите маску поверх изображения и вообразите, что все, что скрывает картон, невидимо. Результат показан на рис. A.27.
Рис. A.27. Текстура с альфа-маской, размещенная поверх фоновой текстуры
Па-пам! Посмотрите, как воображаемая картонная маска делает рамку вокруг текстуры невидимой. Теперь мы видим прелестную круглую мультипликационную рожицу. Достаточно резать воображаемый картон, пришла пора реальных дел!