Яке призначення буфера трафарету? Точніше, що таке трафарет у комп’ютерній графіці?


41

Я багато читаю слово трафарету, і не маю поняття, яке його справжнє призначення в комп'ютерній графіці.

Побачивши у вікіпедії малюнок чорно-білого кольору, у мене все ще виникають проблеми.

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


Чудове запитання, все, що я знаю, це використовується для відтворення тіней ... Але мені буде цікаво почути повне пояснення цього!
Ricket

Відповіді:


40

У своєму первісному втіленні буфер трафарету являв собою фреймбуфер з розміром один біт на піксель (тобто чорний або білий, але без сірого). Ви можете надати йому все, що завгодно, як і будь-який інший фреймбуфер. Потім, пізніше, ви можете використовувати вміст цього буфера для "трафарету" або маскувати його під час малювання до звичайного буфера.

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

  1. Надайте округлу форму прямокутника буфері трафарету.
  2. Увімкнути трафарет.
  3. Наведіть задній погляд в звичайний буфер.

Потім трафарет замаскує його так, що ви лише втяжете форму дзеркала.

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


10
Іншими словами, він в основному виконує ту ж функцію, що і трафарет у реальному житті, маскуючи деталі при нанесенні чорнила.
Кай

4
Практично всі пристрої підтримують 8-бітний буфер трафарету.
Кріс Хоу

Я насправді не розумію вашого прикладу, це наче є друга фрустрація? це раструє іншу частину сцени? Чи можете ви навести приклад із тінями?
jokoon

Це просто другий буфер кадру. Ви завжди можете змінити фруст перед тим, як зробити його (це, на мій погляд, тіньові системи), але це не є частиною основної концепції.
чудовий

9

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

Завдяки положенню тесту трафарету в графічному конвеєрі (який є перед затіненням пікселів), тестування трафаретів можна використовувати для вбивства пікселів, які виконують важкі затінення, коли вони не потрібні. Часто це можна зробити з більш крупною деталізацією, ніж просто один піксель, наприклад. плитка пікселів, тому робота часто може бути відкладена і на етапах грубої растрізації.


4

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

Це найпростіше, його можна використовувати як фізичний трафарет - маску, яка дозволяє пропускати деякі пікселі, а інші пікселі не змінюються.

За поведінкою він дуже схожий на z-буфер - як глибинне тестування, тестування трафаретів - це справжній / хибний тест, і для контролю тесту трафарету є аналогічні налаштування (пройти, якщо більший / менший / рівний). Але замість того, щоб записувати на неї глибину, зазвичай, у неї будуть записані заздалегідь задані значення або збільшуватися / зменшуватися під час малювання пікселів, як це використовується в алгоритмах тіньового трафарету.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.