D3DX. Отображение неровностей

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

Видеокарты являются одним из популярных видов электронного лома. Узнать условия сдачи электронных плат можно на сайте – Scraptraffic.com.

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

Оцените статью
radiochipi.ru
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я принимаю политику конфиденциальности.

Adblock
detector