Farbton (Direct3D 9)

Die Farbtonfarbe für Pixel- und Scheitelpunkt-Scheitelpunkt wird über den _ D3DRS-RENDERZUSTAND VONCOLOR festgelegt. Die Renderzustandswerte können eine beliebige RGB-Farbe sein, die als RGBA-Farbe angegeben ist. Die Alphakomponente wird ignoriert.

Im folgenden C++-Beispiel wird die Farbe des Farbtons auf Weiß festgelegt.

/* For this example, the d3dDevice variable is
* a valid pointer to an IDirect3DDevice9 interface.
*/
HRESULT hr;
hr = d3dDevice->SetRenderState(
                    D3DRS_FOGCOLOR,
                    0x00FFFFFF); // Highest 8 bits are not used.
if(FAILED(hr))
    return hr;

Die Feste Funktionspipeline und die programmierbare Pipeline werden unterschiedlich angewendet.

  1. Wenn der Treiber D3DPMISCCAPS _ VERSCHIEBANDSPEULARALPHA unterstützt:
    • Wenn die Feste Funktionspipeline verwendet wird und D3DRSCOLOR _ festgelegt ist, entspricht v1.w (im Pixelshader) dem wert, der im Renderzustand "renderstate" festgelegt ist.
    • Wenn die programmierbare Pipeline verwendet wird, entspricht v1.w (im Pixel-Shader) 0, auch wenn oD1.w explizit in einen Vertex-Shader geschrieben wird.
  2. Wenn der Treiber D3DPMISCCAPS _ VERSCHIEBANDSPEULARALPHA NICHT unterstützt:
    • Wenn die Feste Funktionspipeline verwendet wird und D3DRSCOLOR _ festgelegt ist, entspricht v1.w (im Pixel-Shader) dem wert, der im Renderzustand "renderstate" festgelegt ist.
    • Wenn oFog explizit in einen Vertex-Shader geschrieben wird, entspricht v1.w (im Pixel-Shader) oFog, die zwischen 0 und 1 klammern.
    • Wenn keiner der beiden oben genannten Fälle zutrifft, entspricht v1.w (im Pixel-Shader) 0, auch wenn oD1.w explizit in einen Vertex-Shader geschrieben wird.

Weitere Informationen finden Sie unter D3DPMISCCAPS.

Typen von Typen