我有一个我正在尝试绘制的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);
编译好了,但我根本看不到我的对象。
谢谢。
答案 0 :(得分:1)
你可能看不到它,因为你的相机在物体里面。也许首先尝试将其缩放0.001以使其降低到大约60个单位,在z方向上将其平移-50(以使其达到z范围的中间),然后查看它是否显示出来。
或者你可以让你的z范围更大,并在z方向上将它转换为约50,000个单位,以将对象从相机移回。你必须调整znear / zfar然后要大得多。