Поделиться через


Практическое руководство. Экземпляр геометрического шейдера

Шейдер геометрии позволяет выполнять несколько выполнений одного и того же геометрического шейдера для каждого примитива. Чтобы экземпляр шейдера geometry, добавьте атрибут экземпляра в функцию main шейдера и определите параметр индекса экземпляра в теле функции шейдера.

Экземпляр шейдера геометрии:

  1. Добавьте атрибут экземпляра в функцию main.

    [instance(24)]
    

    Определяет количество экземпляров (не более 32), которые должны быть запущены для каждого примитива.

  2. Присоедините системное значение SV_GSInstanceID к переменной в списке параметров функции, которую можно использовать для отслеживания идентификатора выполняемого экземпляра.

    uint InstanceID : SV_GSInstanceID
    
  3. Скомпилируйте и создайте шейдер так же, как и любой другой геометрический шейдер.

Ниже приведены другие сведения.

  • Максимальное число экземпляров — 32.
  • Максимальное число вершин — это максимальное число вершин для каждого экземпляра.
  • Каждый вызов экземпляра (как и любой вызов геометрического шейдера) увеличивает число вызовов и создает неявное значение RestartStrip().

Возможности геометрического шейдера