臨場感あるモノにするためには、様々な効果付けが必要です。
今回は手軽に実装出来る霧(フォグ)の生成をします。
D3DCAPS9 caps; ZeroMemory(&caps, sizeof(D3DCAPS9)); //初期化 pDevice->GetDeviceCaps(&caps); //ピクセルフォグが使えるかどうか確認 if((caps.RasterCaps & D3DPRASTERCAPS_FOGRANGE) == 0) { return FALSE; } //フォグの設定 FLOAT StartPos = 50; //開始位置 FLOAT EndPos = 100; //終了位置 pDevice->SetRenderState(D3DRS_FOGENABLE, TRUE); //フォグ:ON pDevice->SetRenderState(D3DRS_FOGCOLOR, D3DCOLOR_ARGB(0xff, 0xff, 0xff, 0xff)); //白色で不透明 pDevice->SetRenderState(D3DRS_FOGVERTEXMODE, D3DFOG_NONE); //頂点モード pDevice->SetRenderState(D3DRS_FOGTABLEMODE, D3DFOG_LINEAR); //テーブルモード pDevice->SetRenderState(D3DRS_FOGSTART, *(DWORD*) (&StartPos)); //開始位置 pDevice->SetRenderState(D3DRS_FOGEND, *(DWORD*) (&EndPos)); //終了位置
D3DRS_FOGCOLORで色、透明度を設定しD3DRS_FOGSTART/FOGENDの位置に霧を発生させています。 ゲームらしさを出すためには効果付けは欠かせません。