gpt4 book ai didi

c++ - glTexImage2D 处的 GL_INVALID_VALUE

转载 作者:行者123 更新时间:2023-11-28 06:46:34 30 4
gpt4 key购买 nike

调用 glTexImage2D() 后出现 GL_INVALID_VALUE 错误

GLCheckForErrors();  // no error
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);
GLCheckForErrors(); // error printed here

我已将宽度和高度的值分别替换为 512 和 512,它解决了我的问题。这让我相信这是一个二次幂的问题。但我不明白的是我认为我正在使用的 opengl 版本有 NPOT 纹理?

OpenGL Version - 4.1 INTEL-8.28.30
GLSL Version - 4.10
Renderer - Intel HD Graphics 5000 OpenGL Engine

这应该可以很好地支持 NPOT 纹理吧?

谢谢

最佳答案

我的宽度参数似乎太大了(超过 24,000)。

我在一个长纹理中加载了一系列字符,所以我所做的只是删除不必要的字符以降低宽度,我不再收到该错误。

另一种解决方案是只设置固定宽度然后逐渐增加(但这对我来说并不容易,因为每个字符的宽度都是可变的)。

来自 glTexImage2D() man page 的相关错误条件是:

GL_INVALID_VALUE is generated if width or height is less than 0 or greater than GL_MAX_TEXTURE_SIZE.

可以使用 glGetIntegerv(GL_MAX_TEXTURE_SIZE, ...) 查询纹理大小的限制。

关于c++ - glTexImage2D 处的 GL_INVALID_VALUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891306/

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