私のエンジンでは、頂点/ピクセルシェーダファイルのペアから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. CGシェーダはDirectXで動作しますが、OpenGLでは動作しません
- 5. CGグラデーションクラッシュ
- 6. イメージをスタッキングするCSS
- 7. GTK +ウィジェットをスタッキングする
- 8. スタッキングgeom_ribbon
- 9. iOSのCGは
- 10. ミラーフリップCGパス
- 11. Cgのシェーダアルファブレンディング
- 12. d3スタッキングとズーム
- 13. スタッキング2列ベクトル
- 14. PostgreSQLマテリアライズドビューリフレッシュ "スタッキング"
- 15. シンプルなGPUプログラミング(Cg?)
- 16. Cgを使ったOpenGLライティング
- 17. スタッキングとキューイング:効率
- 18. スタッキング2-Dアレイは
- 19. Highcharts列スタッキングのみ
- 20. CSS移行スタッキングですか?
- 21. OpenGLに関するCgの問題
- 22. iPhone/iPadのOpenGLとQuartz/CG
- 23. OpenGL-ESおよびCg
- 24. シェーダでsampler2Dをクリップする
- 25. QRコードをレンダリングするシェーダ
- 26. アンギュラjsキーでスタッキングを繰り返す
- 27. Cgで配列要素が空であるかどうかを確認するにはどうすればよいですか?私のシェーダで(ユニティシェーダ現像)
- 28. MVC3コントローラのスタッキング許可
- 29. ffmpeg - スケーリングとスタッキング2ビデオ?
- 30. Rのggplot2エラー:スタッキングYMIN = 0