私はOpenGLでいくつかのオブジェクトを持っており、選択したオブジェクトをマークしたいと思います。私の考えは、選択された色を追加するためにGLSLシェーダを使用することでした。 フラグメントシェーダーでピクセルの「元の」色を取得するにはどうすればよいですか? テクスチャで色を見ることができますが、複数のテクスチャがある場合は?オブジェクトをカラー化するための一般的なGLSLシェーダーの書き方
0
A
答えて
0
選択したオブジェクトを特定のシェーダでレンダリングする場合は、オブジェクトの通常のレンダリング(ライティング、テクスチャリングなど)と同じ動作をするシェーダを作成する必要があります。つまり、ピクセルの色を自分で計算する必要があります。
オブジェクトをすべてレンダリングしてから選択を追加する場合は、フラグメントシェーダからフレームバッファのピクセルの色を取得することはできません(フレームバッファからテクスチャを作成して使用する必要があります。しかし、それは範囲外です、と私は思います)。
0
オプションA)現在の拡散色/テクスチャに色を追加し、そのフラグメントシェーダを選択したものにのみ適用することができます。 color = ... gl_FragColor = mix(color、selectioncolor、0.5);
オプションB)あなたは
オプションをフレームバッファにレンダリングして、色を追加するオブジェクトをpostproccessシェーダを変更すると、オブジェクトを識別するためにあなたの能力に依存します。
関連する問題
- 1. 3DSMaxのGLSLシェーダー
- 2. glslにcgaシェーダーを書き込む方法は?
- 3. JSDoc - 一般的なキー名でオブジェクトをドキュメント化する方法
- 4. Pythonでプラグインクラスをテストするための一般的なunittestを書く方法
- 5. 大きなウェブサイトをスタイリングするための一般的なパターン
- 6. GLSLシェーダーとWebGLの問題
- 7. 一般的なグループを書く方法
- 8. 一般的なグループ化
- 9. オブジェクトの変更を追跡するための一般的なアドバイス
- 10. オブジェクトの一般的なパフォーマンスと辞書のJSONから/へJSON
- 11. オンラインで書籍を公開するための一般的なフレームワーク
- 12. バックグラウンドスレッドでシングルトンを初期化するための一般的なパターン
- 13. C#任意のアルゴリズムのための一般的な方法
- 14. 一般的なフィールドを持つことができるpojosを書くための最良の方法
- 15. コントロールの一般的なリストの辞書
- 16. 最も一般的な/一般的な南米のスペインの文化が
- 17. 一般的な名前の一般的なスペルミスをチェックするためのJSON Webサービス。 "Aberaham Lincoln"?
- 18. Python辞書の一般的な値
- 19. 一般的なオブジェクト内のリストにアクセスする方法
- 20. セレンの一般的なフィールド初期化
- 21. 一般的なDecalarationの最適化
- 22. 一般的なEnum Jsonの逆シリアル化
- 23. 一般的なウェブカメラでのオブジェクト検出
- 24. 一般的なオブジェクト配列の検索
- 25. 汎用オブジェクトの一般的なリスト
- 26. オブジェクトを提供するためのファクトリパターンで一般化されたメソッドを書くには?
- 27. 構造体アクセスを一般化するための効率的かつ実践的な方法は?
- 28. Android - スクリーンレイアウトをスケーリングするための一般的なテクニック
- 29. スパークアプリケーションをコーディングするための一般的な言語
- 30. 一般化された(テンプレート)コンテナのアウトパターを書く方法