Поделиться через


Сопоставление света с текстурами (Direct3D 9)

Чтобы приложение реалистично отображало трехмерную сцену, оно должно учитывать влияние, которое источники света имеют на внешний вид сцены. Хотя такие методы, как плоское и Гуруд затенение, являются ценными инструментами в этом отношении, они могут быть недостаточными для ваших нужд. Direct3D поддерживает многопроходную обработку и смешивание нескольких текстур. Эти возможности позволяют приложению отображать сцены с более реалистичным внешним видом, чем сцены, отрисованные только с помощью методов заливки. Применяя одну или несколько карт света, приложение может сопоставлять области света и тени с его примитивами.

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

Если вы реализуете сопоставление света с помощью многопассного смешения текстур, приложение должно отобразить карту света на примитивы на первом проходе. Он должен использовать второй проход для отрисовки базовой текстуры. Исключением из этого является спектрочное сопоставление света. В этом случае сначала отрисуйте базовую текстуру; затем добавьте световую карту.

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

С помощью карт освещения приложение Direct3D может достичь различных эффектов освещения при отрисовки примитивов. Он может отображать не только монохромные и цветные источники света в сцене, но и добавлять детали, такие как зеркальные блики и диффузное освещение.

Информация об использовании смешивания текстур Direct3D для выполнения световой карты представлена в следующих разделах.

Смешивание текстур