Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Повороот сцены   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
9-1114438472
Bryke
2005-04-25 18:14
2005.08.21
Индексы текстурных координат


4-1119601538
webpauk
2005-06-24 12:25
2005.08.21
Изменение иконки


4-1119719487
ВломПридумывать
2005-06-25 21:11
2005.08.21
Кнопка с картинкой


1-1123004961
chainik
2005-08-02 21:49
2005.08.21
Обращение к ТХТ


3-1121317131
Kara
2005-07-14 08:58
2005.08.21
Определение базы