如何解决将空纹理绑定到图像单元会产生段错误
我想通过计算着色器绘制纹理。为此,我试图将纹理绑定到图像单元:
glBindImageTexture(0,texture,GL_FALSE,GL_WRITE_ONLY,GL_RGBA32F);
但是当我运行代码时,它会产生段错误。 这就是我创建空纹理的方式:
unsigned int texture;
glGenTextures(1,&texture);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,texture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,GL_RGBA32F,width,height,GL_RGBA,GL_FLOAT,nullptr);
glBindTexture(GL_TEXTURE_2D,0);
我使用了以下计算着色器教程:https://antongerdelan.net/opengl/compute.html
解决方法
根据 https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBindImageTexture.xhtml glBindImageTexture
仅适用于大于或等于 4.2 的 GL 版本。更新我的项目的 GL 版本后,现在每个人都可以正常工作了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。