缓冲区是否在两个 GLSL 程序之间共享?

Are buffers shared between two GLSL programs?

在我的应用程序中,我需要通过 glUseProgram(program) 在两个 GLSL 程序之间切换。我想知道我是否写:

glUseProgram(program1)
buf1 = glGenBuffers(1)
glUseProgram(program2)
buf2 = glGenBuffers(1)

buf1和buf2可以是同一个值吗?即每个程序都有自己的缓冲区还是共享缓冲区?

创建缓冲区对象不受当前程序的影响。所以调用 glUseProgram 对缓冲区对象的创建没有影响。它们不与正在使用的任何程序相关联。