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.
|
||||||||||||
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.
|
||||||||||||
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.
|
||||||||||||
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.
|
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 |
- TextureCubeArray está disponível no Modelo de Sombreador 4.1 ou superior.
- 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);
...
}