Unity 6.3
0 онлайн 34 гостей 3 в системе
Вход

ShaderUtil.IsGraphicsAPISupported

Declaration

public static bool IsGraphicsAPISupported(Shader shader, ref Rendering.PassIdentifier passIdentifier, Rendering.GraphicsDeviceType graphicsAPI);

Параметры

Параметр Описание
шейдер Шейдер, к которому относится пропуск.
passIdentifier Идентификатор прохода в шейдере.
graphicsAPI Графика API для проверки.

Возвращаемое значение

логическое Если графика API поддерживается, возвращает true. В противном случае возвращает false.

Описание

Проверяет, поддерживает ли данный проход шейдера предоставленную графику API.

Используйте этот метод, чтобы проверить, имеет ли проход шейдера #pragma exclude_renderers или #pragma only_renderers, который исключает graphicsAPI.

ComputeShader FindComputeShader()
{
    return (ComputeShader)AssetDatabase.LoadAssetAtPath("Assets/Shaders/ShaderName.compute", typeof(ComputeShader));
}

public void CheckComputeShaderSupportsD3D11() { // Get a compute shader object to check var shader = FindComputeShader(); // Check whether it supports D3D11 bool supports = ShaderUtil.IsGraphicsAPISupported(shader, GraphicsDeviceType.Direct3D11); // Log the result Debug.Log("Compute shader supports D3D11: " + supports); }

Declaration

public static bool IsGraphicsAPISupported(ComputeShader shader, Rendering.GraphicsDeviceType graphicsAPI);

Параметры

Параметр Описание
шейдер Проверяемый шейдер.
graphicsAPI Графика API для проверки.

Возвращаемое значение

логическое Если графика API поддерживается, возвращает true. В противном случае возвращает false.

Описание

Проверяет, поддерживает ли данный вычислительный шейдер предоставленную графику API.

Используйте этот метод, чтобы проверить, имеет ли вычислительный шейдер #pragma exclude_renderers или #pragma only_renderers, который исключает graphicsAPI.

public void CheckShaderPassSupportsD3D11()
{
    // Get a shader object to check
    var shader = Shader.Find("Custom/ShaderName");
    // Check whether the first pass of the first subshader supports D3D11
    bool supports = ShaderUtil.IsGraphicsAPISupported(shader, new PassIdentifier(0, 0), GraphicsDeviceType.Direct3D11);
    // Log the result
    Debug.Log("Shader pass supports D3D11: " + supports);
}