シェーダは、さまざまな統一名+属性を多数持つことができます。私はどのように一般的な場合に動作するシステムを作ることができるので、シェイダーユニフォームの名前を事前に知っていなくても、その場所を取得するためにコードをハードコードする必要はありません。私はOpenGLを使用しています。シェイダーユニフォームの一般的な使い方は?
0
A
答えて
2
残念ながら、ある時点で、シェイダー内の統一名が何であるか、そしてそれらが何を参照しているのかを知る必要があります。
ほとんどのグラフィックス/ゲームエンジンは、慣例によって動作します。特定のユニフォームはエンジンによって設定され、シェーダは必要に応じて使用します。いくつかは設定を追加するので、各シェーダは必要な制服を指定できますが、通常は名前は引き続き慣例によって行われます。
1
名前付け規則を使用するか、シェーダ文字列を自分で解析して、型、記号、およびオプションの記憶域指定子を取得します。前者のオプションはシェーダプログラマに責任を負わせ、後者のソリューションはアプリケーションプログラマに負担をかけます。 このようなコードは、OpenGL 3.1のコアに昇格されたGL _ ARB _ uniform _ buffer _ objectという拡張子を使用すると、よりエレガントで効率的にすることができます
関連する問題
- 1. 使用して一般的な方法
- 2. 一般的な方法と
- 3. 静的な一般的な方法
- 4. 一般的なワイルドカードの正しい使い方
- 5. 一般的な/一般的なAndroid搭載端末のタッチポイント数
- 6. スパーク:一般的な「メモリ不足」エラーの一般的なベストプラクティス?
- 7. インターフェイスの一般的な種類とインプリメンテーションの一般的でない種類
- 8. は、一般的なパラメータ
- 9. 一般的なエラーは+
- 10. 一般的なドロップダウンリスト
- 11. 一般的なクエリメソッド
- 12. 一般的なスクレーパー
- 13. 一般的なサイドメニューコンポーネント
- 14. 一般的なパラメータタイプ
- 15. 一般的なインターネットファイルシステム
- 16. 一般的なリダイレクト
- 17. 一般的なスプリングカフカリスナー
- 18. 一般的なログパーサーアルゴリズム
- 19. 一般的な不一致
- 20. TPL一般的なリストの使用
- 21. erlangの一般的な使用例
- 22. 一般的なタイプの印刷方法
- 23. 一般的なリポジトリのモック方法
- 24. 一般的な方法 - コードの複製
- 25. モナドの再パック - 一般的な方法?
- 26. 一般的な静的メソッド
- 27. Linqのない一般的なコレクション
- 28. ジャスミンスパイオンとスパイの使い方一般的には
- 29. java 8 groupBYまたは一般的な方法を使用
- 30. エンティティの一般的なキー