Microsoft DirectX 8.0 (C++)

ステップ 2.1 : マテリアルの作成

マテリアルは、ジオメトリ オブジェクトにライトが当たったときに、ジオメトリ オブジェクトのサーフェスから反射される色を定義する。次のサンプル コードでは、D3DMATERIAL8 構造体を使って、黄色のマテリアルを作成している。

D3DMATERIAL8 mtrl;
ZeroMemory( &mtrl, sizeof(D3DMATERIAL8) );
mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;
g_pd3dDevice->SetMaterial( &mtrl );

このマテリアルのディフューズ色およびアンビエント色は黄色に設定される。IDirect3DDevice8::SetMaterial メソッドの呼び出しによって、シーンのレンダリングに使用される Microsoft® Direct3D® デバイスにマテリアルが適用される。SetMaterial が受け取るパラメータは、設定するマテリアルのアドレスだけである。この呼び出しが行われた後、別のマテリアルを指定する SetMaterial の次の呼び出しが行われるまで、このマテリアルを使って各プリミティブがレンダリングされる。

これでシーンにマテリアルが適用されたので、次のステップはライトを作成することである。これについては、「ステップ 2.2 : ライトの作成」で説明する。