Коли відключити перспективну правильну інтерполяцію (неперспективна)


13

У GLSL стандартна правильна інтерполяція атрибутів вершин є типовою настройкою - вимкнути її для конкретних атрибутів вершин можна за допомогою неперспективного класифікатора. Окрім випадків, коли в шейдерах після обробки я ніколи не бачив вимкнення правильної інтерполяції в перспективі - чи є інші випадки використання? Крім того, чи це навіть має значення, ефективні?

Відповіді:


15

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

Або якщо ви робите нефотореалістичне візуалізацію і хочете візерунок у просторі екрану, як напівтонування , ви можете увімкнути noperspectiveсвої УФ-випромінювання, що використовуються для текстурування.

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

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