Bagikan melalui


Sampler (Direct3D 9 asm-ps)

Sampler adalah pseudo-register input untuk shader piksel, yang digunakan untuk mengidentifikasi tahap pengambilan sampel. Ada register tahap pengambilan sampel shader 16 piksel: s0 hingga s15. Oleh karena itu, hingga 16 permukaan tekstur dapat dibaca dalam satu shader pass. Instruksi yang menggunakan register sampler adalah texld dan texldp.

Sampler harus dideklarasikan sebelum digunakan dengan instruksi dcl_samplerType (sm2, sm3 - ps asm ).

Versi shader piksel 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Sampler x x x x x

 

Sampler adalah register semu karena Anda tidak dapat langsung membaca atau menulis kepada mereka.

Unit pengambilan sampel sesuai dengan tahap pengambilan sampel tekstur, merangkum status khusus pengambilan sampel yang disediakan oleh SetSamplerState. Setiap sampler secara unik mengidentifikasi permukaan tekstur tunggal, yang diatur ke sampler yang sesuai menggunakan SetTexture. Namun, permukaan tekstur yang sama dapat diatur pada beberapa sampler.

Pada waktu gambar, tekstur tidak dapat ditetapkan secara bersamaan sebagai target render dan tekstur pada tahap.

Sampler mungkin muncul sebagai satu-satunya argumen dalam instruksi beban tekstur: texldl - ps.

Dalam ps_3_0, jika sampler digunakan, sampel perlu dideklarasikan di awal program shader menggunakan instruksi dcl_samplerType (sm2, sm3 - ps asm ).

Pengambilan sampel tekstur dengan dimensi yang lebih tinggi daripada yang ada dalam koordinat tekstur adalah ilegal. Pengambilan sampel tekstur dengan dimensi yang lebih rendah daripada yang ada dalam koordinat tekstur akan mengabaikan koordinat tekstur tambahan.

Register