Qt4.5 + OpenGL, не понимаю я техники быстрой отрисовки.. |
Здравствуйте, гость ( Вход | Регистрация )
Qt4.5 + OpenGL, не понимаю я техники быстрой отрисовки.. |
ieroglif |
24.4.2009, 10:33
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 19.1.2009 Из: планета Земля Пользователь №: 496 Спасибо сказали: 0 раз(а) Репутация: 0 |
значит создаю я QGLWidget, переопределяю инициализациюГЛ, изменение размера окна , и паинтГЛ.
и с виду всё хорошо - как надо обновить картинку на экране - вызвается updateGL() слот и перерисовывается всё... но попахивает тут очень жёстким извращением - если я хочу сделать вращающийся кубик, то должен запустить свой таймер, который будет на таймаут вызывать updateGL... и не будет у меня 600фпс - фиг.. будет в лучшем случае столько, сколько таймер мне натикает.. шо це таке??? я совсем тупой? неужто тут нету
? неужто действительно надо таймером перерисовывать окошко что бы получить фпсы? почему оно самостоятельно не перерисовывается так часто, как могёт? (а как вспоминаю о том, что у меня чипсет на ноуте gma950, и линуховые интеловские дрова - ваще убить кого-нить хочу)... Сообщение отредактировал Admin - 24.4.2009, 15:30
Причина редактирования: отредактирована нецензурщина...
|
|
|
Admin |
24.4.2009, 15:29
Сообщение
#2
|
Администратор Группа: Администратор Сообщений: 646 Регистрация: 9.10.2007 Из: crossplatform.ru Пользователь №: 1 Спасибо сказали: 17 раз(а) Репутация: 2 |
ieroglif, устное предупреждение за нецензурщину...
В следующий раз буду наказывать! |
|
|
ieroglif |
24.4.2009, 20:37
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 19.1.2009 Из: планета Земля Пользователь №: 496 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
SABROG |
24.4.2009, 20:44
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
600 фпс это хорошо, а почему не устраивают стандартные 25-30 фпс, которые глаз может воспринимать?
|
|
|
registr |
20.5.2010, 14:07
Сообщение
#5
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Для работы с OpenGL в Qt4 есть три определяемые разработчиком функции:
virtual void initializeGL() // автоматически вызывается первой и только один раз, в ней разработчик делает настройки и инициализации OpenGL virtual void resizeGL(int nW, int nH) // автоматически вызывается второй и только один раз, нужна, чтобы связать сцену с размером виджета (окна), так же вызывается при изменении размеров окна, в ней так же логично задать матрицу проектирования или проекцию virtual void paintGL() // вызывается автоматически при вызове команд обновить изображение, вызывается любое количество раз, заменяет старое изображение на новое Посмотрите два примера: один в Шлее, другой в Бланщет. Цитата слот и перерисовывается всё... Есть два способа. Статическая картина и динамическая. Статическая задается с помощью так называемых "таблиц отображений", строится один раз и хранится в буфере, при поворотах изменяется только матрица проектирования. (см. Шлее). При необходимости, данную таблицу отбражений можно изменить. Динамическая функция отрисовки суестся прямо в paintGL() (см. Бланшет), каждый раз она все перерисовывает заново, если объектов сцены очень много, то будут тормоза. чтобы этого не было как раз существует таблица отображений. Более подробно: Райт, Липчак, Суперкнига. ЗЫ Надеюсь не слишком поздно Сообщение отредактировал registr - 20.5.2010, 14:07 |
|
|
Текстовая версия | Сейчас: 2.1.2025, 15:42 |