2012-05-15 4 views
2

У меня есть объект OpenGL ES, который я пытаюсь сделать. Объект имеет довольно большие значения вершин с координатами x и y, лежащими между -30 000 и +30 000. Значения z находятся между 2000 и -2000.Настройка ViewPort для OpenGL ES - Android

Может кто-нибудь посоветует мне, как мне настроить мой видовой экран? Я использую следующий код:

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

Вы хотите использовать перспективную проекцию (использует ракурс), или вы в порядке с орфографической проекцией? Посмотрите разницу, если вы не уверены. – Tim

+0

Привет, Тим - перспектива, для чего я собираюсь. – GuybrushThreepwood

ответ

1

Возможно, вы не видите это, потому что ваша камера внутри объекта. Возможно, попробуйте сначала масштабировать его на 0,001, чтобы довести его до 60 единиц, переведите его на -50 в направлении z (чтобы довести его до середины вашего диапазона z) и посмотрите, появится ли он тогда.

В качестве альтернативы вы можете просто сделать свой z-диапазон намного большим и перевести его на -50 000 единиц в направлении z, чтобы переместить объект обратно с камеры. Вам придется настроить znear/zfar, чтобы быть намного больше.

+0

Фантастический - спасибо. – GuybrushThreepwood

Смежные вопросы