cg/hlsl ハイブリッド シェーダーを glsl es シェーダーに変換できるツールを探しています。実行可能な hlsl キーワードですが、キーワード「extern」を理解しない hlsl2glsl を試しましたが、cgc を調べましたが、glsl es のコンパイル方法に関するドキュメントは見つかりませんでした。
ありがとう
古い質問ですが、とにかくこの回答を提供します。
[合法的に] Unity を対象とした優れた CG シェーダー コードを適切に使用したいと考えているときに、これに出会いました ;-)
Githubの CG-shader-to-GLSL-shader Python 変換スクリプト ' cg2glsl.py ' を見てください (ほとんどの OS でサポートされている、パッケージcgc
内にあるコマンドが必要です。nvidia-cg-toolkit
その使用法は、「 cg シェーダーからの変換 」で簡単に概説されています。
Tomaka17 の CG-to-GLSL 関連のブログ投稿「Cg を GLSL に変換し、コードを使用する」からの引用
Cg は nVidia が開発したシェーディング言語です。基本的に、すべてのシェーダーを Cg で記述します....Cg は実際にコードを API 固有の言語にコンパイルします。
Tomaka17の例では、彼は C++ を使用して nVidia の CG ライブラリ呼び出しをインターセプトし、コンパイルされた GLSL コードを抽出します。これは、 cg2glsl.pyが行うことと概念的に同じであると思います (ただし、Python を使用してコードをコンパイルする必要はありません)。 )。
cgc ファイル名 -profile glslv/glslf
ただし、glsl es の presecion を追加する必要があります。cg コンパイラはこれを行いません。