| Microsoft DirectX 8.1 (vertex shader versions 1.0, 1.1) | 
Computes the four-component dot product of the sources.
dp4 dest, src0, src1
To learn more about registers, see Registers.
The following code fragment shows the operations performed by the dp4 instruction.
dest.w = (src0.x * src1.x) + (src0.y * src1.y) + 
         (src0.z * src1.z) + (src0.w * src1.w);
dest.x = dest.y = dest.z = the scalar result of dp4
// This example takes the dot product of two constant colors // shader file vs.1.0 dp4 r0.x, v0, c0 ; transform vertices by view/projection matrix dp4 r0.y, v0, c1 dp4 r0.z, v0, c2 dp4 r0.w, v0, c3 mov oPos, r0 ; output position mov oD0, c4 ; output green diffuse color // The resultant vertex color is green
 
// Additional code is used to initialize the constant registers 
D3DXMATRIX mat, matView, matProj;
D3DXMatrixMultiply(&mat, &matView, &matProj);
D3DXMatrixTranspose(&mat, &mat);
// set C0 with the view and projection matrix
m_pd3dDevice->SetVertexShaderConstant(0, &mat, 4);
float color[4] = {0,1,0,0};
m_pd3dDevice->SetVertexShaderConstant(4, &color, 1);
// The c0 register is loaded with the view and projection matrix using 
// the m4x4 instruction (the m4x4 instruction also uses the c1, c2 and 
// c3 registers). The last method sets the constant color register c4 
// with the color green