DirectX Pixel/Vertexシェーダーのデバッグ?
質問
DirectXでPixelとVertexシェーダーをデバッグする方法を把握しようとしています。WindowsにPIXを使用してみましたが、非常にバギーで効果的に非運用型であることがわかりました。私が自分のアプリケーション内でこれらのシェーダーをデバッグできるようにする代替品はありますか?
解決
HLSLシェーダーをデバッグするためのサードパーティのツールはわかりませんが、いくつかの簡単なテクニックを使用してデバッグするのは良い経験がありました。
CPUにレンダリングターゲットをコピーして、ビットマップに保存したり、ターミナルに印刷したり、CPUデバッガーにアクセスしたりできます。
バグがある場合は、最初に使用するバッファが本当に正しい値を持っているかどうかを確認する必要があります。最初は、間違ったパラメーターでいくつかのテクスチャが作成されるか、別の順序でデータが期待されることがよくあります...私の経験ではこれは一般的なエラーソースです。
他のヒント
要するに、いいえ。
はい、Pixは少しバギーですが、最初のリリース以来大幅に改善されています。最新のSDKを実行していることを確認してください!
情報を色として出力するだけです。たとえば、255*(通常+1)がR、G、Bとして出力できます。中間シェーダー変数を色として出力するか、シェーダーの境界内にあるかどうかを確認できます。そうでない場合。それは通常役立ちます。
Pix for WindowsにはDirectX SDKが付属しています(2010年6月から検証できます)。状態を賢明に設定しているものを視覚的にデバッグし、シェーダーをラインごとに踏み込むことができます。その命の恩人。
所属していません StackOverflow