FPSとはFrame Per Secondの略で、一秒間に行う描画の回数を示します。この数値が高ければ高いほど滑らかにアニメーションを動かすことができますが、その反面ハードウェアに高度な処理能力が要求されます。一般的には60fpsが標準値であり、これは家庭用テレビゲームと同等の数値になります。
1秒間でRenderProcコールバック関数が何回呼び出されるかを計算することでFPSを算出するプログラムを作ってみます。ステップ8で作成したXファイルを表示するプログラムに手を加えていきますが、その他のプログラムにも変更無しで活用できます。
FPSを計算する際に必要な変数を定義します。dwFPS変数にFPSが格納されます。
#include "testxfile.idx"
Dim ScreenX=640 As Long 'ディスプレイの幅 (ピクセル単位)
Dim ScreenY=480 As Long 'ディスプレイの高さ(ピクセル単位)
' TODO: この位置にグローバル変数を定義してください。
Dim pModel As *CMeshModel
Dim dwFPS=30 As DWord
Dim temp_FPS=30 As DWord
Dim temp_Count As DWord
FPSを計算する際に必要な変数を定義します。dwFPS変数にFPSが格納されます。
Sub RenderProc()
' TODO: この位置に描画に関するコードを記述してください。
Dim VectorPosition=[0,0,0] As D3DVECTOR
Dim VectorDirection As D3DVECTOR
VectorDirection.x=0
VectorDirection.y=GetTickCount()/1000
VectorDirection.z=0
pModel->Draw(VarPtr(VectorPosition),VarPtr(VectorDirection))
'FPSを計算
temp_FPS=temp_FPS+1
If GetTickCount()-temp_Count>1000 Then
temp_Count=GetTickCount()
dwFPS=temp_FPS
temp_FPS=0
End If
'テキスト情報を描画
Dim buf[255] As Char
wsprintf(buf,"%dfps",dwFPS)
dx_DrawText(10,10,buf,D3DCOLOR_XRGB(200,200,200))
End Sub
講座インデックスへ戻る | ©2005 Discoversoft |