Microsoft DirectX 8.0 (C++)

シェーディング モードの設定

Microsoft® Direct3D® では、一度に 1 つのシェーディング モードしか選択できない。デフォルトでは、グーロー シェーディングが選択されている。C++ では、IDirect3DDevice8::SetRenderState メソッドを呼び出してシェーディング モードを変更できる。State パラメータを D3DRS_SHADEMODE に設定する。State パラメータには D3DSHADEMODE 列挙のメンバを設定する必要がある。次のサンプル コードは、Direct3D アプリケーションの現在のシェーディング モードを、フラット シェーディング モードまたはグーロー シェーディング モードに設定する方法を示している。

// フラット シェーディングに設定する。
// このコードでは、pDev が IDirect3DDevice8 インターフェイスへの
// 有効なポインタであるとする。
hr = pDev->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
if(FAILED(hr))
{
    // エラー処理コード。
}
 
// グーロー シェーディングに設定する。これが Direct3D のデフォルト値である。
hr = pDev->SetRenderState(D3DRS_SHADEMODE,
                            D3DSHADE_GOURAUD);
if(FAILED(hr))
{
    // エラー処理コード。
}