Platform SDK: DirectX |
Direct3D では、一度に 1 つのシェーディング モードしか選択できない。デフォルトでは、グーロー シェーディングが選択されている。C++ では、IDirect3DDevice7::SetRenderState メソッドを呼び出してシェーディング モードを変更できる。dwRenderStateType パラメータを D3DRENDERSTATE_SHADEMODE に設定する。dwRenderState パラメータには D3DSHADEMODE 列挙のメンバを設定する。次のサンプル コードは、Direct3D アプリケーションの現在のシェーディング モードを、フラット シェーディング モードまたはグーロー シェーディング モードに設定する方法を示す。
// フラット シェーディングに設定する。 // このコードでは、lpDev が IDirect3DDevice7 インターフェイスへの // 有効なポインタであるとする。 hr = lpDev->SetRenderState(D3DRENDERSTATE_SHADEMODE, D3DSHADE_FLAT); if(FAILED(hr)) { // エラー処理コード } // グーロー シェーディングに設定する (Direct3D のデフォルト設定)。 hr = lpDev->SetRenderState(D3DRENDERSTATE_SHADEMODE, D3DSHADE_GOURAUD); if(FAILED(hr)) { // エラー処理コード }
Direct3D では、一度に 1 つのシェーディング モードしか選択できない。デフォルトでは、グーロー シェーディングが選択されている。Visual Basic では、Direct3DDevice7.SetRenderState メソッドを呼び出してシェーディング モードを変更できる。state パラメータを D3DRENDERSTATE_SHADEMODE に設定する。renderstate パラメータには、CONST_D3DSHADEMODE 列挙のメンバを設定する。次のサンプル コードは、Direct3D アプリケーションの現在のシェーディング モードを、フラット シェーディング モードまたはグーロー シェーディング モードに設定する方法を示す。
' フラット シェーディングに設定する。 ' このコードでは、d3dDev が Direct3DDevice7 オブジェクトへの ' 有効な参照であるとする。 On Local Error Resume Next Call d3dDev.SetRenderState(D3DRENDERSTATE_SHADEMODE, _ D3DSHADE_FLAT) ' エラーを調べる。 If Err.Number <> DD_OK Then ' エラー処理 End If ' グーロー シェーディングに設定する (Direct3D のデフォルト設定)。 Call d3dDev.SetRenderState(D3DRENDERSTATE_SHADEMODE, _ D3DSHADE_GOURAUD) If Err.Number <> DD_OK Then ' エラー処理 End If