dp3 - ps
Calcula el producto de punto de tres componentes de los registros de origen.
Sintaxis
dp3 dst, src0, src1 |
---|
where
- dst es el registro de destino.
- src0 es un registro de origen.
- src1 es un registro de origen.
Comentarios
Versiones del sombreador de píxeles | 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 |
En el fragmento de código siguiente se muestran las operaciones realizadas:
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
Esta instrucción se ejecuta en la canalización de vectores, siempre escribiendo en los canales de color. Para la versión 1_4, esta instrucción sigue usando la canalización de vectores, pero puede escribir en cualquier canal.
Una instrucción con una máscara de escritura de registro de destino .rgb (.xyz) puede emitirse conjuntamente con dp3, como se muestra a continuación.
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
La instrucción dp3 se puede modificar mediante el modificador de argumento de entrada Source Register Signed Scaling (_bx2) aplicado a sus argumentos de entrada si aún no están expandidos al intervalo dinámico firmado. Para un sombreador de iluminación, el modificador de instrucción saturada (_sat) se usa a menudo para sujetar los valores negativos a negro, como se muestra en el ejemplo siguiente.
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
Temas relacionados