Нові можливості directx 11 тесселяция

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

Традиційно, створення персонажів до моменту, як до них буде застосована полигональная сітка, просувається від Sub-D моделі до анімованої моделі з картами зміщення. Як тільки сітка буде застосована і навіть до того, як її направлять в GPU, вона буде розрахована відповідно до різними рівнями деталізації (LOD). Різні рівні LOD можуть використовуватися для різних класів апаратних засобів або вони можуть використовуватися, коли персонажі або інші настільки ж значимі об'єкти знаходяться далеко від гравця - це додає сцені більше деталей з мінімальними втратами в продуктивності.

Подібний виграш в продуктивності найбільш реальний для консольної розробки, тому що там апаратні засоби часто дуже обмежені. Для платформи ПК тесселяция приносить деяку істотну вигоду. І це є однією з причин, чому AMD представило апаратне забезпечення для тесселяції в Radeon HD 2900 XT, яке включено до складу всіх наступних GPU компанії. По суті воно поки що ще не використовувалося, але подібний крок AMD змусив індустрію більше дізнатися про потенційну вигоду, пропонованої апаратної тесселяції.

Процес тесселяції об'єкта починається в Hull Shader (інакше поверхневий шейдер) - він бере контрольні точки і потім обчислює необхідний рівень тесселяції. Після цього базисного перетворення контрольні точки відправляються в Domain Shader (інакше зональний або доменний, шейдер) - тесселятор нічого не знає про контрольні крапки.

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

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

Схожі статті