是否有更有效的方法来处理OpenGL ES纹理的2 ^ n像素大小要求?

时间:2009-07-28 04:33:13

标签: opengl textures texture2d

对不起,如果我的问题没有清除。让我详细说明一下。

我有一个尺寸为100 x 200的矩形,我有一个100 x 200的图形尺寸,适合矩形。由于OpenGL要求所有纹理都具有2 ^ n的宽度和高度,因此我基本上将100 x 200图形右侧放入128 x 256图像中。它适用于OpenGL,因为我只是要求它只绘制矩形所需的纹理的一部分。但是,让我印象深刻的是,在128 x 256纹理中,有很多未使用的空间。

在这种情况下,是否有更好的方法来处理这些未使用的空间?或者这应该是要走的路?

3 个答案:

答案 0 :(得分:5)

将多个纹理打包到一个“工作表”中。

答案 1 :(得分:1)

如果你必须减少填充以节省内存,你可以将图像分成多个pow2纹理,例如将100像素水平分成64,32和200像素垂直分成128,64,8。您还需要将正在纹理化的矩形分割成多个相应的矩形(四边形)。

在此示例中,您将渲染9个四边形/纹理而不是1,因此您需要测量应用程序中是否存在性能损失。

如果您使用双线性插值,则无法使用此技术,因为您需要纹理边框,我认为OpenGL ES不支持该纹理边框。

答案 2 :(得分:0)

调整图片大小以更好地适应。 在这个世界上,你什么也得不到。