Microsoft DirectX 8.1 (pixel shader version 1.4)

bem

Apply a fake bump environment-map transform.

bem dest.rg, src0, src1

Registers

Argument Description RegistersVersion
vn cn tn rn
dest Destination register x 1.4 phase 1
src0 Source register x x 1.4 phase 1
src1 x 1.4 phase 1

To learn more about registers, see Registers.

Remarks

This instruction performs the following calculation.

(Given n == dest register #)

dest.r = src0.r + D3DTSS_BUMPENVMAT00(stage n) * src1.r 
                + D3DTSS_BUMPENVMAT10(stage n) * src1.g

dest.g = src0.g + D3DTSS_BUMPENVMAT01(stage n) * src1.r
                + D3DTSS_BUMPENVMAT11(stage n) * src1.g

Rules for using bem:

  1. bem must appear in the first phase of a shader (that is, before a phase marker).
  2. bem consumes two arithmetic instruction slots.
  3. Only one use of this instruction is allowed per shader.
  4. Destination writemask must be .rg /.xy.
  5. This instruction cannot be co-issued.
  6. Aside from the restriction that destination write mask be .rg, modifiers on source src0, src1, and instruction modifiers are unconstrained.