AMDUnityPlugin
класс в UnityEngine.AMD
Выполнено в:UnityEngine.AMDModule
Описание
Предоставляет методы управления загрузкой и разгрузкой плагинов модуля AMD.
AMDUnityPlugin содержит реализацию для AMD's FidelityFX Super Resolution 2 (FSR2) временный upscaler.
Для доступа к этому API, выполните следующие действия:
- Откройте окно Package Manager
- Перейти к Встроенные пакеты.
- Включите пакет AMD.
После включения плагин автоматически загружается Unity и становится доступным для встроенных и пользовательских рабочих процессов интеграции FSR2.
Примечание: Вам не нужно использовать этот API, чтобы включить FSR2 в проекте Unity. Для получения дополнительной информации, см. HDRP Динамическое разрешение.AMDUnityPlugin позволяет продвинутым пользователям получить доступ и интегрировать AMD FSR2 функциональные возможности непосредственно в пользовательские рабочие процессы рендеринга. Он предназначен в первую очередь для пользователей, которые хотят обойти встроенную интеграцию движка, доступную в High Definition Render Pipeline (HDRP) и реализовать свою собственную логику FSR2, например, через CustomPass или другие расширения Scriptable Render Pipeline (SRP).
При использовании этого API вручную, рекомендуется проверить, что плагин доступен с помощью AMDUnityPlugin.IsLoaded. В случае, если плагин не загружается автоматически (например, конечный пользователь не использует нативный пакет AMD), вы можете загрузить его вручную с помощью AMDUnityPlugin.Load.
Дополнительные ресурсы: FSR2Context, GraphicsDevice, CommandBuffer, ScriptableRenderContext.
using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.HighDefinition; using UnityEngine.AMD;
// Example HDRP custom pass public class CustomFSRPass : CustomPass { public static bool EnsureAMDPluginLoaded() { if (!AMDUnityPlugin.IsLoaded()) { Debug.Log("AMDUnityPlugin is not loaded!"); if (!AMDUnityPlugin.Load()) { Debug.LogError("Unable to load AMDUnityPlugin"); return false; } }
Debug.Log("AMDUnityPlugin is successfully loaded!"); return true; }
void InitializeAMDDevice() { if (!EnsureAMDPluginLoaded()) return;
// device initialization code }
protected override void Setup(ScriptableRenderContext renderContext, CommandBuffer cmd) { if (amdDevice == null) { InitializeAMDDevice(); } // other pass setup code }
protected override void Execute(CustomPassContext ctx) { // pass execution code }
protected override void Cleanup() { // pass cleanup code }
private GraphicsDevice amdDevice = null; // other member variables }