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.
- 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.
- 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.
İlgili konular