我有一个正试图绘制的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.001,以将其缩小到约60个单位,然后将其在z方向上平移-50(以使其达到z范围的中间),然后查看它是否出现。
或者,您可以将z范围扩大很多,并在z方向上平移-50,000单位以将对象从相机移回。您必须将znear / zfar调整为更大。