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


Интерфейсы шейдеров (графика Direct3D 10)

В этом разделе содержатся сведения о следующих интерфейсах шейдеров:

Каждый из этих интерфейсов шейдеров управляет скомпилированным шейдером. Интерфейс создается при компиляции шейдера, а затем передается различным API, которым требуется доступ к скомпилированному шейдеру; например, при привязке шейдера к этапу конвейера или получении подписи шейдера.

Интерфейсы Pipeline-Stage Описание
Интерфейс ID3D10GeometryShader Геометрический шейдер реализует примитивную обработку на этапе геометрического шейдера.
Интерфейс ID3D10PixelShader Пиксельный шейдер реализует каждый пиксельную обработку на этапе пиксельного шейдера.
Интерфейс ID3D10VertexShader Вершинный шейдер реализует обработку каждой вершины на этапе вершинного шейдера.

 

Интерфейсы отражения шейдера позволяют приложению проверять содержимое шейдера во время разработки или разработки. Отражение шейдера не полезно для задания переменных во время выполнения, так как оно является зеркало данных шейдера и поэтому не поддерживает методы для задания данных.

Интерфейсы Shader-Reflection Описание
Интерфейс ID3D10ShaderReflection COM-интерфейс для чтения сведений из скомпилированного шейдера во время разработки.
Интерфейс ID3D10ShaderReflectionConstantBuffer Вспомогательный интерфейс для получения интерфейса буфера констант отражения шейдера.
Интерфейс ID3D10ShaderReflectionType Вспомогательный интерфейс для получения интерфейса типа шейдер-отражения.
Интерфейс ID3D10ShaderReflectionVariable Вспомогательный интерфейс для получения интерфейса шейдер-отражения-переменной.
Интерфейс ID3D10ShaderResourceView Интерфейс отражения шейдера для чтения информации из представления шейдер-ресурса.

 

API отражения шейдера реализуют один интерфейс отражения COM-шейдера (ID3D10ShaderReflection Interface) и несколько вспомогательных интерфейсов, отличных от COM (остальные интерфейсы). Интерфейс ID3D10ShaderReflection создается при создании объекта отражения шейдера. Он соответствует стандартным правилам COM; Создание интерфейса увеличивает число ссылок, и интерфейс должен быть освобожден, когда он больше не нужен. Остальные интерфейсы отражения шейдера являются вспомогательными интерфейсами, которые не наследуются от IUnknown. Это означает, что они не изменяют количество ссылок при создании и не должны быть уничтожены после завершения работы с ними.

Справочник по шейдерам