glPushMatrix () и glPopMatrix () являются обычными способами сделать это. Нажмите перед применением glTranslate, нажмите, когда закончите, и он вернет стек. Вы должны помнить, что OpenGL - это система, основанная на состоянии, которая использует стек. Когда вы применяете glTranslatef, вы добавляете функцию перевода в стек, поэтому все, что нарисовано после размещения в стеке, будет выполнять этот перевод. Вызов
gl.glTranslatef(2,4,666);
, а затем
gl.glTranslatef(-2,-4,-666);
если я правильно понимаю, сцена сначала переместит ваш объект в (-2, -4, -666), а затем назад (2,4666). Поскольку это стек, последнее примененное преобразование применяется первым, а первое - последним. Это помогает запомнить этот маленький факт, пока вы настраиваете свою сцену. Просто вставьте толчок перед gl.glTranslatef (2,4666); и поп после, и все будет хорошо.
glPushMatrix();
gl.glTranslatef(2,4,666);
//draw code here
glPopMatrix();
Просто запомните весь стек, и вы сможете продумать любые проблемные области.