Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аппаратные средства мультимедии.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.76 Mб
Скачать

5.1 Вершинные шейдеры

Видеосистема ПК

Естественным развитием блока T&L стал программируемый блок геометрических преобразований, поддерживающий вершинные шейдеры (Vertex Shader). Программируемый вершинный блок способен имитировать мимику персонажа, переливы меха, развевающиеся волосы, стелющуюся под ветром траву, и выполнять прочие геометрические преобразования, реализуя их на лету. Разработчик программы получает полный контроль над механизмами T&L и может использовать вершинные шейдеры для расчета вспомогательных геометрических данных, которые затем будут использовать пиксельные шейдеры. Например, программист пишет шейдер, в котором указывает, что его следует использовать для вершин треугольников, составляющих листок дерева. Графический процессор исполняет эту программу, и в результате листочек на дереве поворачивается на определенный угол в каждом кадре. Другой вариант использования вершинного шейдера связан с обработкой текстур. Например, шейдер изменяет текстурные координаты вершин полигонов, а в результате выражение лица персонажа изменяется от улыбки до плача за счет наложения других текстур. Программированию поддаются практически все параметры, связанные с обработкой вершин: помимо уже названных геометрических и текстурных координат можно задавать цвет вершины, параметры смешивания, прозрачность. Возможности шейдеров росли от версии к версии. Начиная с версии 3.0 (включены в API DirectX 9), шейдеры почти не ограничивают методы программирования, позволяя использовать в вычислениях текстуры и задавать уникальные свойства вершин. То есть вершинный блок графического процессора сейчас мало чем уступает по функциональности центральному процессору

5.2 Пиксельные шейдеры

Видеосистема ПК

Вершинные шейдеры при необходимости можно перенаправить на исполнение центральным процессором. С геометрическими расчетами мощный процессор справится без проблем. Но при выполнении пиксельного шейдера даже сверхмощный CPU задумается надолго, поскольку здесь происходит интенсивный обмен с памятью и сложные расчеты с использованием вещественных чисел. В задачах расчета освещения это ключевой момент: динамического диапазона стандартного 8-битного цвета для передачи всего богатства оттенков может не хватить. Поэтому обработкой пиксельных шейдеров практически всегда занимаются пиксельные конвейеры графического процессора. Использование пиксельных шейдеров позволило реализовать расчет освещенности объектов методом Фонга, обеспечивающим наивысшую на сегодняшний день реалистичность. Согласно методу Фонга, цвет участка поверхности рассчитывается раздельно в каждом из цветовых каналов и складывается из трех компонентов: фонового освещения (имитирующего естественный рассеянный свет), диффузного отражения (рассеянного света, отраженного от поверхности) и зеркального отражения (имитирующего направленное отражение). На практике фоновое освещение используют для того, чтобы подсветить излишне темные участки. Диффузное отражение соответствует отражению света от неровной поверхности. Подобная поверхность рассеивает падающий на нее свет практически равномерно по всем направлениям. Но, в отличие от фонового освещения, диффузное отражение учитывает направление на источник света. Главная изюминка метода Фонга кроется в расчете зеркального отражения, учитывающего не только направление на источник света, но и местоположение наблюдателя