Bagikan melalui


SampleGrad (Objek Tekstur DirectX HLSL)

Sampel tekstur menggunakan gradien untuk memengaruhi cara lokasi sampel dihitung.

<Jenis> Templat Object.SampleGrad( sampler_state S, Lokasi float, float DDX, float DDY [, int Offset] );

Parameter

Item Deskripsi
Objek
Jenis objek tekstur apa pun (kecuali Texture2DMS dan Texture2DMSArray).
S
[in] Status Sampler. Ini adalah objek yang dideklarasikan dalam file efek yang berisi penetapan status.
Lokasi
[in] Koordinat tekstur. Jenis argumen tergantung pada jenis objek tekstur.
Jenis Texture-Object Jenis Parameter
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
Texture2DMS, Texture2DMSArray tidak didukung

DDX

[in] Tingkat perubahan geometri permukaan ke arah x. Jenis argumen tergantung pada jenis objek tekstur.

Jenis Texture-Object Jenis Parameter
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray tidak didukung

DDY

[in] Tingkat perubahan geometri permukaan ke arah y. Jenis argumen tergantung pada jenis objek tekstur.

Jenis Texture-Object Jenis Parameter
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray tidak didukung

Offset

[in] Offset koordinat tekstur opsional, yang dapat digunakan untuk jenis objek tekstur apa pun. Offset diterapkan ke lokasi sebelum pengambilan sampel. Gunakan offset hanya pada miplevel bilangan bulat; jika tidak, Anda mungkin mendapatkan hasil yang tidak diterjemahkan dengan baik ke perangkat keras. Jenis argumen tergantung pada jenis objek tekstur. Untuk informasi selengkapnya, lihatMenerapkan Offset Bilangan Bulat.

Jenis Texture-Object Jenis Parameter
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray tidak didukung
Texture2DMS, Texture2DMSArray tidak didukung

Tampilkan Nilai

Jenis templat tekstur, yang mungkin merupakan vektor tunggal atau multi-komponen. Format didasarkan pada DXGI_FORMAT tekstur.

Minimum Shader Model

Fungsi ini didukung dalam model shader berikut.

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 tersedia dalam Shader Model 4.1 atau yang lebih tinggi.
  2. Shader Model 4.1 tersedia di Direct3D 10.1 atau yang lebih tinggi.

Contoh

Contoh kode parsial ini berasal dari file MotionBlur.fx dalam Sampel 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);
    
    ...
}

Objek Tekstur