Microsoft DirectX 8.0 (C++)

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

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

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

BOOL SupportsBumpMapping()
{
    D3DCAPS8 d3dCaps;

    d3dDevice->GetDeviceCaps( &d3dCaps );

    // このデバイスが 2 つのバンプ マッピング ブレンド処理をサポートしているかどうか。
    if ( 0 == d3dCaps.TextureOpCaps & ( D3DTEXOPCAPS_BUMPENVMAP |
                                         D3DTEXOPCAPS_BUMPENVMAPLUMINANCE ))
        return FALSE;

    // このデバイスが最大 3 つのブレンディング ステージをサポートしているかどうか。
    if( d3dCaps.MaxTextureBlendStages < 3 )
        return FALSE;
}