シェーダープログラムをデバッグするにはどうすればよいですか?


18

私はGLSL頂点シェーダーをデバッグしている最中で、自分が間違っているという感覚を揺るがせません。

一般に、トレースの不足を補うために2つの戦略があります

  • フラグメントシェーダーに渡すデバッグカラー変数に値を詰め込み、カラーの解釈を試みます。
  • 頂点シェーダーコードを変更して、何が起こるかを確認します。

何らかの方法でテクスチャに値を書き込み、GPUからテクスチャを読み取り、テクスチャに詰め込まれた値を印刷することで、理想的にはトレースの不足を補うことができると考えています。

私の推測では、もっと良い方法があるかもしれません。助言がありますか?

回答:


3

私の友人はこれにglslDevilを使用し、大丈夫だと言いました。

GLSLに縛られていない場合、MicrosoftにはPIXと呼ばれるDirectX用の素晴らしいツールがありますが、OpenGLに相当するものはないと思います。


glslDevilをダウンロードしましたが、ほとんどの機能が動作しません。トレースは機能し、シェーダーをステップスルーしますが、変数の値が表示されません。
ジョナサンフィショフ

2

nVidiaには素晴らしいシェーダーデバッガーがあります。あなたはそれを見つけることができ、そのスペックはこちら

Update 2016:Visual Studioプラグインもあります。これは、おそらく開発者を支援するための新しい取り組みです。https//developer.nvidia.com/nvidia-nsight-visual-studio-edition


typo:その仕様
o0 '。

THX。=)私はそれらの時間の70%を正しく受け取ります。DainBramageのせいだ。
ネイラー

:(しかし何GLSLのサポートはありませんが、私はことを試してみるかもしれませんが、自動的にGLSLするCGシェーダを変換することができますように見えます。
ジョナサンFischoff

あなたはそれについて正しいですが、私は利点が欠点を上回ると思います。その上、FX composerは非常に気の利いたアプリです。
ネイラー

リンク切れ....
UpTheCreek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.