PMG

Форумы по созданию игр
Текущее время: 19 апр 2024 11:20

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 29 сен 2005 18:58 
Не в сети
Новичок

Зарегистрирован: 28 сен 2005 20:07
Сообщения: 3
;/ Я же только учусь :x . у меня есть модель трубы. Длинной и гнутой много раз. Она "жесткая", и я знаю ее координаты в некой "лабораторной" системме отсчета (труба разбивается на куски, каждый кусок рисуется отдельно.). Но чтобы выставить нужный "ракурс" (или камеру) для всей модели я использую GL_PROJECTION, ведь верно? Основная задача - уместиь модель в заданом ракурсе (поворот вокруг двух осей) на экране "тютелька в тютельку". Да, я могу задать glOrtho один раз, но, это не снимает проблемы, так как все равно мне придется командами маштабирования и сдвига вписывать изображение в экран.

Еще раз обращаю внимание на то, что в OpenGL я новичек, и возможно что то путаю и недопонимаю. поэтому я стараюсь поподробнее описть свою проблему, может я гдето делаю ошибку и невижу этого :oops: .
P.S. Эту задачю в BCB6 я реши на канве ПаинтБокса, но там естественно? такие вещи делаються вручную. могу привести ссылку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 сен 2005 16:41 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Тебе не надо менять GL_PROJECTION, так как этой матрицей задается только тип проекции из 3D в 2D. Надо менть матрицу вида и модели. Воспользуйсь командой gluLookAt, и отодвинь камеру на нужное место, чтобы получить нужный ракурс.

Вот так настроишь камеру
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(eye.x,eye.y,eye.z, center.x,center.y,center.z, up.x,up.y,up.z );

Далее уже сам объект:

glTranslatef(2.0, 0.0, 0.0f);
glRotatef(-45., 0.0f, 0.0f, 1.0f);
glRotatef(m_angle, 0.0f, 1.0f, 0.0f);

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 окт 2005 16:43 
Не в сети
Новичок

Зарегистрирован: 28 сен 2005 20:07
Сообщения: 3
Да, я разобрался. Но, все-таки, вертел матрицу GL_PROJECTION. Дело в том, что мой рисунок состоит из элементов, таких как тор, труба и пр. Рисуя, например, трубу мне удобнее использовать GL_MODELVIEW для того, чтобы правильно расположить ее относительно всей модели. А потом уже, с помощью GL_PROJECTION я выбирал ракурс. Здесь все-таки пришлось использовать отдельно- написанную процедуру, которая определяет максимальные и минимальные координаты модели после поворота. То есть при каждой прорисовке я использую glRotatef и glOrtho . Кроме этого приходиться каждый раз переопределять положение источника света. В принципе, насколько я понимаю, это не совсем грамотно – можно было бы все нарисовать в GL_MODELVIEW используя стек матриц :oops: . Но результат получен:
http://www.gmyrko.narod.ru/RG_pic/Scr1.JPG
http://www.gmyrko.narod.ru/RG_pic/Scr2.JPG
http://www.gmyrko.narod.ru/RG_pic/Scr3.JPG

Спасибо за помощь и поддержку! :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 окт 2005 13:56 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Пожалуйста, всегда рад помочь чем могу.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB