bindTextureUnit带图像存储

问题描述 投票:0回答:1

我无法为此找到任何文档,但可以这样做:

layout(RGBA8, binding = 1) uniform image3D voxels;

在片段着色器中,并使用glBindTextureUnit(1, myTexture);在C ++中将其绑定?

或者我是否必须手动查询统一位置?

c++ opengl glsl
1个回答
0
投票

纹理采样器制服通过纹理单元链接到纹理对象。

在着色器程序中,必须设置binding points

layout(RGBA8, binding = 1) uniform image3D voxels;

binding = 1等同于获取“体素”的统一位置并将其统一值设置为“ 1”。因此,纹理采样器统一voxels与纹理单元1相关联。

纹理对象必须绑定到相应的纹理单元(请参见glBindTextureUnit)。

glBindTextureUnit

[glBindTextureUnit(1, myTexture); 绑定到纹理单元1。

© www.soinside.com 2019 - 2024. All rights reserved.