Bagikan melalui


gather4 (sm5 - asm)

Mengumpulkan empat texel yang akan digunakan dalam operasi pemfilteran dua linier dan mengemasnya ke dalam satu register. Instruksi ini hanya berfungsi dengan tekstur 2D atau CubeMap, termasuk array. Hanya mode pengalamatan sampler yang digunakan dan tingkat atas piramida mip apa pun yang digunakan.

gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
Item Deskripsi
Dest
[in] Alamat hasil operasi.
srcAddress
[in] Satu set koordinat tekstur.
srcResource
[in] Daftar tekstur.
srcSampler
[in] Register sampler.

Keterangan

Instruksi ini bersifat seperti instruksi sampel , tetapi sampel yang difilter tidak dihasilkan. Empat sampel yang akan berkontribusi pada pemfilteran ditempatkan ke dalam xyzw dalam urutan searah jarum jam yang dimulai dengan sampel di kiri bawah lokasi yang dikueri. Ini sama dengan pengambilan sampel titik dengan delta koordinat tekstur (u,v) di lokasi berikut: (-,+),(+,+),(+,-),(-,-), di mana besarnya delta selalu setengah texel.

Untuk tekstur CubeMap, ketika jejak dua linier membentang tepi, texel dari wajah tetangga digunakan. Sudut menggunakan aturan yang sama dengan instruksi sampel ; artinya, sudut yang tidak diketahui dianggap rata-rata dari tiga sudut wajah yang menghambat.

Ada pembatasan format tekstur yang berlaku untuk pengumpulan4 yang dinyatakan dalam daftar format.

Moncong di srcResource memungkinkan nilai yang dikembalikan untuk digeser sekejap sebelum ditulis ke tujuan.

.select_component pada srcSampler memilih komponen tekstur sumber mana (r/g/b/a) untuk membaca 4 texel.

Untuk format dengan komponen float32, jika nilai yang diambil dinormalisasi, didenormalisasi, +-0 atau +-INF, nilai dikembalikan ke shader yang tidak diubah. NaN dikembalikan sebagai NaN, tetapi representasi bit nan yang tepat dapat diubah. Untuk TextureCubes, beberapa sintesis texel ke-4 yang hilang harus terjadi di sudut-sudut, sehingga bit yang dikembalikan tidak berubah untuk texel yang disintesis tidak berlaku, dan denorm dapat dibersihkan.

Untuk implementasi perangkat keras, pengoptimalan dalam pemfilteran bilinear tradisional yang mendeteksi sampel langsung pada texel dan melewati pembacaan texel yang akan memiliki berat 0 tidak dapat dimanfaatkan dengan instruksi ini. gather4 selalu mengembalikan semua texel yang diminta.

Instruksi ini berlaku untuk tahap shader berikut:

Puncak Hull Domain Geometri Pixel Compute
X X X X X X

Minimum Shader Model

Instruksi ini didukung dalam model shader berikut:

Shader Model Didukung
Model Shader 5 ya
Model Shader 4.1 tidak
Model Shader 4 tidak
Shader Model 3 (DirectX HLSL) tidak
Shader Model 2 (DirectX HLSL) tidak
Shader Model 1 (DirectX HLSL) tidak

Shader Model 5 Assembly (DirectX HLSL)