Microsoft DirectX 8.0 (C++)

ミップマップの選択と表示

IDirect3DDevice8::SetTexture メソッドを呼び出して、カレント テクスチャの一覧内の先頭のテクスチャとしてミップマップ テクスチャを設定する。詳細については、「マルチ テクスチャ ブレンディング」を参照すること。

ミップマップ テクスチャ セットを選択した後、D3DTEXTUREFILTERTYPE 列挙型からの値を D3DTSS_MIPFILTER テクスチャ ステージ ステートに割り当てなければならない。Microsoft® Direct3D® ではミップマップ テクスチャ フィルタリングを自動的に実行する。次のサンプル コードでは、ミップマップ テクスチャ フィルタリングが有効にされている。

d3dDevice->SetTexture(0, pMipMap);
d3dDevice->SetTextureStageState(0, D3DTSS_MIPFILTER, D3DTEXF_POINT);

また、IDirect3DTexture8::GetSurfaceLevel メソッドを使用し、取得するミップマップ レベルを指定することで、ミップマップ サーフェスのチェーンを手動でトラバースできる。次の例では、最高解像度から最低解像度までミップマップ チェーンをトラバースする。

IDirect3DSurface8 * pSurfaceLevel;

for (int iLevel = 0; iLevel < pMipMap->GetLevelCount(); iLevel++)
{
    pMipMap->GetSurfaceLevel(iLevel, &pSurfaceLevel);

    //このレベルを処理する。

    pSurfaceLevel->Release();
}

チェーンのミップマップ サーフェスの各サーフェスにビットマップ データをロードするために、アプリケーションではミップマップ チェーンを手動でトラバースする必要がある。通常、この理由からチェーンをトラバースする。アプリケーションは、IDirect3DBaseTexture8::GetLevelCount を呼び出して、ミップマップに格納されているレベルの数を取得できる。