用OpenGL1.0风景背景

时间:2013-05-13 05:33:45

标签: android opengl-es

我对openGLES1.0 / 1.1

的2限制的力量感到有点困惑

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

我尝试过512 x 512和1024 x 1024,但缩放是完全错误的,图像看起来很糟糕。

Android:1.6,1.7

1 个答案:

答案 0 :(得分: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
};

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

虽然您确实说缩放是错误的。如果通过缩放意味着比率宽度/高度是错误的,那么您的问题很可能是以醚顶点数组(错误的坐标)和/或“ortho”或“viewport”。在这种情况下,上述解决方案将无效。如果您的结果背景不清晰(或模糊),这可能是您正在寻找的解决方案,但也可能只是通过纹理参数来解决。