gpt4 book ai didi

c++ - 带图像存储的 bindTextureUnit

转载 作者:行者123 更新时间:2023-12-02 10:04:15 26 4
gpt4 key购买 nike

我无法找到任何文档,但可以这样做:
layout(RGBA8, binding = 1) uniform image3D voxels;
在片段着色器中并使用 glBindTextureUnit(1, myTexture); 在 C++ 中绑定(bind)它?

还是我必须手动查询统一位置?

最佳答案

I was unable to find any documentation for this but is it possible to do [...]



是的。

Or do I have to query the uniform location manually?



不。

但是 glBindTextureUnit 是错误的指令。图像制服通过 texture image unit 链接到纹理对象。 .

在着色器程序中 binding points可以设置:

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

这相当于获取“体素”的统一位置并将其统一值设置为“1”。因此图像均匀 voxels ,与纹理图像单元“1”相关联。

纹理对象必须通过 glBindImageTexture 绑定(bind)到相应的纹理图像单元。 .例如:

glBindImageTexture(1, myTexture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA8); 

该指令绑定(bind) myTexture纹理图像单元 1。

注意, glBindTextureUnit(1, myTexture);将纹理对象绑定(bind)到纹理单元,该单元可由相应的纹理采样器制服使用。例如:

layout(binding = 1) uniform sampler3D voxels;

关于c++ - 带图像存储的 bindTextureUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61026086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com