我试图在我的 GLES 着色器中获取图像变量的绑定点。我可以使用该代码为制服或着色器存储块执行此操作:
GLenum Prop = GL_BUFFER_BINDING;
GLint Binding = -1;
GLint ValuesWritten = 0;
glGetProgramResourceiv( GLProgram, GL_UNIFORM_BLOCK, i, 1, &Prop, 1, &ValuesWritten, &Binding );
不幸的是,没有GL_IMAGE_BINDING
. 在桌面 GL 中,我只是使用统一获取图像的位置,GetUniformLocation
然后使用glProgramUniform1i
. 不幸的是,在 OpenGLES 中,glProgramUniform1i
只能用于采样器制服,不适用于图像制服。我需要这个绑定点的原因是因为我正在做自动资源绑定。我的资源可以与统一的变量名称相关联。我希望它们自动分配到正确的图像插槽。到目前为止,除了 GLES 上的图像之外,所有资源都可以正常工作。