Bagikan melalui


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

Instruksi Pixel Shader