使用
glBindBufferBase
和 glUniformBlockBinding
,您可以连接制服和缓冲区以将数据提供给着色器。
您绑定缓冲区的“绑定点”(索引)是否在着色器之间共享?例如。您是否需要保留哪些缓冲区绑定到哪个索引的列表,以便您可以连接要用于不同着色器中的多个制服的缓冲区(例如,存储视口大小的制服),或者可以为每个着色器单独绑定吗?
缓冲区绑定点是OpenGL上下文状态,而不是程序状态。着色器使用哪些绑定点是程序状态的一部分。因此,您可以通过让两个着色器使用相同的绑定点来“共享”绑定点,但不要更改它们之间实际绑定的内容。