0

我对 openGLES1.0/1.1 的 2 限制的力量有点困惑

我应该使用什么尺寸的图像来为平板电脑或移动设备获得质量不错的风景背景?

我试过 512 x 512 和 1024 x 1024,但缩放比例都错了,图像看起来很糟糕。

安卓:1.6、1.7

4

1 回答 1

0

为此,我通常会创建一个比图像稍大的纹理,然后使用纹理子图像加载数据,然后创建纹理坐标以适应图像。

尝试做这样的事情:

float textureWidth = 1;
float textureHeight = 1;
while(textureWidth < imageSize.width) textureWidth <<= 1;
while(textureHeight < imageSize.height) textureHeight <<= 1;
//create texture with dimensions of textureWidth x textureHeight (glTexImage2D)
//fill the data with imageSize parameters and raw data from image (glTexSubImage)
float textureCoordinateWidthRatio = imageSize.width/(float)textureWidth;
float textureCoordinateHeightRatio = imageSize.height/(float)textureHeight;
float textureCoordinates[] = {
   .0, .0,
   textureCoordinateWidthRatio, .0,
   .0, textureCoordinateHeightRatio,
   textureCoordinateWidthRatio, textureCoordinateHeightRatio
};

现在只需像以前一样使用这些数据。

尽管您确实说过缩放比例是错误的。如果通过缩放表示比例宽度/高度是错误的,那么您的问题很可能出在以太顶点数组(错误的坐标)和/或“正交”或“视口”中。在这种情况下,上述解决方案将无效。如果您的结果是不清晰的背景(或模糊),这可能是您正在寻找的解决方案,但也可能只是使用纹理参数来解决。

于 2013-05-13T06:49:49.423 回答