bem - ps

Apply a fake bump environment-map transform.


bem dst.rg, src0, src1



  • dst.rg dst is the destination register. The red and green component write mask must be used.
  • src0 is a source register.
  • src1 is a source register.


Pixel shader versions1_11_21_31_42_02_x2_sw3_03_sw


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.

Instruction Information

Minimum operating systemWindows 98


Related topics

Pixel Shader Instructions