SampleCmp (Objek Tekstur HLSL DirectX)

Sampel tekstur dan membandingkan satu komponen dengan nilai perbandingan yang ditentukan.

float Object.SampleCmp(
SamplerComparisonState S,
lokasi float,
float CompareValue,
[Int Offset]
);
 

Perbandingannya adalah perbandingan komponen tunggal antara komponen pertama yang disimpan dalam tekstur, dan nilai perbandingan yang diteruskan ke metode .

Metode ini hanya dapat dipanggil dari shader piksel; ini tidak didukung dalam vertex atau shader geometri.

Parameter

Objek

Jenis objek tekstur apa pun (kecuali Texture2DMS, Texture2DMSArray, atau Texture3D).

S

[in] Status perbandingan sampler, yang merupakan status sampler ditambah status perbandingan (fungsi perbandingan dan filter perbandingan). Lihat jenis sampler untuk detail dan contohnya.

Lokasi

[in] Koordinat tekstur. Jenis argumen tergantung pada jenis objek tekstur.

Jenis Texture-Object Jenis Parameter
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray¹, TextureCube float3
TextureCubeArray¹ float4

CompareValue

Nilai floating-point untuk digunakan sebagai nilai perbandingan.

Offset

[in] Offset koordinat tekstur opsional, yang dapat digunakan untuk jenis objek tekstur apa pun; offset diterapkan ke lokasi sebelum pengambilan sampel. Offset tekstur harus statis. Jenis argumen tergantung pada jenis objek tekstur. Untuk informasi selengkapnya, lihat Menerapkan offset koordinat tekstur.

Jenis Texture-Object Jenis Parameter
Texture1D, Texture1DArray int
Texture2D, Texture2DArray¹ int2
TextureCube, TextureCubeArray¹ Tidak didukung

Tampilkan Nilai

Mengembalikan nilai floating-point dalam rentang [0..1].

Untuk setiap texel yang diambil (berdasarkan konfigurasi sampler mode filter), SampleCmp melakukan perbandingan nilai z (komponen input ke-3) dari shader terhadap nilai texel (1 jika perbandingan lolos; jika tidak 0). SampleCmp kemudian memadukan 0 dan 1 hasil ini untuk setiap texel bersama-sama seperti dalam pemfilteran tekstur normal (bukan rata-rata) dan mengembalikan nilai [0,1] yang dihasilkan ke shader.

Keterangan

Pemfilteran perbandingan menyediakan operasi pemfilteran dasar yang berguna untuk pemfilteran persentase yang lebih dekat.

Saat menggunakan metode ini pada sumber daya floating-point (Alih-alih format yang dinormalisasi atau tidak ditandatangani, nilai perbandingan tidak secara otomatis dijepit antara 0,0 dan 1,0. Oleh karena itu, klem manual dari nilai perbandingan mungkin diperlukan untuk teknik bayangan umum.

Gunakan offset hanya pada miplevel bilangan bulat; jika tidak, Anda mungkin mendapatkan hasil yang berbeda tergantung pada implementasi perangkat keras atau pengaturan driver.

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
  1. Texture2DArray dan 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.

Catatan

SampleCmp juga tersedia dalam ps 4_0_level_9_1 dan 4_0_level_9_3 saat Anda menggunakan teknik yang dijelaskan dalam Menerapkan buffer bayangan untuk fitur Direct3D tingkat 9.

Objek Tekstur