Fungsi sample(S,float,int,float,uint) (referensi HLSL)
Sampel Texture2D dengan nilai opsional untuk menjepit nilai tingkat detail sampel (LOD), dan mengembalikan status operasi.
Catatan
Membutuhkan model shader 5 atau lebih tinggi.
Sintaks
DXGI_FORMAT Sample(
in SamplerState S,
in float Location,
in int Offset,
in float Clamp,
out uint Status
);
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.
-
Status [keluar]
-
Status operasi. Anda tidak dapat mengakses status secara langsung; sebagai gantinya, teruskan status ke fungsi intrinsik CheckAccessFullyMapped . CheckAccessFullyMapped mengembalikan TRUE jika semua nilai dari petak peta yang diakses operasi Sampel, Kumpulkan, atau Muat yang diakses terkait dalam sumber daya petak peta. Jika ada nilai yang diambil dari petak peta yang tidak dipetakan, CheckAccessFullyMapped mengembalikan FALSE.
Nilai kembali
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].
Lihat juga