Fungsi sample(S,float,int,float) (referensi HLSL)

Sampel Texture2D dengan nilai opsional untuk menjepit nilai tingkat detail sampel (LOD).

Catatan

Membutuhkan model shader 5 atau lebih tinggi.

 

Sintaks

DXGI_FORMAT Sample(
  in SamplerState S,
  in float Location,
  in int Offset,
  in float Clamp
);

Parameter

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

 

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
Texture3D int3
TextureCube, TextureCubeArray tidak didukung

 

Penjepit [in]

Nilai opsional untuk menjepit sampel nilai LOD. Misalnya, jika Anda meneruskan 2,0f untuk nilai klem, Anda memastikan bahwa tidak ada sampel individual yang mengakses tingkat mip kurang dari 2,0f.

Mengembalikan nilai

Format tekstur, yang merupakan salah satu nilai yang ditik yang tercantum dalam DXGI_FORMAT.

Keterangan

Pengambilan sampel tekstur menggunakan posisi texel untuk mencari nilai texel. Offset dapat diterapkan ke posisi sebelum pencarian. Status sampler berisi opsi pengambilan sampel dan pemfilteran. Metode ini dapat dipanggil dalam shader piksel, tetapi tidak didukung dalam shader vertex atau shader geometri.

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

Menghitung Posisi Texel

Koordinat tekstur adalah nilai floating-point yang mereferensikan data tekstur, yang juga dikenal sebagai ruang tekstur yang dinormalisasi. Mode pembungkusan alamat diterapkan dalam urutan ini (koordinat tekstur + offset + mode bungkus) untuk memodifikasi koordinat tekstur di luar rentang [0...1].

Untuk array tekstur, nilai tambahan dalam parameter lokasi menentukan indeks ke dalam array tekstur. Indeks ini diperlakukan sebagai nilai float berskala (bukan ruang yang dinormalisasi untuk koordinat tekstur standar). Konversi ke indeks bilangan bulat dilakukan dalam urutan berikut (float + bilangan bulat ke bilangan bulat ke bahkan terdekat + klem ke rentang array).

Menerapkan Offset Koordinat Tekstur

Parameter offset memodifikasi koordinat tekstur, di ruang texel. Meskipun koordinat tekstur dinormalisasi angka floating-point, offset menerapkan offset bilangan bulat. Perhatikan juga bahwa offset tekstur harus statis.

Format data yang dikembalikan ditentukan oleh format tekstur. Misalnya, jika sumber daya tekstur ditentukan dengan format DXGI_FORMAT_A8B8G8R8_UNORM_SRGB, operasi pengambilan sampel mengonversi texel sampel dari gamma 2.0 menjadi 1.0, memfilter, dan menulis hasilnya sebagai nilai floating-point dalam rentang [0..1].

Gunakan offset hanya pada miplevel bilangan bulat; jika tidak, Anda mungkin mendapatkan hasil yang tidak diterjemahkan dengan baik ke perangkat keras.

Lihat juga

Metode sampel

Objek Tekstur