dp3 - ps
計算來源暫存器的三個元件點乘積。
Syntax
dp3 dst、 src0、 src1 |
---|
where
- dst 是目的地暫存器。
- src0 是來源暫存器。
- src1 是來源暫存器。
備註
圖元著色器版本 | 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 |
下列程式碼片段顯示執行的作業:
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
此指令會在向量管線中執行,一律寫出色彩通道。 針對 1_4 版,此指令仍會使用向量管線,但可能會寫入任何通道。
目的地暫存器 .rgb (.xyz) 寫入遮罩的指示可能與 dp3 共同發出,如下所示。
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
如果 dp3 指令尚未展開為帶正負號的動態範圍,則可以使用 來源暫存器帶正 負號的縮放輸入引數修飾詞 (_bx2) 套用至其輸入引數。 針對光源著色器,飽和指令修飾詞 (_sat) 通常用來將負值限制為黑色,如下列範例所示。
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
相關主題