Unity 6.3
0 онлайн 78 гостей 3 в системе
Вход
Программирование в Unity Шаг 116 из 210

Нативный плагин API для компилятора шейдеров

Используйте Unity низкоуровневый компилятор шейдеров APIs для введения различных вариантов в шейдер. Это подход, основанный на событиях, в котором плагин получает обратные вызова, когда происходят определенные встроенные события.

Определение расширения доступа компилятора шейдеров, открытое Unity, находится в файле заголовка IUnityShaderCompilerAccess.h, расположенном в папке PluginAPI.

Примечание: Эти расширения в настоящее время поддерживаются только на D3D11. IUnityShaderCompilerAccess.h может только компилировать как C++. Попытка компилировать его, как C производит ошибка.

Расширение доступа компилятора шейдеров API

Для использования расширения отображения плагины должны экспортировать UnityShaderCompilerExtEvent. Дополнительные сведения о реализации API см. в комментариях к коду в файле заголовка IUnityShaderCompilerAccess.h.

Плагин получает обратный вызов через UnityShaderCompilerExtEvent всякий раз, когда Unity вызывает одно из встроенных событий. Возвратные вызова также могут быть добавлены к CommandBuffers через команды CommandBuffer.IssuePluginEventAndData или CommandBuffer.IssuePluginCustomBlit из скриптов.

Помимо базового программного интерфейса, нативные плагины в Unity может получать обратные вызова, когда происходят определенные события. Это в основном используется для реализации низкоуровневого рендеринга в вашем плагине и позволяет ему работать с многопоточной рендеринга Unity.

Интерфейс настройки доступа к компилятору шейдеров

Unity предоставляет (IUnityShaderCompilerExtPluginConfigure) — интерфейс для настройки доступа к компилятору шейдеров. Плагин может использовать его, чтобы зарезервировать собственные ключевые слова и настроить маски компилятора шейдерных и GPU-программ. От этого зависит, для каких типов шейдеров или GPU-программ будет вызываться плагин.

Дополнительные ресурсы