Microsoft DirectX 8.0 (Visual Basic)

バンプ マッピングのサポートの検出

Microsoft® Direct3D® デバイスが D3DTOP_BUMPENVMAP または D3DTOP_BUMPENVMAPLUMINANCE のいずれかのテクスチャ ブレンディング処理をサポートしている場合、そのデバイスではバンプ マッピングを実行できる。また、アプリケーションではデバイス能力を調べることで、そのアプリケーションで適切なブレンディング ステージ数 (通常は 3 つ以上) がサポートされ、少なくとも 1 つのバンプ マッピング ピクセル フォーマットが公開されていることを確認する必要がある。

次のコードは、指定された条件によってデバイス機能を調べて、現在のデバイスでのバンプ マッピングのサポートを検出する。

Function SupportsBumpMapping As Bool
{
    Dim d3dCaps As D3DCAPS8

    m_D3DDevice.GetDeviceCaps d3dCaps

    ' このデバイスが 2 つのバンプ マッピング ブレンド処理をサポートしているかどうか。
    If ( d3dCaps.TextureOpsCaps And _
         ( D3DTEXOPCAPS_BUMPENVMAP Or D3DTEXOPCAPS_BUMPENVMAPLUMINANCE ) = 0) Then
         SupportBumpMapping = FALSE
    End If

    ' このデバイスが最大 3 つのブレンディング ステージをサポートしているかどうか。
    If d3dCaps.MaxTextureBlendStages < 3 Then
        SupportBumpMapping = FALSE
    End If

    SupportBumpMapping = TRUE
}