Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic チュートリアル」を参照すること。
DirectDraw と Direct3D で使用するプライマリ システム オブジェクトを作成すると、シーンの初期化を開始できる。サンプル Triangle では、同時に、D3DVERTEX 構造体の配列で頂点を定義して、ジオメトリの初期化も行っている。技術的には、この時点でジオメトリのセット アップを行う必要はない。
HRESULT App_InitDeviceObjects( LPDIRECT3DDEVICE7 pd3dDevice ) { // 三角形のジオメトリのデータ。このチュートリアルでは、 // アンビエント ライトだけを使用しているので、頂点の法線は、実際には使用されないことに注意する。 D3DVECTOR p1( 0.0f, 3.0f, 0.0f ); D3DVECTOR p2( 3.0f,-3.0f, 0.0f ); D3DVECTOR p3(-3.0f,-3.0f, 0.0f ); D3DVECTOR vNormal( 0.0f, 0.0f, 1.0f ); // 三角形の前面の 3 頂点を初期化する。 g_pvTriangleVertices[0] = D3DVERTEX( p1, vNormal, 0, 0 ); g_pvTriangleVertices[1] = D3DVERTEX( p2, vNormal, 0, 0 ); g_pvTriangleVertices[2] = D3DVERTEX( p3, vNormal, 0, 0 ); // 三角形の背面の 3 頂点を初期化する。 g_pvTriangleVertices[3] = D3DVERTEX( p1, -vNormal, 0, 0 ); g_pvTriangleVertices[4] = D3DVERTEX( p3, -vNormal, 0, 0 ); g_pvTriangleVertices[5] = D3DVERTEX( p2, -vNormal, 0, 0 );
上記の部分コードでは、z=0 の平面上に直立する三角形を定義する、3D 空間の 3 点を定義している。表示するジオメトリを定義した後、サンプル Triangle ではマテリアルおよびライティング パラメータを準備する。これについては、「ステップ 3.2 : マテリアルと初期ライティング ステートをセット アップする」で説明する。