私のエンジンでは、頂点/ピクセルシェーダファイルのペアからCgシェーダを読み込みます。シェーダを積み重ねて(照明+素材など)それらを組み合わせることができるようにしたいと思います。シェーダを分割して別々の関数に分割し、それらのシェーダスクリプトの文字列を1つ作成するのではなく、Cgで異なるシェーダを積み重ねる方法について知っていますか?Cgシェーダをスタッキングする
1
A
答えて
2
DirectX 11のダイナミックシェーダリンケージ機能に似ていますか? Cgのインターフェイス機能を使用すると、同じようなことを実現できます。シェーダを再設定して、照明が計算される方法を変更する、またはマテリアルタイプを変更するなどの作業を簡単かつきれいに行うことができます。
たとえば、シェーダを書きたいが、照明の計算方法を変更する必要があるとします。何らかの形で光を計算する関数を持つLightインターフェースを定義することができます。他の場所では、たとえば、CoolLightとUberLightのようにLightインターフェイスを実装します。実行時に、他のパラメータを指定するのとほぼ同じ方法で、Lightインターフェイスの実装を使用するかどうかを指定できます。
Cgユーザーマニュアル(http://developer.download.nvidia.com/cg/Cg_2.2/CgUsersManual.pdf)をご覧になることをお勧めします。 「共有パラメータとインタフェース」を検索すると、小さな例があります。
関連する問題
- 1. Unity/CG:頂点シェーダのスケールオブジェクト
- 2. CG/Unity:オブジェクトを複製するための玩具シェーダ
- 3. Cgシェーダから構造体パラメータを取得する
- 4. イメージをスタッキングするCSS
- 5. GTK +ウィジェットをスタッキングする
- 6. スタッキングgeom_ribbon
- 7. d3スタッキングとズーム
- 8. CGグラデーションクラッシュ
- 9. ミラーフリップCGパス
- 10. シンプルなGPUプログラミング(Cg?)
- 11. アンギュラjsキーでスタッキングを繰り返す
- 12. フォームmain + form子スタッキング問題
- 13. MVC3コントローラのスタッキング許可
- 14. Rのggplot2エラー:スタッキングYMIN = 0
- 15. Cgを使ったOpenGLライティング
- 16. OpenGLに関するCgの問題
- 17. iPhone/iPadのOpenGLとQuartz/CG
- 18. OpenGL-ESおよびCg
- 19. Cgコンパイラの後のバージョンで、より多くの命令を使用してシェーダを生成するのはなぜですか?
- 20. 2つの画像をCocoa/OSXでマージ/スタッキングする
- 21. CGラスタデータとは何ですか?
- 22. CG 3.0はリークしますか?
- 23. libgdxシェーダ - 基本シェーダですが、画面が空白です
- 24. Androidでシェーダをデバッグする方法
- 25. フレームバッファとOpenGLでシェーダを使用する
- 26. シェーダでウェーブワープエフェクトを作成するには?
- 27. travis-ciでWebGLシェーダを実行する
- 28. GPUでシェーダを実行するには
- 29. シェーダをデバッグするためのフリーソフトウェア
- 30. OpenGLプログラムにシェーダを添付する