Какова цель буфера трафарета? Точнее, что такое трафарет в компьютерной графике?

Я много читал много слов о трафарете, и я не знаю, какова его истинная цель в компьютерной графике.

Увидев изображение в черно-белом режиме на wikipedia, у меня все еще есть проблемы с ним.

Почему мы используем трафарет или буфер трафарета, и какова разница с Z-буфером? Зачем использовать это слово, которое, кажется, имеет определенный смысл в графическом дизайне?

42 голоса | спросил jokoon 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 01:38:24 +0400 2010, 01:38:24

3 ответа


41

В своем первоначальном воплощении буфером трафарета был однобарабанный пиксель (т. е. черный или белый, но не серый) фреймбуфер. Вы могли бы сделать это так, как хотите, как и любой другой фреймбуфер. Затем, позже, вы можете использовать содержимое этого буфера для «трафарета» или маскировки при рисовании в ваш обычный буфер.

Пример: предположим, вы делаете вождение. Вы хотите иметь небольшое зеркало заднего вида на экране, которое показывает вам, что стоит за автомобилем. Вам нужно будет отобразить представление, указывающее за автомобилем, но вы хотите сделать это только в маленьком закругленном прямоугольнике зеркала заднего вида. Типичное решение:

  1. Отобразить округленную форму прямоугольника в буфере трафарета.
  2. Включить трафаретную печать.
  3. Отобразить обратный указательный вид на обычный буфер.

Затем трафарет будет маскироваться, чтобы вы только рисовали в форме зеркала.

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

ответил munificent 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 02:24:17 +0400 2010, 02:24:17
9

В дополнение к функциональному использованию буферов трафарета, которые уже обсуждались, буферы трафаретов также могут использоваться для оптимизации.

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

ответил jpaver 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 23:45:07 +0400 2010, 23:45:07
4

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

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

Это очень похоже на поведение в качестве глубинного тестирования с использованием z-буфера, тестирование трафарета - это истинный /ложный тест, и есть аналогичные настройки для контроля теста трафарета (pass, если больше /меньше /равно). Но вместо того, чтобы писать глубину, он обычно имеет заранее определенные значения, записанные на нем, или увеличиваются /уменьшаются при рисовании пикселей, как это используется в алгоритмах трафаретной тени.

ответил bluescrn 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 02:16:39 +0400 2010, 02:16:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132