Microsoft DirectX 8.1 (pixel shader versions 1.0, 1.1, 1.2, 1.3, 1.4) |
Performs a component-wise add of two registers.
add dest, src0, src1
Argument | Description | Registers | Version | |||
---|---|---|---|---|---|---|
vn | cn | tn | rn | |||
dest | Destination register | x | 1.0 | |||
x | x | 1.1, 1.2, 1.3 | ||||
x | 1.4 | |||||
src0, src1 | Source register | x | x | x | x | 1.0, 1.1, 1.2, 1.3 |
x | x | 1.4 phase 1 | ||||
x | x | x | 1.4 phase 2 |
To learn more about registers, see Registers.
This instruction performs a component-wise addition of two registers as shown below.
dest.r = src0.r + src1.r dest.g = src0.g + src1.g dest.b = src0.b + src1.b dest.a = src0.a + src1.a
This example is for illustration only. The C code accompanying the shader has not been optimized for performance.
// This example adds the vertex color to the texture color. // The shader is shown below. ps.1.0 // Version instruction. tex t0 // Declare texture. This example requires the DX Logo texture // to be set on stage 0. add r0, t0, t0 // r0 = t0 + t0. This doubles each color component. // The effect is to increase image brightness. // The input texture is shown on the left. The rendered output from the // pixel shader is shown on the right. In this example, it is brighter // because the texture color values have been doubled.
// Additional code loads the texture in texture stage 0. LPDIRECT3DDEVICE8 m_pd3dDevice; // Init this device pointer in the application. LPDIRECT3DTEXTURE8 m_pTexture0; // Use this variable to hold a pointer to the texture. TCHAR strPath[512] = "textureFile.jpg"; // Use a helper function from the SDK to load the texture. D3DUtil_CreateTexture( m_pd3dDevice, strPath, &m_pTexture0, D3DFMT_R5G6B5 ); m_pd3dDevice->SetTexture( 0, m_pTexture0 );