Microsoft DirectX 8.1 (vertex shader versions 1.0, 1.1) |
Adds sources.
add dest, src0, src1
To learn more about registers, see Registers.
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;
// 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.