Bagikan melalui


texld - ps_2_0 ke atas

Contoh tekstur pada sampler tertentu, menggunakan koordinat tekstur yang disediakan. Instruksi ini berbeda dari instruksi texld - ps_1_4 yang digunakan dalam pixel shader versi 1_4.

Sintaks

texld dst, src0, src1

 

Di mana:

  • dst adalah register tujuan.
  • src0 adalah register sumber yang menyediakan koordinat tekstur untuk sampel tekstur.
  • src1 mengidentifikasi Sampler (Direct3D 9 asm-ps) (s#), di mana # menentukan nomor sampler tekstur mana yang akan diambil sampelnya. Sampler telah mengaitkan dengan tekstur dan status sampler yang ditentukan oleh D3DSAMPLERSTATETYPE.

ps_2_0 dan ps_2_x

dst harus berupa Daftar Sementara (r#) dan hanya masker .xyzw (masker default) yang diizinkan.

src0 harus berupa Texture Coordinate Register (t#) atau Temporary Register (r#), tanpa modifier atau swizzle.

src1 harus berupa Sampler (Direct3D 9 asm-ps) (s#), tanpa pengubah atau gerimis.

Jika bit batas D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT tidak diatur (dalam D3DPSHADERCAPS2_0), instruksi tekstur tertentu (texld, texldp, texldb - ps, texldd ) mungkin bergantung pada, paling banyak, urutan ketiga. Instruksi tekstur dependen urutan pertama adalah instruksi tekstur di mana:

  • src0 adalah Daftar Sementara (r#).
  • dst sebelumnya ditulis, sekarang sedang ditulis lagi.

Instruksi tekstur dependen urutan kedua didefinisikan sebagai instruksi tekstur yang membaca atau menulis ke Daftar Sementara (r#) yang isinya, sebelum menjalankan instruksi tekstur, bergantung (mungkin secara tidak langsung) pada hasil instruksi tekstur dependen urutan pertama. Instruksi tekstur dependen (n)urutan berasal dari instruksi tekstur (n - 1)urutan ke-1.

ps_3_0

src1 harus berupa Sampler (Direct3D 9 asm-ps) (s#), tanpa pengubah. Gerimis diperbolehkan di src0 atau src1. Gerimis diterapkan ke koordinat tekstur sebelum pencarian tekstur.

Keterangan

Instruksi ini didukung dalam versi berikut:

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

 

Jumlah koordinat yang diperlukan src0 untuk melakukan sampel tekstur tergantung pada bagaimana src1 dinyatakan, ditambah komponen .w. Jenis sampler dideklarasikan dengan dcl_samplerType (sm2, sm3 - ps asm). Jika src1 dinyatakan sebagai sampler 2D, maka src0 harus berisi koordinat .xy; jika src1 dinyatakan sebagai sampel kubus atau sampler volume, maka src0 harus berisi koordinat .xyz. Pengambilan sampel tekstur dengan dimensi yang lebih sedikit daripada yang ada dalam koordinat tekstur diizinkan karena komponen koordinat tekstur tambahan diabaikan.

Jika tekstur sumber berisi kurang dari empat komponen, default ditempatkan di komponen yang hilang. Default bergantung pada format tekstur seperti yang diperlihatkan dalam tabel berikut:

Format Tekstur Nilai Default
D3DFMT_R5G6B5, D3DFMT_R8G8B8, D3DFMT_L8, D3DFMT_L16, D3DFMT_R3G3B2, D3DFMT_CxV8U8, D3DFMT_L6V5U5 A = 1.0
D3DFMT_V8U8, D3DFMT_V16U16, D3DFMT_G16R16, D3DFMT_G16R16F, D3DFMT_G32R32F B = A = 1,0
D3DFMT_A8 R = G = B = 0,0
D3DFMT_R16F, D3DFMT_R32F G = B = A = 1,0
Semua format kedalaman/stensil R = B = 0,0, A = 1,0

 

Instruksi Piksel Shader