[過去ログ] OpenGL/Vulkanスレ Part22©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
736(3): デフォルトの名無しさん [] 2017/11/24(金)22:02 ID:Z1PbZD/w(1)
glfwとglewで OpenGL 4.6 ターゲットにプログラムしています。
glslの "layout(binding = N)" が反映されず困っています。
glGet○○すると 0 が返って来ます。
どうやら宣言順にインデックスが付けられてるようで
glGet○○の値を使えば正常に動作します。
でも気持ち悪いです。
何で binding 指定が有効にならいのでしょうか?
初めはUniformBuffer使おうとして気づいたのですが、
ショートプログラムで確認した結果、
shaderStorage、sampler、image等も同じく反映されないようです。
環境はGeforce GTX760、ドライバVer388.13、VSコミュ2017使ってます。
737: デフォルトの名無しさん [] 2017/12/02(土)08:41 ID:JvMTpbwK(1)
>>736
横からだが、シェーダ側で指定したバインド順番をCPUに強制させたいという話かと理解したが
それは後方互換性を維持するためではないかと
739(1): デフォルトの名無しさん [sage] 2017/12/02(土)09:46 ID:PRegk6Y6(1)
>>736
GLSL一行目の#version指定が正しくないとか?
layout指定は300以降だったかな?
OpenGL/GLESとGLSLのversion指定って混乱するよね……
743: 736 [] 2017/12/05(火)23:38 ID:WoyHGfNJ(1)
自己解決しました。
glGet(Uniform/Resoruce)Indexが返す値が"layout(binding = N)"のNと思い込んでいました。
プログラムオブジェクトに入力するパラメータは必ずバインドしないといけないと思い込んでおりました。
layout(binding = N) と glBindBufferBase(GL_UNIFORM_BUFFER, N, ubo);
が対になっていてglUniformBlockBinding呼ぶ必要ないと。
酒飲んでプログラムすると駄目だなぁ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.031s