我正在尝试在 openGL 环境中显示图片。图片的原始尺寸是 3648x2432,我想用 256x384 的图像显示它。问题是,384 不是 2 的幂,当我尝试显示它时,它看起来被拉伸了。我该如何解决?
majdal
问问题
1665 次
4 回答
3
我知道有三种方法可以做到这一点 -
- 阿尔伯特建议的那个(调整大小直到适合)。
- 将纹理细分为 2**n 大小的矩形,并以某种方式将它们拼凑在一起。
- 看看能不能用
GL_ARB_texture_non_power_of_two
。不过最好避免使用它,因为它看起来像是 Xorg 特定的扩展。
于 2008-12-12T16:54:08.600 回答
2
您可以调整纹理的大小,使其为2 的幂(倾斜纹理,以便在映射到对象时看起来正确)。
于 2008-12-12T16:46:22.033 回答
0
ARB_texture_rectangle
可能是您正在寻找的。它允许您绑定到GL_TEXTURE_RECTANGLE_ARB
而不是GL_TEXTURE_2D
,并且您可以加载具有非 2 次方维度的图像。请注意,您的纹理坐标范围为 [0..w]x[0..h] 而不是 [0..1]x[0..1]。
于 2008-12-12T17:01:57.633 回答
0
如果 GL_EXT_texture_rectangle 为真,则将 GL_TEXTURE_RECTANGLE_EXT 用于 glEnable() 和 GLBindTexture() 调用中的第一个参数。
于 2008-12-23T20:08:17.963 回答