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


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.