質問

シェーダは異なる均一名+属性の多くを持つことができます。どのように私は、私は事前に各シェーダ均一の名前を知っているし、その位置を取得するためのコードにそれをハードコーディングする必要がないように、一般的なケースで動作するシステムを作ることができます。私は、OpenGLを使用します。

役に立ちましたか?

解決

残念ながら、いくつかの点で、あなたはシェーダで均一な名前が何であるか、そして、彼らが何を参照してください...その周りに方法はただありません知っている必要があります。

慣例により、ほとんどのグラフィックス/ゲームエンジンの作品 - 特定のユニフォームは、エンジンによって設定され、必要に応じてシェーダはそれらを使用しています。いくつかの設定を追加しますので、各シェーダは、それが必要とするユニフォームを指定することができますが、一般的に、名前はまだ慣例によって行われます。

他のヒント

の命名規則を使用するか、またはタイプ、シンボルとオプションのストレージ指定子を取得するには、シェーダの文字列を自分で解析します。後者のソリューションは、アプリケーション・プログラマの負担を置く前者のオプションは、シェーダプログラマの責任を置きます。 このようなコードは、拡張 GL _ ARBを使用することにより、より多くのエレガントかつ効率的に行うことができますOpenGLの3.1のコアに昇進した_ _均一バッファ_オブジェクトに、

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top