Aracılığıyla paylaş


Sis Rengi (Direct3D 9)

Hem piksel hem de köşe sisleri için sis rengi, D3DRS_FOGCOLOR işleme durumu üzerinden ayarlanır. İşleme durumu değerleri, RGBA rengi olarak belirtilen herhangi bir RGB rengi olabilir. Alfa bileşeni yoksayılır.

Aşağıdaki C++ örneği sis rengini beyaz olarak ayarlar.

/* 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;

Sis, sabit işlev işlem hattı ve programlanabilir işlem hattı tarafından farklı uygulanır.

  1. Sürücü D3DPMISCCAPS_FOGANDSPECULARALPHA destekliyorsa:
    • Sabit işlev işlem hattı kullanılırsa ve D3DRS_FOGCOLOR ayarlanırsa, v1.w (piksel gölgelendiricisinde) fog renderstate içinde ayarlanan değere eşit olur.
    • Programlanabilir işlem hattı kullanılıyorsa, oD1.w açıkça köşe gölgelendiricisinde yazılmış olsa bile v1.w (piksel gölgelendiricisinde) 0'a eşit olur.
  2. Sürücü D3DPMISCCAPS_FOGANDSPECULARALPHA desteklemiyorsa:
    • Sabit işlev işlem hattı kullanılırsa ve D3DRS_FOGCOLOR ayarlanırsa, v1.w (piksel gölgelendiricisinde) sis işleme durumunda ayarlanan değere eşit olur.
    • oFog açıkça bir köşe gölgelendiricisinde yazılmışsa, v1.w (piksel gölgelendiricisinde) oFog'a eşittir ve 0 ile 1 arasında sıkıştırılır.
    • Yukarıdaki iki durumdan hiçbiri geçerli değilse, oD1.w açıkça köşe gölgelendiricisinde yazılmış olsa bile v1.w (piksel gölgelendiricisinde) 0'a eşit olur.

Daha fazla bilgi için bkz. D3DPMISCCAPS.

Sis Türleri