我想让我的正方形适合屏幕的宽度。我已经成功地在我的设备上做到了如下所示:
@Override
public void onDrawFrame(GL10 gl) {
// Clears the screen and depth buffer.
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glClearColor(1f, 1f, 1f, 1f);
// Replace the current matrix with the identity matrix
gl.glLoadIdentity();
gl.glTranslatef(0f, 0f, -1.6f);
new Plane(1f,1f).draw(gl);
}
所以我的飞机是1f宽,1f高。通过将部件移动到屏幕1.6f中,正方形恰好适合屏幕的宽度。但在其他设备上,正方形变得太大,部分落在屏幕之外。
怎样才能使正方形的宽度适合屏幕的宽度?
发布于 2011-07-29 02:40:54
我刚开始使用android和openGL,所以可能会有一些我不知道的助手类。
问题出在宽高比(aspectRatio=screenWidth/screenHeight)上。这在不同的设备上是不同的,这会导致飞机离开屏幕。你应该根据宽高比来缩放所有的东西,或者制作一些始终横跨整个屏幕宽度但高度不同的窗口(高度会根据你想要的宽高比进行调整)。
如果你使用身份投影和相机,我认为你停留在NDC空间(或类似的空间),所以如果你在这个空间中渲染一个四边形,边缘在-1或+1中,你应该用这个四边形填充整个屏幕。
https://stackoverflow.com/questions/6863959
复制相似问题