Короткий ответ: вы можете переместить объект, изменив матрицу вида модели.Это можно сделать несколькими способами, и это зависит от ваших предпочтений кодирования и от того, какую версию драйверов opengl вы имеете в наличии.
Вот некоторый частичный код, который поможет вам начать работу в правильном направлении:
Следующее устарело в Opengl 3.0+ (но даже тогда оно все еще доступно через профиль совместимости).
// you'll need a game loop to make some opengl calls each frame
while(!done)
{
// clear color buffers, depth buffers, etc
initOpenglFrame();
glPushMatrixf();
glTranslatef(obj->getX(), obj->getY(), obj->getZ());
obj->draw();
glPopMatrixf();
// move the object 0.01 units to the left each tick
obj->setX(obj->getX() + 0.01);
// flush, swap buffers, etc
finishOpenglFrame();
}
Для OpenGL 3.0 и более поздних версий, glPushMatrixf (), glPopMatrixf (), glTranslatef () и аналогичныефиксированный интерфейс конвейера функций устарел.Если вам нужно использовать OpenGL 3.0 или выше, вы захотите использовать решение такого же типа, но вам потребуется собственная реализация матриц и стек матриц.Я думаю, что обсуждение выходит за рамки вашего вопроса.
Для дальнейшего чтения и начала работы с OpenGL, я бы порекомендовал вам проверить nehe.gamedev.net.Если вы хотите начать работу с OpenGL 3.X, то я бы порекомендовал приобрести Opengl Superbible 5th Edition.Отличная книга!