2011-08-07 2 views
2

オープンソースプロジェクトのFPSカウンタクラスを使用していますが、私は奇妙な問題があります。私は東芝衛星(非常に高速)でそれを実行すると、カウンタは60fpsで最大に見える。それは素晴らしいことです。問題ない。私は別のコンピュータ、EEEを持っているし、それはFPSのクロックを高くするだろう。場合によっては132fpsを得ることができ、それははるかに遅いコンピュータです。これにより、メインのコーディングコンピュータでフレームレートが増加するのをテストすることが難しくなります。FPSカウンタの奇妙な問題 - 新しいコンピュータでは60fpsに制限

明らかに、問題はプロセッサ間で異なるコード呼び出しではありません。鋭い目であなたの誰かがそれが何であるかを見つけ出し、代替案を提案できますか?どうもありがとうございます!

ヘッダー:

#ifndef FPS_COUNTER_H 
#define FPS_COUNTER_H 

class FPS_COUNTER 
{ 
public: 
    void Update(void);         //updates counter - call once per frame 
    void Shutdown(void);        //send max, min, average to log 
    float GetFps(void) {  return fps;  } 

    FPS_COUNTER() : fps(0.0f), lastTime(0.0f), frames(0L), time(0.0f) 
    {} 
    ~FPS_COUNTER() {} 

protected: 
    float fps; 

    float lastTime; 
    long frames; 
    float time; 
}; 

#endif //FPS_COUNTER_H 

CPP

#include <windows.h> 
#include "LOG.h" 
#include "FPS_COUNTER.h" 

extern LOG errorLog; 

void FPS_COUNTER::Update(void) 
{ 
    //keep track of time lapse and frame count 
    time = timeGetTime()*0.001f;       //get current time in seconds 
    ++frames;            //increase frame count 

    if(time-lastTime>1.0f)         //if it has been 1 second 
    { 
     fps  = frames/(time-lastTime);     //update fps number 
     lastTime= time;          //set beginning count 
     frames = 0L;          //reset frames this second 
    } 

} 

編集:私はそれはtimeGetTime()の呼び出しでの動作を仮定 - それは、それは全体の私のEERでないように動作させるためにどのような方法があります任意のプロセッサ?

+2

vsyncはおそらく... –

+0

さらに正確な測定にはQueryPerformanceCounterを使用してください。 –

+0

更新機能でデバッグを済ませましたか? ITが1秒間に60回以上呼び出されているかどうかを確認する。コードから、それは60に制限されているようには見えません。私はそれがtimeGetTime()にあるとは思っていませんが、それはちょうど私の直感です。 – Suroot

答えて

4

60 FPSでキャップするコンピュータでVsyncが有効になっているかどうかを確認します。 Vsyncはフレームレートをモーターの同期レートに正確に合わせます。アンキャップされたFPSを取得するには、グラフィックスドライバのコントロールパネルでVsyncを無効にするだけです。

+0

これで作業が終了しました。デスクトップを右クリックします。それは、NVIDIAのコントロールを示した。私はvsyncを強制的にオフに強制的に、下の3D設定を管理する。ご協力ありがとうございます。より具体的な回答が必要な方に役立つことを願っています。 –

+0

@Monikerなぜあなたのモニターよりも高いフレームレートが必要ですか? – ybungalobill

+0

@ybungalobill:なぜあなたは尋ねますか?キャップされていないFPSを表示する理由はたくさんあります。 – Kromster