Microsoft DirectX 8.0 (Visual Basic) |
アプリケーションで頂点フォグを有効にするには、次の手順を実行する。
Visual Basic アプリケーションで頂点フォグを有効にするには
次の Microsoft® Visual Basic® サンプル コードは、これらの手順を示している。
' 簡単にするために、この例では、呼び出しの後で ' エラー値をチェックしない。実際のアプリケーションでは、 ' エラー値を正しくチェックすること。 ' ' この例では、d3dDevice は Direct3DDevice8 オブジェクトへの ' 有効な参照であると仮定している。 Sub SetupVertexFog(Color As Long, Mode As CONST_D3DFOGMODE, _ UseRange As Boolean, Optional Density As Single) Dim StartFog As Single, _ EndFog As Single ' 線形フォグの距離を設定する。 StartFog = 0.5: EndFog = 0.8 ' フォグ ブレンディングを有効にする。 Call d3dDevice.SetRenderState(D3DRS_FOGENABLE, True) ' フォグ カラーを設定する。 Call d3dDevice.SetRenderState(D3DRS_FOGCOLOR, Color) ' フォグ パラメータを設定する。 If Mode = D3DFOG_LINEAR Then Call d3dDevice.SetRenderState(D3DRS_FOGVERTEXMODE, Mode) Call d3dDevice.SetRenderStateSingle(D3DRS_FOGSTART, StartFog) Call d3dDevice.SetRenderStateSingle(D3DRS_FOGEND, EndFog) Else Call d3dDevice.SetRenderState(D3DRS_FOGVERTEXMODE, Mode) Call d3dDevice.SetRenderStateSingle(D3DRS_FOGDENSITY, Density) End If ' 必要に応じて、範囲ベースのフォグを有効にする (頂点フォグでのみサポートされる)。' この例では、ドライバが D3DPRASTERCAPS_FOGRANGE 能力を公開する場合にのみ、 ' UseRange は TRUE に設定 ' されるとする。 ' 注 この方が、範囲に基づかないフォグよりも ' 若干パフォーマンスがよい。 If UseRange = True Then Call d3dDevice.SetRenderState( _ D3DRS_RANGEFOGENABLE, True) End If End Sub