Microsoft DirectX 8.0 (Visual Basic)

頂点フォグの使い方

アプリケーションで頂点フォグを有効にするには、次の手順を実行する。

Visual Basic アプリケーションで頂点フォグを有効にするには

  1. D3DRS_FOGENABLE を TRUE に設定して、フォグ ブレンディングを有効にする。
  2. D3DRS_FOGCOLOR レンダリング ステートで、必要なフォグ カラーを設定する。
  3. D3DRS_FOGVERTEXMODE レンダリング ステートを CONST_D3DFOGMODE 列挙のメンバに設定して、目的のフォグ公式を選択する。
  4. 選択したフォグ公式で必要なフォグ パラメータをレンダリング ステートに設定する。

次の 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