我正在尝试在openGL环境中显示图片。图片的origninal尺寸是3648x2432,我想用256x384图像显示它。问题是,384不是2的幂,当我试图显示它时,它看起来很紧张。我该如何解决这个问题?
答案 0 :(得分:3)
我知道有三种方法可以做到这一点 -
GL_ARB_texture_non_power_of_two
。尽管如此,最好避免它,因为它看起来像是特定于Xorg的扩展。答案 1 :(得分:2)
您可以调整纹理大小,使 为2的幂(使纹理偏斜,以便在映射到对象时看起来正确)。
答案 2 :(得分:0)
ARB_texture_rectangle
可能就是你要找的东西。它允许您绑定到GL_TEXTURE_RECTANGLE_ARB
而不是GL_TEXTURE_2D
,并且您可以加载具有非2次幂的图像。请注意,您的纹理坐标范围为[0..w] x [0..h]而不是[0..1] x [0..1]。
答案 3 :(得分:0)
如果GL_EXT_texture_rectangle为true,则使用GL_TEXTURE_RECTANGLE_EXT作为glEnable()和GLBindTexture()调用中的第一个参数。