9

私は OpenGL を使い始め、シェーダーを書き始めました。私のアプリは、シェーダー プログラムをロードしてコンパイルした後にエラーをチェックし、問題がある場合は情報ログを出力します。これはエラーをキャッチするのに最適ですが (私は初心者なのでたくさん作成しています)、ビルド時にこれらのエラーをキャッチすることを本当に望んでいます。

lint頂点シェーダーまたはフラグメント シェーダーの構文エラーを簡単にチェックできるツールがあれば、それをビルド プロセスに追加して、ビルドを停止させることができます。

そのようなツールを見つけることができませんでした。私はそれを書き始めましたが、OpenGL ES に取り組んでおり、ES ライブラリにリンクするデスクトップ プログラムを作成するのに苦労しました

多分私はどこかでそれを逃した。そのようなツールは存在しますか?

4

3 に答える 3

5

コマンド ラインでシェーダーをビルドできます。これは、c または c++ プログラムなど、使用しているプログラムをコンパイルするのと同じ方法です。Makefile を使用している場合は、シェーダーのコンパイルを追加するだけです。

Cg コンパイラを使用して、Cg シェーダと GLGL シェーダの両方をコンパイルできます。すべてのプラットフォームで利用できるはずです。

于 2010-10-25T10:19:36.013 に答える
2

また、リファレンス GLSL コンパイラ (OpenGL および OpenGL ES を処理) もあります。

http://www.khronos.org/opengles/sdk/tools/Reference-Compiler/

于 2014-09-25T15:32:39.783 に答える
1

この用途にShader Toyを適応させることができます。WebGL (OpenGL ES に基づく) に対してシェーダー コードをコンパイルし、エラーを報告します (出力を確認できるようにシェーダーも実行します)。

それを実行するには、Firefox (Minefield) または Chrome (Canary)のプレリリース ビルドが必要です。

コンパイル ステータスの結果を利用してビルド プロセスを停止する方法がわかりません... JavaScript からローカル ファイルに結果を書き込む方法はいくつかあります が、やや面倒です...

ただし、デスクトップ アプリをコンパイルする前に、Shader Toy でシェーダー コードの変更をインタラクティブにテストすることで、開発プロセスが改善される場合があります。あなたはモバイル デバイス用のデスクトップで開発しているように聞こえるので (そうですか?)、これは勝利です。

一方、ES ライブラリにリンクするデスクトップ アプリを動作させることができれば、多くの開発者が恩恵を受けるツールとなるでしょう。

于 2010-10-25T17:17:07.897 に答える