无法使用OpenGL显示NPOT纹理

时间:2012-06-15 15:09:38

标签: opengl nvidia

我编写一个C ++简单应用程序,找出为什么我不能使用“GL_Texture_2D”作为texture_target显示任何NPOT纹理。在某些时候,我需要生成一些Mipmap,所以 使用矩形纹理不是一种选择。

我正在运行Win7 Pro(x64),Intel i7-2600K CPU,8GB内存,NVIDIA Quadro 600.我的quadro驱动程序是296.35,支持OpenGL 4.2。

1工作版 使用“默认”纹理时,它会平滑运行并显示任何NPOT纹理。

glBindTexture( target = GL_TEXTURE_2D, texture = 0 )

2破碎版 因为,我需要更多的1个纹理,我需要得到他们的“名字”。 我们很快就试图绑定一个命名纹理,调用glGenTexture并将该纹理用于glBindTexture,我得到的只是一个白色矩形。

glGenTextures(n = 1, textures = &2)
glBindTexture(target = GL_TEXTURE_2D, texture = 2)

我确定我的硬件支持NPOT纹理,我检查了openGL扩展并列出了“GL_ARB_texture_non_power_of_two”。此外,我正在使用而不是典型的Windows版本。

我也在nvidia论坛上问了这个问题,in this post你会找到两个日志文件

1 个答案:

答案 0 :(得分:1)

GL_TEXTURE_MIN_FILTER defaults to GL_NEAREST_MIPMAP_LINEAR.

上传mipmap或切换到GL_NEAREST/GL_LINEAR