【发布时间】:2012-01-12 23:30:20
【问题描述】:
我正在开发一个使用OpenGL 在草地上渲染3D 球的Android 应用程序。用户可以与球交互(通过触摸旋转它)。
问题如下:在我的三星 Galaxy S2 上一切正常,但是当我在其他设备上尝试时(HTC 令人难以置信的 S、HTC 感觉……)我得到一个扭曲的图像,屏幕上有多个裁剪的视口(见attached image)。
我已经尝试了所有我能想到的方法:禁用纹理、禁用灯光等等……似乎没有任何效果。
我知道如果没有实际代码很难提供帮助,但我真的不知道是代码的哪一部分导致了这种情况。所以我问是否有人知道可能导致此问题的原因。
我的猜测与 GLSurfaceView 或 Renderer 子类或这些对象的创建顺序有关...
查看附件图片,如果您知道问题所在,请告诉我。
编辑: onSurfaceCreated 代码:
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glClearDepthf(1.0f);
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthFunc(GL10.GL_LEQUAL);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glEnable(GL10.GL_NORMALIZE);
}
【问题讨论】:
-
您使用的是哪个版本的 Galaxy S2?根据维基百科,有不同的模型使用不同的 GPU。
-
型号:GT-I9100 但我也在 Galaxy Notes 上测试过,效果也很好