gpt4 book ai didi

opengl - glActiveTexture() 抛出 GL_INVALID_ENUM

转载 作者:行者123 更新时间:2023-12-02 09:03:54 28 4
gpt4 key购买 nike

线路

glActiveTexture(GL_TEXTURE0+32);

抛出 GL_INVALID_ENUM (因为我发现运行 glGetError()),而

glActiveTexture(GL_TEXTURE0+31);

运行良好。

根据the documentation :

"GL_INVALID_ENUM is generated if texture is not one of GL_TEXTUREi, where i ranges from zero to the value of GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS minus one."

但在我的例子中,GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 被定义为 35661,并且根据相同的文档

"The number of texture units is implementation dependent, but must be at least 80."

我该如何解决这个问题?

以防万一,GL_TEXTURE0 定义为 33984,我的 OpenGL 版本是 2.1

最佳答案

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 可以定义为 35661,但这不是您想要的,那是枚举的值(与定义 GL_TEXTURE0 相同)如33984)。这些值根本没有任何意义。

您可以通过查询 glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &texture_units); 来获取该数字,这将返回您可以使用的纹理数量。在 OpenGL 2.1 硬件上很可能是 32。

关于opengl - glActiveTexture() 抛出 GL_INVALID_ENUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23128894/

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