Що робить шейдер геометрії?

admin | 5 Квітня, 2025


Етап Geometry Shader (GS). обробляє цілі примітиви: трикутники, лінії та точки разом із їхніми суміжними вершинами. Це корисно для таких алгоритмів, як розширення точки спрайту, динамічні системи частинок і генерація тіньового об’єму. Він підтримує підсилення та деампліфікацію геометрії. 20 жовтня 2022 р

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

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

На відміну від вершинних шейдерів, які працюють на одній вершині, вхідні дані геометричного шейдера є вершинами для повного примітиву (три вершини для трикутників, дві вершини для ліній або одна вершина для точки). Етап Geometry Shader (GS) здатний виводити кілька вершин, які утворюють єдину вибрану топологію.

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

Загальний консенсус такий шейдери геометрії не такі швидкі. Не застосовуйте їх до сотень тисяч або мільйонів примітивів і очікуйте значного підвищення продуктивності.