Динамическое связывание
Разработчики графики иногда создают крупные шейдеры общего назначения, которые могут использоваться различными элементами сцены. Во время выполнения шейдер условно выполняет код, соответствующий заданной ситуации. К сожалению, эти крупные шейдеры общего назначения используют регистры общего назначения (GDR) неэффективно и могут быть гораздо медленнее, чем небольшие, более целевые шейдеры.
Модель шейдера 5 решает эту проблему производительности, внедряя динамическое связывание шейдеров. Динамическое связывание разделяет фрагменты кода шейдера с помощью интерфейсов и виртуальных функций и позволяет приложению выбрать фрагмент для использования во время рисования. Это повышает производительность за счет привязки только необходимого кода шейдера, а не всего большого шейдера общего назначения.
В этом разделе
Элемент | Описание |
---|---|
Хранение переменных и типов для совместного использования шейдеров |
Описывает объект компоновки классов для хранения переменных и типов, которые могут совместно использовать несколько шейдеров. |
Интерфейсы и классы |
Описывает использование интерфейсов и классов HLSL для реализации динамического связывания. |
Ограничения использования интерфейса |
Описывает ограничения на использование интерфейсов в коде шейдера. |