-
Как в Opengl реализовать камеру для космического корабля/или самолета, как в аркадах ? как например в Heroes of the Pacific
-
возможно ответ Вас смутит, но — точно так же как и камеру для НЕ космического корабля =)
конкретизируйте задачу.
что требуется от камеры?
-
Скроллер-камера или 2D-камера?
-
Камера для космического корабля, типа "верх должен быть динамичным, голова как бы наклоняется вместе с кораблем gluLookAt(TmX,Tmy,Tmz, // откуда смотрим TmX2,TmY2,Tmz2, // куда смотрим TTT.X,TTT.Y,TTT.Z); // где у нас верх
а вот тут и надо как -то высчитывать вектор чтоб мир "верх" был динамичным, менялся как бы TTT.X,TTT.Y,TTT.Z); // где у нас верх
-
-
-
-
glRotatef(CameraRotation.X, 1, 0, 0);
glRotatef(CameraRotation.Y, 0, 1, 0);
glRotatef(CameraRotation.Z, 0, 0, 1);
glTranslatef(-CameraPosition.x,-CameraPosition.y,-CameraPosition.z);
-
(См. scroller) Там вообще камера с видом 2д в основном
это же объект будет крутиться и перемещаться, а не камера glRotatef(CameraRotation.X, 1, 0, 0); glRotatef(CameraRotation.Y, 0, 1, 0); glRotatef(CameraRotation.Z, 0, 0, 1);
glTranslatef(-CameraPosition.x,-CameraPosition.y,-CameraPosition.z);
-
> это же объект будет крутиться и перемещаться, а не камера
Как ты вообще программируешь графику, если не знаешь про восстановление матриц?
-
Кажется я врубился что вы мне тут втираете....
применить эти команды для матрицы камеры, а не объекта...
-
Что такое матрица камеры?? O_o View чтоли из ModelView?? Зачем ее отделять? Они прекрасно в одной матрице уживаются.
-
То ли вы не можете понять что я хочу, то ли я сошел с ума...
-
мне же нужно повернуть не один самолет а весь мир
-
> мне же нужно повернуть не один самолет а весь мир
И тем самым уничтожить видяху. Зачем поворачивать ВЕСЬ МИР, не проще ли просто крутануть точку обзора, то бишь камеру?
-
> [12] Kav (18.11.09 19:09)
толи ты нифига не понимаешь как работает матрица трансформации
-
я что-то не догоню как этот код glRotatef(CameraRotation.X, 1, 0, 0); glRotatef(CameraRotation.Y, 0, 1, 0); glRotatef(CameraRotation.Z, 0, 0, 1);
glTranslatef(-CameraPosition.x,-CameraPosition.y,-CameraPosition.z);
может повернуть саму камеру?
-
> может повернуть саму камеру?
Нет. Это тебе просто так написали. ;D
-
> [16] Kav (18.11.09 20:59)
ну так ета... в матрицу запишется и повернет... Изменит положение и ориентацию системы координат. Грубо говоря - камера никуда не повернется, повернется весь мир относительно нее. :)
-
Вобщем то это элементарная математика. Возьми зашкирятник знакомого математика и попроси объяснить. И статей в гугле почитай. Жить станет проще. Сам несколько лет назад использовал "код из книжки" нихрена не понимая. После того как понял все что делаю, и перестал тупо копировать жизнь стала существенно проще и интересней. :)
|