Я много читаю слово «трафарет» и понятия не имею, каково его истинное назначение в компьютерной графике.
Увидев черно-белое изображение в Википедии, у меня все еще есть проблемы с ним.
Почему мы используем трафаретный или трафаретный буфер, и в чем разница с Z-буфером? Зачем использовать это слово, которое, кажется, имеет какое-то значение в графическом дизайне?
Ответы:
В своем первоначальном воплощении трафаретный буфер представлял собой кадровый буфер размером один бит на пиксель (т.е. черный или белый, но без серого). Вы можете отображать на нем все, что захотите, как и любой другой фреймбуфер. Затем, позже, вы можете использовать содержимое этого буфера для «трафарета» или маскировки при рисовании в обычный буфер.
Пример: допустим, вы играете в вождение. Вы хотите, чтобы на экране было маленькое зеркало заднего вида, показывающее, что находится за автомобилем. Вам нужно будет визуализировать вид, указывающий за автомобилем, но вы хотите визуализировать его только в маленьком скругленном прямоугольнике зеркала заднего вида. Типичное решение:
Трафарет затем замаскирует его так, чтобы вы рисовали только в форме зеркала.
Теперь, когда конвейеры рендеринга стали намного более гибкими и программируемыми, трафаретные буферы используются как обычный 1-битный кадровый буфер, с которым вы можете делать все, что захотите. Тени являются частым случаем использования.
источник
В дополнение к функциональному использованию буферов трафарета, которые уже обсуждались, трафаретные буферы также могут быть использованы для оптимизации.
Из-за позиции теста трафарета в графическом конвейере (который предшествует затенению пикселей), тестирование трафарета может использоваться для уничтожения пикселей, которые выполняют тяжелую работу затенения, когда они не нужны. Часто это может быть сделано с большей степенью детализации, чем, например, один пиксель. мозаика пикселей, поэтому работа может часто отбраковываться и на этапах грубой растеризации.
источник
Это просто буфер, который контролирует, какие пиксели могут быть изменены при визуализации полигонов. Для каждого пикселя есть соответствующее значение трафарета, и пиксели могут быть условно изменены / проигнорированы в зависимости от этих значений
В простейшем случае его можно использовать как физический трафарет - маску, которая пропускает некоторые пиксели и останавливает изменение других пикселей.
По поведению он очень похож на z-буфер, например, тестирование глубины, тестирование трафарета является тестом «истина / ложь», и существуют аналогичные настройки для управления тестом трафарета (если оно больше / меньше / равно) Но вместо того, чтобы записывать в него глубину, обычно в него будут записываться заранее определенные значения или увеличиваться / уменьшаться при рисовании пикселей, как это используется в алгоритмах тени трафарета.
источник