[解決済み] コンセプト:glDrawBufferとglDrawBuffersの使い分けは?
2022-02-18 11:10:54
質問
私は赤い本のOpenGLプログラミングガイドを読んでいて、以下の2つのメソッドに出会いましたが、すでに出力先のカラーバッファを
layout (location = )
または
glBindFragDataLocation
. 私は何か誤解しているのでしょうか?
解決方法は?
フレームバッファに接続されたすべてのカラーアタッチメントが、シェーダプログラムによってレンダリングされる必要はありません。
glDrawBuffers
は、描画するカラーバッファのリストを指定する。
例)3色の色付けをしたフレームバッファがあるとします。
GL_COLOR_ATTACHMENT0
,
GL_COLOR_ATTACHMENT1
と
GL_COLOR_ATTACHMENT2
:
フラグメントシェーダ
layout (location = 0) out vec4 out_color1;
layout (location = 1) out vec4 out_color2;
drawbufferr の仕様です。
const GLenum buffers[]{ GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT0 };
glDrawBuffers( 2, buffers );
out_color1
はそのデータをインデックス 0 のドローバッファに送ります (これは
location = 0
という宣言があります)。の呼び出しは
glDrawBuffers
上記はこのバッファを
GL_COLOR_ATTACHMENT2
. 同様に
out_color2
はそのデータをインデックス 1 に送信し、インデックス 1 に設定された
GL_COLOR_ATTACHMENT0
. アタッチメント1にはデータが書き込まれない。
関連
-
[解決済み] OpenGL - なぜ、インデックスのためのGL_ELEMENT_ARRAY_BUFFERなのですか?
-
[解決済み] glGetShaderiv() GL_COMPILE_STATUS GL_FALSE を返す
-
[解決済み] OpenGL GLXエクステンションはサポートされていません
-
[解決済み] gl_PointSizeの動作について
-
[解決済み] コンセプト:glDrawBufferとglDrawBuffersの使い分けは?
-
[解決済み] OpenGL - glDepthMaskの使い方についての質問です。
-
[解決済み] GL_COLOR_BUFFER_BITとGL_DEPTH_BUFFER_BITは何のためにあるのでしょうか?
-
[解決済み] 最新のOpenGLでレイトレーシングを行うには?
-
[解決済み】OpenGLのテキストレンダリングは、バージョン4.1現在、何が最先端なのでしょうか?[クローズド]。
-
[解決済み] OpenGLのフレームバッファとレンダーバッファの概念と違いについて教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] OpenGL - なぜ、インデックスのためのGL_ELEMENT_ARRAY_BUFFERなのですか?
-
[解決済み] glEnableVertexAttribArrayは具体的に何をするのですか?
-
[解決済み] glReadPixelsはどのように動作するのですか?
-
[解決済み] Emscripten/OpenGLのコードで「glDrawArrays: attribute 1の範囲外の頂点にアクセスしようとする」(ネイティブC++では動作する) [終了しました]
-
[解決済み] glBlitFramebufferを使用してテクスチャを表示する
-
[解決済み] 頂点シェーダとフラグメントシェーダにおけるgl_Colorとgl_FrontColorの関係を教えてください。
-
[解決済み] gl_FragColorとout vec4カラーを使用する?
-
[解決済み] 最新のOpenGLで複数のテクスチャをレンダリングするには?
-
[解決済み] gl_PointSizeの動作について
-
[解決済み] バーテックスシェーダとフラグメントシェーダの比較 [重複].