Нет, glTranslatef () устанавливает Матрицу, которая гарантирует, что все объекты, нарисованные после этого оператора, будут переведены на заданную сумму.Если вы хотите перевести (позиционировать) только один объект, используйте следующее.
glLoadIdentity()
glPushMatrix();
glTranslatef(0,10,-5);
//DrawObjectOne
glPopMatrix();
//DrawObjectTwo
Этот код выполняет следующие действия:
Сначала он загружает матрицу тождеств, это буквально означает отсутствие изменений вположение, вращение или масштаб.Затем новая матрица помещается в стек матрицы.Все изменения в текущем WorldMatrix будут храниться до тех пор, пока не будет вызвана функция glPopMatrix ().
Мы изменяем матрицу текущего мира, устанавливая перевод (0,10, -5), а затем рисуем этот объект в этом месте.
Теперь мы выталкиваем текущую мировую матрицу, текущая мировая матрица теперь исчезает, и мы возвращаемся к предыдущей WorldMatrix (которая была единичной матрицей)
Затем мы рисуем объект два, который простообращается в (0,0,0).