2013-08-11 1 views
0

У меня есть программа, которая нарисовать 3D формы в соответствии с набором GL.GL_VERTEX_ARRAY, наконец, нарисованный в рамках метода display() -gl.glScalef() скрыть gl.glDrawArrays() рисунок

public void display(GLAutoDrawable drawable) { 
    gl.glDrawArrays(GL.GL_QUADS, 0, 24); 
} 

до сих пор она работает оК и я получаю нужную форму на выходе, но если добавить gl.glScalef(20, 20, 40); перед gl.glDrawArrays() форма стоп быть появляются, и я получаю пустой выход -

public void display(GLAutoDrawable drawable) { 
    gl.glScalef(20, 20, 40); 
    gl.glDrawArrays(GL.GL_QUADS, 0, 24); 
} 

Как я могу масштабировать вывод правильно?

Edit:

Fixed путем добавления gl.glLoadIdentity() ранее.

ответ

1

Непонятно, что будет делать остальная часть вашего кода, но только из показанных фрагментов можно предположить, что вы никогда не перезагружаете матрицу, а масштабирование накапливается в течение нескольких кадров.

+0

Оказывается, вы правы, я просто добавил 'gl.glLoadIdentity()' перед масштабированием, и это сработало! – URL87