dp3 - ps
Menghitung produk titik tiga komponen dari register sumber.
Sintaks
dp3 dst, src0, src1 |
---|
Di mana
- dst adalah register tujuan.
- src0 adalah register sumber.
- src1 adalah register sumber.
Keterangan
Versi shader piksel | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
dp3 | x | x | x | x | x | x | x | x | x |
Cuplikan kode berikut menunjukkan operasi yang dilakukan:
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
Instruksi ini berjalan di alur vektor, selalu menulis ke saluran warna. Untuk versi 1_4, instruksi ini masih menggunakan alur vektor tetapi dapat menulis ke saluran apa pun.
Instruksi dengan register tujuan .rgb (.xyz) write mask dapat dikeluarkan bersama dengan dp3 Seperti yang ditunjukkan di bawah ini.
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
Instruksi dp3 dapat dimodifikasi menggunakan pengubah argumen input Penskalaan Bertanda Tangan Register Sumber (_bx2) yang diterapkan ke argumen inputnya jika belum diperluas ke rentang dinamis yang ditandatangani. Untuk shader pencahayaan, pengubah instruksi jenuh (_sat) sering digunakan untuk menjepit nilai negatif menjadi hitam, seperti yang ditunjukkan dalam contoh berikut.
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
Topik terkait