Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизМатематика+OpenGL Найти похожие ветки
← →
Elf © (2004-06-07 21:50) [0]Здравствуйте все!
Подскажите что надо сделать с OpenGL ModelView Matrix чтобы камера была в точке (x1,y1,z1) и смотрела по вектору v(x2,y2,z2)?
← →
smb (2004-06-07 22:10) [1]gluLookAt(posx, posy, posz, lookatx, lookaty, lookatz, vecx, vexy, vecz);
pos - точка наблюдателя
lookat - точка куда смотреть
vec - вектор
← →
wiz © (2004-06-08 07:52) [2]как это делаю я:
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective(fovy, aspect, znear, zfar);
gluLookAt(posx, posy, posz, lookatx, lookaty, lookatz, vecx, vexy, vecz);
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
...
{собстно render}
где:
fovy: угол обзора по оси y
fovy*aspect = fovx: угол обзора по оси x
znear, zfar: ближняя и дальняя плоскости обрезки z-buffer"а
posx, posy, posz, lookatx, lookaty, lookatz: см post[1]
vecx, vexy, vecz: вектор ориентации камеры (указывает направление "вверх")
в твоём случае:
pos(x,y,z)=(x1,y1,z1);
lookat(x,y,z)=pos(x,y,z)+v(x2,y2,z2);
vec(x,y,z)= пока не парься, а сделай (0,0,1). потом поиграйся с разными значениями и поймёшь как работает.
← →
Elf © (2004-06-08 12:19) [3]? А что матрица проэцирования меняет положение камеры?
Ни фига себе!
← →
ViK (2004-06-10 01:26) [4]Я делаю так:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glRotatef(camera[4],1,0,0);
glRotatef(camera[5],0,1,0);
glRotatef(camera[6],0,0,1);{}
glTranslated(camera[1],camera[2],camera[3]);
glBegin
...
glEnd;
где, camera[4..6] - угол поворота камеры относительно осей
camera[1..3] - координаты камеры
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c