NVIDIAのPerfHUDでパフォーマンスチェックDirectXでプログラムを組んでいると時に「?」という良く分からない描画結果になったりすることがあります。半透明のモデルを描画した時に何故か背後のオブジェクトがバキッと切れてしまった、板ポリゴンを描画しているはずなのに画面にでない、など。いうわけだかあるシーンだけが異常に重いという事もあります。いう時に役立つのが「パフォーマンスチェック」です。DirectXの場合は多くの部分が隠蔽されてしまっているため、何が原因であるかを特定しにくかったりします。NVIDIAが提供しているPerfHUDはそんな悩みを解決してくれる一つの強力なツールです。YouTubeでのチュートリアルはこちら:http://www.youtube.com/watch?v=UdDfvq0cL04PerfHUDを使うと、なんとDirectXのDraw系メソッド(IDirect3DDevice9::DrawPrimitiveなど)の単位で描画ステップを再現してくれます。その描画にかかった時間、使用したテクスチャなども詳細に見ることができます。シェーダを使った場合はシェーダコード(アセンブリ)までも見ることができます。このように機能盛りだくさんのPerfHUDですが、これを使用するにはプログラムを少しだけ追加する必要があります。この章ではその追加部分に焦点を当てます。PerfHUDの導入PerfHUDはNVIDIAのホームページからダウンロードできます(こちら)。6.62(2010.4現在)」からお使いの開発機に該当するPerfHUDを選択します。Tutorial」などのドキュメントもダウンロードした方が良いかと思います。ダウンロードしたファイルを実行してインストールをします。インストール作業までは指示に従えば良いので割愛致します。再起動を促されると思いますので気を付けて下さい。インストールが終了したらデスクトップにPerhHUDのアイコンが出来上がったと思います。これでPerfHUDを使える環境が整いました。PerfHUDの仕組み一般に、パフォーマンスチェックを行うためにはプログラムのあちこちにチェックするためのコードを埋め込む必要があります。FPSを計測するのもそうですよね。PerfHUDも内部ではそういうコードの埋め込みを行っていると思われます。それは私たちからは見えない描画デバイスの内部です。普段私たちはIDirect3DDevice9(描画デバイス)を作成して描画を行います。このインターフェイスはドライバとプログラムとの媒介になってくれています。NVIDIAのPerhHUDはこの描画デバイスを独自のパフォーマンスチェックが行えるデバイスに置き換えます。描画デバイスを作成する所の書き換えが必要なんです。描画デバイス作成失敗}IDirect3D9インターフェイスを作成した後に、PerhHUD用のアダプタ(仮想グラボのようなものだと思って頂ければ良いです)を探しています。見つかったらadapterToUseにそのアダプタ番号、そしてdeviceTypeにリファレンスモードフラグを格納しています。PerfHUDはソフトウェアエミュレーションで動くんです。後はそのアダプタ番号とデバイスタイプをいつものIDirect3D9::CreateDevcieメソッドに渡してあげるだけです。このコードを皆さんお使いのエンジンに組み込む必要があります。PerhHUD起動このソースを入れて「じゃぁ実行」とやっても、じつはPerfHUDは起動しません。PerfHUDは「実行ファイルをデスクトップ上のアイコンに投げる」事で初めて起動するんです。VisualStudioで作成した実行ファイル(.exe)をデスクトップのPerfHUDアイコンにドラッグしてみて下さい。それで色々なグラフが流れる画面が出たら成功です!デフォルトでPerfHUDはOffになっています。すると下にバーが出ます。後はこのバーをクリックすると各種パフォーマンスチェックが行えます。最初はまってドキッとするのがPerhHUDの終了です。PerfHUDがOnになっている状態では右上の終了ボタンなど各種終了が行えません。PerfHUDを終了するには一番左側の「PerformanceDashborad」をクリックしてから「Ctrl+Z」でPerfHUDをOffにします。この章を設けた裏の理由は「PerfHUDの挿入コードってどうだっけ?」という私の備忘録の為...というのが本音です(^-^;。毎回このコードをPDFで見てそれを書き換えて挿入するのがとかく面倒でして。してサイトに残しておけば楽々です。PerfHUDは知りたい所に手が届いているツールです。皆さんも積極的に使ってみて下さい。