Aracılığıyla paylaş


ps_3_0 Yazmaçları

Piksel gölgelendiricileri, köşe verilerini almak, piksel verileri çıkarmak, hesaplamalar sırasında geçici sonuçları tutmak ve doku örnekleme aşamalarını tanımlamak için yazmaçlara bağlıdır. Her biri benzersiz bir işlevselliğe sahip olan çeşitli türlerde yazmaçlar vardır. Bu bölüm, piksel gölgelendiricisi sürüm 3_0 tarafından uygulanan giriş ve çıkış yazmaçları için başvuru bilgilerini içerir.

Yeni Yazmaçlar

Giriş Yazmaç

Giriş Yazmaçları (v#) artık tamamen kayan noktadır ve Doku Koordinatı Yazmaç(t#) içinde birleştirilmiştir. Gölgelendiricinin üst kısmındaki dcl_semantics (sm3 - ps asm), belirli bir Input_Register nelerin içerdiğini açıklamak için kullanılır. Bu model için piksel türleri için bir semantik (köşe tarafına benzer) tanıtılır. Giriş yazmaçları renk olarak tanımlandığında (doku koordinatları gibi) bağlama işlemi yapılmaz. Renk olarak tanımlanan yazmaçların değerlendirilmesi, çoklu örnekleme sırasında doku koordinatlarından farklıdır.

Yüz Kaydı

Yüz yazmaç (vFace) bu model için yenidir. Bu, sonunda ilkel alanı içerecek kayan nokta skaler kaydıdır. Ancak ps_3_0'de yalnızca bu yazmaç işareti geçerlidir. Bu nedenle, değer sıfırdan küçükse (işaret biti negatif olarak ayarlanır) ilkel arka yüzdür (alan negatif, saat yönünün tersine). Bu nedenle, ps_3_0 yalnızca bu yazmaç ile 0 (> 0 veya < 0) karşılaştırmak mantıklıdır. Piksel gölgelendiricisinin içinde uygulama, hangi aydınlatma tekniğinin kullanılacağına karar verebilir. İki taraflı aydınlatma bu şekilde elde edilebilir. Bu yazmaç bir bildirim gerektirir, bu nedenle bildirilmeyen kullanım hata olarak işaretlenir. Satırlar ve nokta ilkelleri için bu yazmaç tanımlanmamıştır. Yüz yazmaç yalnızca şu yönergelerle koşul olarak kullanılabilir: setp_comp - ps, if_comp - psveya break_comp - ps.

Döngü Sayacı Kaydı

Döngü Sayacı Yazmaç (aL) bu model için yenidir. döngüsünün her yürütülmesinde (ps/endloop - ps bloğu) otomatik olarak artırılır. Gerekirse göreli adresleme için bloğunda kullanılabilir. Döngü Sayacı Yazmaç'ın döngü dışında kullanılması geçersizdir.

Konum Yazmaç

Konum Yazmaç (vPos) bu model için yenidir. İlgili kanallardaki geçerli pikselleri (x, y) içerir. (z, w) kanalları tanımlanmamıştır. Bu yazmaç bir bildirim gerektirir, bu nedenle bildirilmeyen kullanım hata olarak işaretlenir. Bildirildiğinde, bu yazmaç tam olarak şu maskelerden birine sahip olmalıdır: .x, .y, .xy.

Giriş Yazmaç Türleri

Kaydolmak Ad Saymak R/W # Bağlantı noktalarını okuma # Okuma/inst Boyut RelAddr Varsayılan DCL gerektirir
v# Giriş Yazmaç 10 R 1 Sınırsız 4 aL Hiç kimse Evet
r# Geçici Kayıt 32 R/W 3 Sınırsız 4 Hayır Hiç kimse Hayır
c# sabit kayan yazmaç 224 R 1 Sınırsız 4 Hayır 0000 Hayır
ben# Sabit Tamsayı Yazmaç 16 R 1 1 4 Hayır 0000 Hayır
b# Sabit Boole Yazmaç 16 R 1 1 1 Hayır YANLIŞ Hayır
p0 Koşul Kaydı 1 R 1 1 1 Hayır Hiç kimse Hayır
s# Sampler (Direct3D 9 asm-ps) 16 R 1 1 4 Hayır Bkz. not 1 Evet
vFace Face_Register 1 R 1 Sınırsız 1 Hayır Hiç kimse Evet
vPos Position_Register 1 R 1 Sınırsız 4 Hayır Hiç kimse Evet
aL Loop_Counter_Register 1 R 1 Sınırsız 1 Yok Hiç kimse Hayır

 

Notlar:

  • Örnekleyici aramalarının varsayılanları vardır, ancak değerler doku biçimine bağlıdır.

Okuma noktası sayısı, tek bir yönergede okunabilen farklı yazmaçların (her yazmaç türü için) sayısıdır.

Çıkış Yazmaç Türleri

Kaydolmak Ad Saymak R/W Boyut RelAddr Varsayılan DCL gerektirir
Oc# Çıktı Renk Yazmaç Bkz. Çok Öğeli Dokular (Direct3D 9) W 4 Hayır Hiç kimse Hayır
oDepth çıkış derinliği yazmaç 1 W 1 Hayır Hiç kimse Hayır

 

Kaydeder