Microsoft DirectX 8.1 (vertex shader versions 1.0, 1.1)

add

Adds sources.

add dest, src0, src1

Registers

dest
Destination register.
src0
Input source register.
src1
Input source register.

To learn more about registers, see Registers.

Remarks

The add instruction sums the components of the two source registers and stores the result in the destination register.

dest.x = src0.x + src1.x;
dest.y = src0.y + src1.y;
dest.z = src0.z + src1.z;
dest.w = src0.w + src1.w;

Example

// This example adds two constant colors. This combines the rgb components 
// of each color to produce the final color

// shader file
vs.1.0
m4x4 oPos, v0, c0	; transform vertices by view/projection matrix

mov r0, c5  		; load pink
mov r1, c6	    	; load off white
add oD0, r0, r1		; add colors and output

// The resultant vertex color is a blend of pink and off white
// 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);

// set register c5
float colorPink[] = {0.75,0,0,0};
m_pd3dDevice->SetVertexShaderConstant(5, &colorPink, 1);

// set register c6
float colorOffWhite[] = {0.9f,0.9f,0.9f,0.9f};
m_pd3dDevice->SetVertexShaderConstant(6, &colorOffWhite, 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 two methods set the constant color registers.