Форум: "Игры";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
ВнизПовороот сцены Найти похожие ветки
← →
Chevrt (2005-04-29 16:23) [0]Здравствуйте!
Как можно осуществить поворот камеры, к примеру так, как это реализовано в играх.
К примеру есть у меня куб:
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glPushMatrix;
glEnable(GL_TEXTURE_2D);
glBegin (GL_QUADS);
glTexCoord2f(0.0,0.0); glVertex3f (1.0, 1.0, 1.0);
glTexCoord2f(1.0,0.0); glVertex3f (-1.0, 1.0, 1.0);
glTexCoord2f(1.0,1.0); glVertex3f (-1.0, -1.0, 1.0);
glTexCoord2f(0.0,1.0); glVertex3f (1.0, -1.0, 1.0);
glTexCoord2f(0.0,0.0); glVertex3f (1.0, 1.0, -1.0);
glTexCoord2f(1.0,0.0); glVertex3f (1.0, -1.0, -1.0);
glTexCoord2f(1.0,1.0); glVertex3f (-1.0, -1.0, -1.0);
glTexCoord2f(0.0,1.0); glVertex3f (-1.0, 1.0, -1.0);
glTexCoord2f(0.0,0.0); glVertex3f (-1.0, 1.0, 1.0);
glTexCoord2f(1.0,0.0); glVertex3f (-1.0, 1.0, -1.0);
glTexCoord2f(1.0,1.0); glVertex3f (-1.0, -1.0, -1.0);
glTexCoord2f(0.0,1.0); glVertex3f (-1.0, -1.0, 1.0);
glTexCoord2f(0.0,0.0); glVertex3f (1.0, 1.0, 1.0);
glTexCoord2f(1.0,0.0); glVertex3f (1.0, -1.0, 1.0);
glTexCoord2f(1.0,1.0); glVertex3f (1.0, -1.0, -1.0);
glTexCoord2f(0.0,1.0); glVertex3f (1.0, 1.0, -1.0);
glTexCoord2f(0.0,0.0); glVertex3f (-1.0, 1.0, -1.0);
glTexCoord2f(1.0,0.0); glVertex3f (-1.0, 1.0, 1.0);
glTexCoord2f(1.0,1.0); glVertex3f (1.0, 1.0, 1.0);
glTexCoord2f(0.0,1.0); glVertex3f (1.0, 1.0, -1.0);
glTexCoord2f(0.0,0.0); glVertex3f (-1.0, -1.0, -1.0);
glTexCoord2f(1.0,0.0); glVertex3f (1.0, -1.0, -1.0);
glTexCoord2f(1.0,1.0); glVertex3f (1.0, -1.0, 1.0);
glTexCoord2f(0.0,1.0); glVertex3f (-1.0, -1.0, 1.0);
glEnd;
glDisable(GL_TEXTURE_2D);
glPopMatrix;
SwapBuffers(DC);
Как поворачивать я разобрался, а вот как сделать, как в играх, чтобы можно было обходит вокруг него, поворот камеры?
Прочитал, что можно при помощи gluLookAt, или я не прав?
Приведи примерчик пожалуйсто
← →
VVV-First (2005-04-29 17:26) [1]
> Прочитал, что можно при помощи gluLookAt, или я не прав?
да я делал с помошью нее поворот вокруг планеты, с собой этого куска кода конечно нет , но точно помню получилось то что надо,
там передается в параметра, положения центра, положения наблюдателя, и помоему компоненты вектора (могу ошибаться)
← →
XProger © (2005-04-29 17:41) [2]
gluLookAt(e.X, e.Y, e.Z,
c.X, c.Y, c.Z,
Up.X, Up.Y, Up.Z);
e - позиция наблюдателя.
c - точка в которую смотрим.
Up - вектор направленный вверх. С помощью него можно реализовывать поворот относительно оси наблюдения. А также корректировать поворот относительно прямой перпендикулярной плоскости, построенной на векторах e и с, при строго вертикальных ракурсах обзора.
← →
Dozer © (2005-05-01 12:42) [3]После отчистки экрана ставишь glLookAt. Чтобы сделать крутящуюся вокруг этого куба камеру, можно написать:
GluLookAt(Sin(t)*3,0,Cos(t)*3,0,0,0,0,1,0);
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c