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


Динамическое связывание

Разработчики графики иногда создают крупные шейдеры общего назначения, которые могут использоваться различными элементами сцены. Во время выполнения шейдер условно выполняет код, соответствующий заданной ситуации. К сожалению, эти крупные шейдеры общего назначения используют регистры общего назначения (GDR) неэффективно и могут быть гораздо медленнее, чем небольшие, более целевые шейдеры.

Модель шейдера 5 решает эту проблему производительности, внедряя динамическое связывание шейдеров. Динамическое связывание разделяет фрагменты кода шейдера с помощью интерфейсов и виртуальных функций и позволяет приложению выбрать фрагмент для использования во время рисования. Это повышает производительность за счет привязки только необходимого кода шейдера, а не всего большого шейдера общего назначения.

В этом разделе

Элемент Описание
Хранение переменных и типов для совместного использования шейдеров
Описывает объект компоновки классов для хранения переменных и типов, которые могут совместно использовать несколько шейдеров.
Интерфейсы и классы
Описывает использование интерфейсов и классов HLSL для реализации динамического связывания.
Ограничения использования интерфейса
Описывает ограничения на использование интерфейсов в коде шейдера.

HLSL