Fungsi EvaluateAttributeSnapped
Mengevaluasi pada sentroid piksel dengan offset.
Sintaks
numeric EvaluateAttributeSnapped(
in attrib numeric value,
in
int2 offset
);
Parameter
-
value [in]
-
Jenis: attrib numerik
Nilai input.
-
offset [in]
-
Jenis: int2
Offset 2D dari pusat piksel menggunakan kisi 16x16.
Keterangan
Rentang untuk parameter offset harus ditentukan oleh kode byte berikut.
Hanya 4 bit paling tidak signifikan dari dua komponen pertama (U, V) dari offset piksel yang digunakan. Konversi dari titik tetap 4-bit ke float adalah sebagai berikut (MSB... LSB), di mana MSB adalah bagian dari pecahan dan menentukan tanda:
- 1000 = -0,5f (-8 / 16)
- 1001 = -0,4375f (-7 / 16)
- 1010 = -0,375f (-6 / 16)
- 1011 = -0,3125f (-5 / 16)
- 1100 = -0,25f (-4 / 16)
- 1101 = -0,1875f (-3 / 16)
- 1110 = -0,125f (-2 / 16)
- 1111 = -0,0625f (-1 / 16)
- 0000 = 0,0f ( 0 / 16)
- 0001 = 0,0625f ( 1 / 16)
- 0010 = 0,125f ( 2 / 16)
- 0011 = 0,1875f ( 3 / 16)
- 0100 = 0,25f ( 4 / 16)
- 0101 = 0,3125f ( 5 / 16)
- 0110 = 0,375f ( 6 / 16)
- 0111 = 0,4375f ( 7 / 16)
Catatan
Tepi kiri dan atas piksel disertakan dalam offset; namun, tepi bawah dan kanan tidak disertakan. Semua bit lain dalam bilangan bulat 32-bit yang Anda dan nilai offset V diabaikan.
Implementasi dapat mengambil offset yang disediakan oleh shader dan mendapatkan nilai titik tetap 32-bit penuh (28,4), yang mencakup rentang yang valid, dengan melakukan perhitungan berikut:
iU = (iU<<28)>>28 // keep lowest 4 bits and sign extend, which yields [-8..7]
Jika implementasi harus memetakan offset ke offset floating-point, implementasi harus melakukan penghitungan berikut:
fU = ((float)iU)/16
Minimum Shader Model
Fungsi ini didukung dalam model shader berikut.
Shader Model | Didukung |
---|---|
Model Shader 5 dan model shader yang lebih tinggi | ya |
Fungsi ini didukung dalam jenis shader berikut:
Puncak | Hull | Domain | Geometri | Pixel | Compute |
---|---|---|---|---|---|
x |
Lihat juga