Compartir a través de


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

Instrucciones del sombreador de píxeles