キャプチャーされた PIX データからの再生
PIX では、実験を実行してアプリケーションによる Direct3D 呼び出しをキャプチャーするときに、呼び出しで使用されたすべての情報も同時に収集されます。そのような情報には、メッシュ、テクスチャー、Direct3D に渡されたデバイス オブジェクトがあります。
そのため、PIX では、同じ情報を使用してサービスを呼び出して、同様のレンダーされた結果を生成することにより、Direct3D のすべての呼び出しを再生成するために必要な、あらゆる情報が保持されます。
したがって、PIX では、Direct3D 描画呼び出しのシーケンスをキャプチャーされたデータ内の任意の位置まで再生するという、最も重要かつ有用な機能の 1 つを実行できます。
PIX では、キャプチャーされたデータが、以下の 2 つの方法で再生されます。
- 完全な再生
- [レンダー](Render) タブ内での再生
完全な再生
PIX 実行 (.PIXRun) ファイルにキャプチャーされた全データの完全な再生は、再生可能な Direct3D 呼び出しストリームがキャプチャーされた場合 (たとえば、キャプチャーされたデータのタイプが「フルストリーム キャプチャー Direct3D」である場合) にのみ可能です。
完全な再生の開始方法
- PIX のメイン メニューで、[ファイル](File) メニューの [Playback Stream] をクリックします。または、Ctrl キーを押しながら P キーを押します。
- その後表示される [ファイルを開く](Open File) ダイアログで、再生する PIX 実行 (.PIXRun) ファイルを指定して、[開く](Open) をクリックします。
キャプチャーされたすべての Direct3D 呼び出しが、新しいウィンドウに再生されます。すべてのフレームが再生されるまで、再生が続行します。再生では Direct3D のレンダリング機能のみが実行されるため、アプリケーションのその他の機能 (キーが押された場合の応答など) は使用できません。
キャプチャーされたデータの再生は、PIX の実験の一環として実行することもできます。詳細については、「PIX での再生のキャプチャー」を参照してください。
[レンダー](Render) タブ内での再生
実行ビューの [詳細](Details) パネルの [レンダー](Render) タブには、Direct3D 呼び出しが再生されるときに、それらの呼び出しがレンダーされた結果が表示されます。
図形 1. 完全なフレームのレンダリング再生
レンダリング再生は、[イベント](Events) パネルに現在フォーカスのあるイベントの完了と対応して実行されます。上記の例では、最上位レベルのフレーム イベントに現在フォーカスがあるため、すべての Direct3D 描画呼び出しが完全に再生され、[レンダー](Render) タブにフレーム全体が描画されています。
[レンダー](Render) タブの表示内容は、キャプチャーされたデータの一部ではなく、PIX によりキャプチャーされたデータによって生成されたものです。[イベント](Event) パネルのフォーカスが新しいイベントに変わるたびに表示内容が生成されます。そのため、[レンダー](Render) タブの表示内容が PIX によって更新される際の応答に多少の遅延が生じることがあります。
この遅延によって生産性が低下する場合や、レンダリングの再生が必要でない場合には、[詳細](Details) パネルで静的情報を表示するタブを選択してください。その場合は、[概要](summary) タブを選択するとよいでしょう。PIX では、[レンダー](Render) タブの更新が必要なくなると、遅延を最小限に抑えて応答できるようになります。
再生の制御
[イベント](Events) パネルでは、[レンダー](Render) タブに表示される再生の状態を制御します。
[レンダー](Render) タブには、現在フォーカスがあるイベントの完了後の画面の状態が常に表示されます。現在フォーカスがあるイベントが、イベント ツリーで他のイベントの親である場合 (つまり、Direct3D 機能が他の Direct3D 機能を呼び出す場合) は、[レンダー](Render) タブで、すべての子イベントを含むイベント全体が再生されます。
キャプチャーされた Direct3D イベントのほとんどでは、画面に変更が生じません。Direct3D 描画呼び出しでのみ、画面に結果がレンダーされます。したがって、キャプチャーされた PIX データの再生中に [レンダー](Render) タブに結果がレンダーされます。
再生を簡略化するために、[イベント](Events) パネルには、次の描画呼び出しに進んだり前の描画呼び出しに戻ったりするためのボタンが表示されます。
描画呼び出しの再生方法
実行ビューの [イベント](Events) パネルで、最上位のフレーム イベントを選択します。
"次の描画" ボタンをクリックします。
チェスボードを描画する IDirect3DDevice9::DrawIndexedPrimitive の呼び出しに、現在フォーカスがあります。
[詳細](Details) パネルでは、[レンダー](Render) タブに、現在フォーカスがある Direct3D 描画呼び出しの再生結果が表示されます。
"次の描画" ボタンを再度クリックします。
この操作によって、チェスピースを描画する次の IDirect3DDevice9::DrawIndexedPrimitive の呼び出しにフォーカスが進められます。
[レンダー](Render) タブは、Direct3D 描画呼び出しの再生結果を示すように更新されます。
"次の描画" ボタンを再度クリックします。
[レンダー](Render) タブは、Direct3D 描画呼び出しの再生結果を示すように更新されます。
"次の描画" (または "前の描画") ボタンをクリックし続けることにより、Direct3D を通じてフレーム レンダリング シーケンス全体を再生することができます。