为OpenGL ES设置ViewPort - Android

时间:2012-05-15 15:31:15

标签: java android opengl-es viewport

我有一个我正在尝试绘制的OpenGL ES对象。该对象具有相当大的顶点值,x和y坐标位于-30,000和+30,000之间。 z值介于2000和-2000之间。

有人可以告诉我应该如何设置我的视口吗?我使用以下代码:

public void onSurfaceChanged(GL10 gl, int width, int height) {
    //Define the view frustrum
    gl.glViewport(0, 0, width, height);
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glLoadIdentity();
    float ratio = (float)width/height;
    GLU.gluPerspective(gl, 45.0f, ratio, 1, 100f);
}

public void onDrawFrame (GL10 gl) {
    // Clear the screen to black.
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    //Position the model.
    gl.glMatrixMode(GL10.GL_MODELVIEW);
    gl.glLoadIdentity();
    gl.glTranslatef(0.0f, 0.0f, 0.0f);
    //gl.glScalef(0.000015f,0.000015f,0.000015f);

编译好了,但我根本看不到我的对象。

谢谢。

1 个答案:

答案 0 :(得分:1)

你可能看不到它,因为你的相机在物体里面。也许首先尝试将其缩放0.001以使其降低到大约60个单位,在z方向上将其平移-50(以使其达到z范围的中间),然后查看它是否显示出来。

或者你可以让你的z范围更大,并在z方向上将它转换为约50,000个单位,以将对象从相机移回。你必须调整znear / zfar然后要大得多。