Compartilhar via


SampleGrad (objeto de textura HLSL directx)

Amostra uma textura usando um gradiente para influenciar a maneira como o local de exemplo é calculado.

<Template Type> Object.SampleGrad( sampler_state S, float Location, float DDX, float DDY [, int Offset] );

Parâmetros

Item Descrição
Objeto
Qualquer tipo de objeto de textura (exceto Texture2DMS e Texture2DMSArray).
S
[in] Um estado sampler. Esse é um objeto declarado em um arquivo de efeito que contém atribuições de estado.
Localização
[in] As coordenadas de textura. O tipo de argumento depende do tipo de objeto de textura.
Tipo de Texture-Object Tipo de parâmetro
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
Texture2DMS, Texture2DMSArray sem suporte

DDX

[in] A taxa de alteração da geometria da superfície na direção x. O tipo de argumento depende do tipo de objeto de textura.

Tipo de Texture-Object Tipo de parâmetro
Texture1D, Texture1DArray FLOAT
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray sem suporte

DDY

[in] A taxa de alteração da geometria da superfície na direção y. O tipo de argumento depende do tipo de objeto de textura.

Tipo de Texture-Object Tipo de parâmetro
Texture1D, Texture1DArray FLOAT
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray sem suporte

Deslocamento

[in] Um deslocamento de coordenada de textura opcional, que pode ser usado para qualquer tipo de objeto de textura. O deslocamento é aplicado ao local antes da amostragem. Use um deslocamento somente em um miplevel inteiro; caso contrário, você poderá obter resultados que não se traduzem bem em hardware. O tipo de argumento depende do tipo de objeto de textura. Para obter mais informações, consulteAplicando deslocamentos inteiros.

Tipo de Texture-Object Tipo de parâmetro
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray sem suporte
Texture2DMS, Texture2DMSArray sem suporte

Valor Retornado

O tipo de modelo da textura, que pode ser um vetor de componente único ou multicomponentes. O formato é baseado no DXGI_FORMAT da textura.

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

vs_4_0 vs_4_1 ps_4_0 ps_4_1 gs_4_0 gs_4_1
x x x x x x
  1. TextureCubeArray está disponível no Modelo de Sombreador 4.1 ou superior.
  2. O Modelo de Sombreador 4.1 está disponível no Direct3D 10.1 ou superior.

Exemplo

Este exemplo de código parcial é do arquivo MotionBlur.fx no exemplo MotionBlur10.

// Object Declarations
Texture2D g_txDiffuse;

SamplerState g_samLinear
{
    Filter = ANISOTROPIC;
    MaxAnisotropy = 8;
    AddressU = Wrap;
    AddressV = Wrap;
};

struct VSSceneOut
{
    float4 Pos : SV_POSITION;
    float4 Color : COLOR0;
    float2 Tex : TEXCOORD;
    float2 Aniso : ANISOTROPY;
};

float4 PSSceneMain( VSSceneOut Input ) : SV_TARGET
{
    float2 ddx = Input.Aniso;
    float2 ddy = Input.Aniso;
    
    // Shader body calling the intrinsic function
    float4 diff = g_txDiffuse.SampleGrad( g_samLinear, Input.Tex, ddx, ddy);
    
    ...
}

Objeto Texture