コード記述例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/24 20:23 UTC 版)
Direct3DはCOMで実装されており、オブジェクト指向インターフェイスを利用してアプリケーションコードを書くことになる。 Direct3D 7(固定機能)で三角形を描画する例。 // 3頂点のポリゴンを表す頂点配列を定義。// X, Y, Z, Color, Specular, Tu, Tv の順。// https://msdn.microsoft.com/en-us/library/ms896912.aspxD3DLVERTEX v[3];v[0] = D3DLVERTEX(D3DVECTOR(0.0f, +1.0f, 0.5f), 0x00FF0000, 0, 0, 0);v[1] = D3DLVERTEX(D3DVECTOR(+1.0f, 0.0f, 0.5f), 0x0000FF00, 0, 0, 0);v[2] = D3DLVERTEX(D3DVECTOR(-1.0f, 0.0f, 0.5f), 0x000000FF, 0, 0, 0);// 三角形を描画するメソッドの呼び出し。// pD3DDevice は IDirect3DDevice7 インターフェイスへのポインタ。pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_LVERTEX, v, 3, 0); Direct3D 9(固定機能)で三角形を描画する例。 // ひとつのカスタム頂点情報を表す構造体。struct MyLVertex { D3DXVECTOR3 Position; // float x3 D3DCOLOR Color; // unsigned long x1, B8G8R8A8};// 3頂点のポリゴンを表す頂点配列を定義。const MyLVertex vertexArray[] = { { D3DXVECTOR3(0.0f, +1.0f, 0.5f), D3DCOLOR_ARGB(255, 255, 0, 0) }, { D3DXVECTOR3(+1.0f, 0.0f, 0.5f), D3DCOLOR_ARGB(255, 0, 255, 0) }, { D3DXVECTOR3(-1.0f, 0.0f, 0.5f), D3DCOLOR_ARGB(255, 0, 0, 255) },};// 三角形を描画するメソッドの呼び出し。// pD3DDevice は IDirect3DDevice9 インターフェイスへのポインタ。pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);pD3DDevice->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE); // FVF = Flexible Vertex Format の設定。pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, vertexArray, sizeof(MyLVertex)); Direct3D 7では定義済み頂点フォーマットとしていくつかの組み込みの構造体型が準備されていたが、Direct3D 9ではユーザープログラマーによる定義が必須となる。 固定機能グラフィックスでは組み込みのマテリアル特性に応じた陰影計算やスムージング(グーローシェーディング)、ライトの減衰あるいはフォグのような大気効果 (atmospheric effects) といった、いくつかのエフェクトをサポートする。
※この「コード記述例」の解説は、「Direct3D」の解説の一部です。
「コード記述例」を含む「Direct3D」の記事については、「Direct3D」の概要を参照ください。
- コード記述例のページへのリンク