Masking Register Tujuan

Masking menentukan komponen register tujuan mana yang akan diperbarui dengan hasil instruksi. Register tekstur memiliki satu set aturan dan register nontekstur memiliki seperangkat aturan lain.

  • dx9_graphics_reference_asm_vs_registers_modifiers_masking - Bagian ini berisi aturan untuk menerapkan masker ke register tujuan.
  • Texture_Register_Masks - Register tekstur memiliki beberapa aturan unik.

Masking Register Tujuan

Seperti yang ditunjukkan dalam tabel berikut, masking (di mana adalah salah satu vertex shader Vertex Shader Registers yang valid) dapat diterapkan ke komponen individu dari data vektor.

Pengubah komponen Deskripsi
r.{x}{y}{z}{w} Masker tujuan

 

  • Secara umum, menentukan masker tulis register tujuan adalah gaya pengkodian yang baik. Ini membuat kode lebih mudah dibaca dan dirawat.
  • Kombinasi komponen apa pun dapat ditentukan (termasuk tidak ada) selama x mendahului y, y mendahului z, dan z mendahului w.
  • Register output oPts dan oFog hanya harus menggunakan satu masker.
  • Instruksi tertentu mengharuskan register tujuan untuk menggunakan masker tulis tunggal: exp, expp, log, logp, pow, rcp, dan rsq.
  • Dalam versi 1.0, instruksi frc memerlukan salah satu kombinasi masker berikut: .x atau .y atau .xy. Versi 2.0 tidak memiliki batasan masker.
  • sincos memerlukan salah satu kombinasi masker berikut: .x atau .y atau .xyz.
  • m3x2 memerlukan masker tulis .xy.
  • m3x3 dan m4x3 memerlukan masker tulis .xyz.
  • m3x4 dan m4x4 memerlukan masker tulis .xyz atau masker tulis default (xyzw).

Tekstur Daftarkan Masker

Aturan validasi untuk menggunakan pengubah pada register koordinat tekstur lebih ketat daripada aturan validasi untuk register lain.

  • Jika oTn ditulis, semua register sebelumnya (oTn-1 ~ oT0) juga harus ditulis.
  • Masker tulis "gabungan" untuk setiap register oT# harus tepat salah satu dari yang berikut:
    • .X
    • .Xy
    • .Xyz
    • .xyzw (yang setara dengan tidak menggunakan pengubah komponen apa pun)

Misalnya, shader vertex dapat menghasilkan ke register tekstur dalam instruksi terpisah.

    oT1.y  
    oT0.y  
    oT2  
    oT0.xz  
    oT1.x

Atau, instruksi dapat digabungkan.

    oT0.xyz  
    oT1.xy  
    oT2.xyzw    

Pembatasan ini hanya berlaku untuk register koordinat tekstur.

Vertex Shader Register Modifiers