gpt4 book ai didi

opengl - 具有内部格式的纹理的帧缓冲区附件不完整?

转载 作者:行者123 更新时间:2023-12-03 09:19:26 24 4
gpt4 key购买 nike

所以我试图创建一个帧缓冲区,在其中渲染纹理,但我似乎无法让它使用我需要的格式。那就是GL_RGB32F。它适用于 GL_RGB16F 和 GL_RGBA32F 所以我不明白为什么 GL_RGB32F 从 glCheckFramebufferStatus 给我 GL_FRAMEBUFFER_INCOMEPLETE_ATTACHMENT 。我也没有从创建纹理的调用中得到任何错误。使用该内部格式是否有特殊要求?我可以看看我是否支持它吗?

glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);

glGenTextures(1, &positionTexture);
glBindTexture(GL_TEXTURE_2D, positionTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, width, height, 0, GL_RGB, GL_FLOAT, nullptr);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, positionTexture, 0);

最佳答案

GL_RGB16FGL_RGB32F 不是 GL 中必需的颜色缓冲区格式,而 GL_RGBA32F 是必需的。您可以查看 OpenGL 4.5 core profile specification 的表 8.12 (第 198-200 页,假设该文件于 2017 年 6 月修订)。它告诉您,所有这些提到的格式都是可渲染的,但该组中只有GL_RGBA32F必需的渲染格式。实现可能会选择性地支持其他实现,但您不能依赖于此。

关于opengl - 具有内部格式的纹理的帧缓冲区附件不完整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262493/

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