我无法为此找到任何文档,但可以这样做:
layout(RGBA8, binding = 1) uniform image3D voxels;
在片段着色器中,并使用glBindTextureUnit(1, myTexture);
在C ++中将其绑定?
或者我是否必须手动查询统一位置?
纹理采样器制服通过纹理单元链接到纹理对象。
在着色器程序中,必须设置binding points:
layout(RGBA8, binding = 1) uniform image3D voxels;
binding = 1
等同于获取“体素”的统一位置并将其统一值设置为“ 1”。因此,纹理采样器统一voxels
与纹理单元1相关联。
纹理对象必须绑定到相应的纹理单元(请参见glBindTextureUnit
)。
glBindTextureUnit
[glBindTextureUnit(1, myTexture);
绑定到纹理单元1。