TOTAL:724, TODAY:100

文字描画と時間測定

今回は、glutでの文字列描画と時間測定の方法を紹介します。glutでの文字列の描画には、次の関数を使用すれば簡単に描画できます。
 ・glutBitmapCharacter
説明は面倒なので、Google等の検索エンジンで"glutBitmapCharacter"と入力すれば、使い方は分かると思います。
もう一つの時間測定ですが、グラフィックスの処理時間を計測するにはマイクロ秒クラスの分解能が必要ですので、次の関数を使います。
 ・QueryPerformanceCounter
これも、検索エンジンで探せば、詳しい使い方が分かります。はい、おしまい。
これだけでは寂しいので、一応サンプルプログラムを作成しました。次のような1秒当たりのフレーム数FPS(使用しているモニターの垂直同期に依存します)と描画に関係する処理のFPSが表示されると思います。

サンプルプログラムでは、描画処理のFPSとして(Draw=***[fps])、1フレームで行うOpenGLの設定や描画関数に掛かった時間を表示しています。しかし、GLの描画関数をコールしても、実際に描画が完了しているかは保障されないため、あまり正確ではありません。もう少し正確な描画時間が知りたければ、次のように、NVIDIAのコントロールパネルを使用して、垂直同期待ちをオフにすれば、より正確な時間が測定できます。
NVIDIAのコントロールパネルでいちいち変更しなくても、wglSwapIntervalEXT関数でプログラムから切り替えることが可能です。そのやり方を「GLEWで簡単GL拡張」にアップしましたので、もしよければそちらを参考にしてください。

すると、結果は下の絵のようになります。この状態でのFrame=***[fps]が1フレームの絵を描画するのに必要なフレーム速度(CPUとGPUが並列に走っている状態での処理時間合計の逆数)になっていると思います。きっとそうだと思いますが、間違っているかも。。。。

最新の7件

OpenGL

電子工作

玄箱HG

ホームページ

日記

Copyright (C) 2007 Arakin , All rights reserved.