Pengubah untuk ps_2_0 dan Di Atas
Pengubah instruksi memengaruhi hasil instruksi sebelum ditulis ke dalam register tujuan.
Bagian ini berisi informasi referensi untuk pengubah instruksi yang diimplementasikan oleh pixel shader versi 2_0 ke atas.
Nama | Sintaksis | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Sentroid | _centroid | x | x | x | x | x |
Partial_Precision | _Pp | x | x | x | x | x |
saturate | _hari sabtu | x | x | x | x | x |
Sentroid
Pengubah sentroid adalah pengubah opsional yang menjepit interpolasi atribut dalam rentang primitif ketika pusat piksel multisample tidak dicakup oleh primitif. Ini dapat dilihat di Centroid Sampling.
Anda dapat menerapkan pengubah sentroid ke instruksi perakitan seperti yang ditunjukkan di sini:
dcl_texcoord0_centroid v0
Anda juga dapat menerapkan pengubah sentroid ke semantik seperti yang ditunjukkan di sini:
float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
return tex2D( PointSampler, TexCoord );
}
Selain itu, setiap Daftar Warna Input (v#) yang dinyatakan dengan semantik warna akan secara otomatis memiliki sentroid yang diterapkan. Gradien yang dihitung dari atribut yang diambil sampel sentroidnya tidak dijamin akurat.
Presisi Parsial
Pengubah instruksi presisi parsial (_pp) menunjukkan area di mana presisi parsial dapat diterima, asalkan implementasi yang mendasarinya mendukungnya. Implementasi selalu bebas untuk mengabaikan pengubah dan melakukan operasi yang terpengaruh dengan presisi penuh.
Pengubah _pp dapat terjadi dalam dua konteks:
- Pada deklarasi koordinat tekstur untuk mengaktifkan meneruskan koordinat tekstur ke piksel shader dalam bentuk presisi parsial. Ini memungkinkan, misalnya, penggunaan koordinat tekstur untuk menyampaikan data warna ke shader piksel, yang mungkin lebih cepat dengan presisi parsial daripada dengan presisi penuh dalam beberapa implementasi. Dengan tidak adanya pengubah ini, koordinat tekstur harus diteruskan dengan presisi penuh.
- Pada instruksi apa pun termasuk instruksi beban tekstur. Ini menunjukkan bahwa implementasi diizinkan untuk menjalankan instruksi dengan presisi parsial dan menyimpan hasil presisi parsial. Dengan tidak adanya pengubah eksplisit, instruksi harus dilakukan dengan presisi penuh (terlepas dari presisi input).
Contoh:
dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3
Jenuh
Pengubah instruksi jenuh (_sat) menjenuhkan (atau menjepit) hasil instruksi ke rentang [0, 1] sebelum menulis ke register tujuan.
Pengubah instruksi _sat dapat digunakan dengan instruksi apa pun kecuali frc - ps, sincos - ps, dan instruksi tex*.
Untuk ps_2_0, ps_2_x, dan ps_2_sw, pengubah instruksi _sat tidak dapat digunakan dengan instruksi menulis ke daftar output apa pun (Output Output Color Register atau Output Depth Register). Pembatasan ini tidak berlaku untuk ps_3_0 ke atas.
Contoh:
dp3_sat r0, v0, c1
Topik terkait
-
Instruksi Pixel Shader