OpenGL Uniform Buffer Objects と Shader Storage Buffers を調べています。質問は両方に当てはまると思いますが、UBO に焦点を当てましょう。
チュートリアルでは、「ブロック インデックス」と「バインディング ポイント インデックス」は別物だと言っているようで、シェーダーに複数の UBO がある場合は、バインディング インデックスを指定する必要があります。
layout(binding = 0) uniform first_buffer {...};
layout(binding = 1) uniform second_buffer {...};
ブロック インデックスはリンカによって決定されglGetUniformBlockIndex
、.binding=N
glBindBufferBase(GL_UNIFORM_BUFFER, N, ubo_handle)
ブロック インデックスとバインディング ポイントの違いは何ですか?
binding=N
レイアウトでを省略できますか? ではどうなりglBindBufferBase
ますか?
これはSSBOでも同じですか?