У чому полягають використання растерізації програмного забезпечення в сучасних ігрових двигунах?


9

Я проходжу курс комп’ютерної графіки в цьому кварталі. Один з наших лабораторних проектів стосується растеризації програмного забезпечення.

Зараз я планую проектну пропозицію і думаю про те, як зробити її корисною для інших людей у ​​розвитку сучасної гри.

Після короткого пошуку я навчився методиці під назвою "Оклюзія програмного забезпечення". Це робить програмне забезпечення растерізації на буферах різної роздільної здатності. І ми можемо запитувати оклюзію, використовуючи ієрархічні буфери z.

Моє запитання : Якими є використання растеризації програмного забезпечення в сучасних ігрових системах, окрім програмного окулювання програм?

Відповіді:


4

Наскільки мені відомо, програма Occlusion Culling (про яку ви вже згадували) - це майже єдине, для чого все-таки використовувався би растер-програміст. Procworld використовує аналогічну техніку для показу своїх величезних середовищ вокселів.

Більшість інших методів відміни, як-от винищування фрусту, працюють над процесором, але, якщо дотримуватися цього прикладу, тест на фрустум відбувається на рівні об'єкта, ймовірно, з осям, обмеженим віссю (AABB). Цей тест на перехрестя набагато простіше, ніж використання повнорозмірного програмного растеризатора.

У певних випадках програмна растерізація може використовуватися для вибору об'єктів мишею. У ігрових двигунах це часто вирішується за допомогою двигуна фізики та зіткнення променів-трикутників зі спрощеною сіткою.

Оскільки процесор простоює, поки чекає GPU в сучасних інтерактивних 3D-програмах, можна подумати, що ці корисні цикли можуть бути корисними для візуалізації процесора за допомогою програмного растризатора. Проблема тут, крім того, що візуалізація стає жахливо складною і складною, часто буде пропускною здатністю. Зображення, надані в центральному процесорі, потрібно перенести до GPU, перш ніж відобразитись, що може скасувати перевагу.


0

Ігри з поняттям «туман війни» часто мають сітку видимості для визначення стану воєнного туману в кожному місці. Растеризація іноді використовується для зміни туману воєнного стану для конкретних фігур на сітці.

Наприклад, використовуючи здатність, яка розкриває коло карти із певним радіусом, або, можливо, щось, що розкриває квадрат.

Не суворо графіка, але, безумовно, використання растеризації в сучасних іграх, і техніка, яку я бачив, що використовується в RTS.

Інші дані на основі сітки в іграх можуть використовувати растерізацію для подібних ситуацій.


-2

Растерізація - це величезна тема з багатьма частинами, і я не програміст двигунів, але я зроблю все можливе, щоб дати якийсь огляд (це буде далеко не повним списком!).

Деякі дуже елементарні, низькі рівні включають:

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

Більш вдосконалені речі, які використовуються в іграх, включають:

  • Тесселяція : насправді дуже схожа на LOD (див. Нижче), але тепер остання версія DirectX представила тесселяцію, яка забезпечує автоматичне поділ або зменшення сітки. Це дає величезний поштовх у графічній продуктивності, оскільки ви можете отримати поліси, якщо вони вам потрібні, і позбутися від них, якщо ви більше не хочете їх.
  • LOD : Система рівня деталізації замінює сітку об'єкта на основі відстані між об'єктом та камерою. наприклад, у вашого персонажа три сітки: одна з 10 000, одна з 5000 та інша з 1000 полісами. якщо ви залишаєтесь прямо перед ним, відображається сітка з високою роздільною здатністю (10000 поліс), якщо ви віддаляєтесь, через 100 м символ замінюється на сітку середнього рівня, а ще через 100 м її замінює сітка низької роздільної здатності. Замість заміни сітки можна зменшити її, але це було б складніше кодувати.
  • розділи бінарного простору : простір розділено на два томи. це буде повторюватися, поки ви не досягнете своєї мети, наприклад, поки пробіл не містить лише поліси, які слід намалювати на екрані
  • Портали та осередки : (він же виклик порталу) використовується в приміщенні сцени та / або стрільців від першої особи. Сцена поділяється на клітини (наприклад, кімнати будівлі), які з'єднані між собою порталами (наприклад, дверима). ви можете встановити портали відкритими та закритими.

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

Сюди входить лише декілька можливих технологій, які можна включити у ваш проект. так як у мене недостатньо репутації в stackexchange, я не можу надати багато посилань, але ви знайдете всі ці речі в google :)


2
Питання стосується програмної (читання: CPU) растерізації. Деяка інформація, яку ви надали, стосується растеризації взагалі, деякі методи - в моїй книзі - взагалі не мають нічого спільного з растерізацією. Не могли б ви уточнити у своїй відповіді, як використовуються методи растеризації програмного забезпечення або отримують їх користь?
Девід Курі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.