ПрограммированиеФорумГрафика

как заставить камеру бегать за целью? (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
16:41, 2 авг 2009

просто где не прочтеш:
-все новички до поры пользуются эйлером,
в перофессиональных играх пользуются кватернионами.
отсюда и захотел чтоб сразу так сказать по проффесиональному:)

#46
17:14, 2 авг 2009

iArt
> вопрос ! стоит ли овчинка выделинки ? я про использование кватов в камере ?

daim
> такс а по поводу матриц вращения,
> такой вот вопросец:
> сами вращения представляют собой углы эйлера, так??
> если да то как же с "карданным сцеплением" решать вопрос?

Я думаю тут зависит от того, что у тебя может делать камера... Если это вид от первого лица, ты ведь не сможешь добиться gimbal lockа, а если это например камера самолёта, то тут без кватернионов никак... Также без кватернионов никак если придётся интерполировать (с матрицами вроде как глючно)...

http://gpwiki.org/index.php/OpenGL:Tutorials:Using_Quaternions_to… sent_rotation

А вот тут тоже можно про gimbal lock поглядеть:
http://www.anticz.com/eularqua.htm

Booster
> Что за карданное сцепление?

Шарнирный замок звучит не намного лучше... :))

#47
17:20, 2 авг 2009

Executor
как раз вид от первого лица

#48
17:22, 2 авг 2009

))) точнее не совсем как раз

#49
17:45, 2 авг 2009

Проблема блокировок гимбалов существует в гимбаловых системах координат, то есть в таких где углы задаются относительно мировой СК. Или нам нужно задавать углы в мировой системе координат. В FPS камере, где углы относительны, просто накапливаем изменения в матрице. Если нужны абсолютные углы, то конечно кватернион.

#50
20:22, 2 авг 2009

не получается........

void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
PushMatrix();
glMultMatrixf(my.mat);        //my  - член класса для работы с матрицами

glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glTranslatef(0.0f,heightPlane,0.0f);
glEnable(GL_TEXTURE_2D);
.....

правильно начинаю рендер сцены нет?
уже сил бл... никаких нет.
мышиная функция, начало :

void mouse(int x, int y)
{
  if(Nx1>x)
  {

  Angle2=-1;
 
  my.RotateY(Angle2);
 
Nx1=x;
  }
....


камера вращается вокруг 0,0,0, - всех осей,
че не так??
понимаю что всем уже надоел , тем не менее...

#51
20:24, 2 авг 2009

daim
> камера вращается вокруг 0,0,0, - всех осей,
всмысле мне надо вокруг своих осей вращение

#52
21:01, 2 авг 2009

daim
> PushMatrix();
> glMultMatrixf(my.mat); //my - член класса для работы с матрицами

Это многое сказало... :)

Где проэкционная матрица, где моделвью матрица?
Что в my.mat?

#53
21:20, 2 авг 2009

Executor
> Что в my.mat?
ну как что, массив из 16 дробных чисел.
Executor
> Где проэкционная матрица, где моделвью матрица?
вот

void ResizeFunc(GLsizei w,GLsizei h)
{
GLfloat AspectRatio;
if(h==0)h=1;
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
AspectRatio=(GLfloat)w/(GLfloat)h;
gluPerspective(45.0f,AspectRatio,0.10f,4000.f);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
my=my.getIdentity();
my.mat[14]=2;
glMultMatrixf(my.mat);   
}

#54
21:21, 2 авг 2009

Executor
> Где проэкционная матрица, где моделвью матрица?
в рендере сейчас нет,
или  в рендере их тоже необходимо устанавливать?

#55
21:24, 2 авг 2009

я б, конечно с удовольствием еще и свой класс для работы с матрицами выложил ,
только боюсь читать никто не станет

#56
21:45, 2 авг 2009

вроде начинает прояснятся,
перемножал матрицы оказывается наоборот..

#57
1:09, 3 авг 2009

По-моему, такая пустяковая тема не стоит четырех страниц. Имхо, достаточно одну нормальную доку прочитать и не баломутить воду.

#58
2:16, 3 авг 2009

Woland
полностью с тобой согласен.
видимо нет нормальной доки,
читаю все подряд(((
вот если бы ты дал ссылку на нормальную доку

#59
2:21, 3 авг 2009

Woland
> такая пустяковая тема не стоит четырех страниц.
хотя не совсем я стобой согласен)))
вчера гнома начал читать)))
463 стр. ёханый бабай

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.

Тема закрыта.