Russian Qt Forum
Сентябрь 28, 2024, 10:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL, скорость работы в QGLWidget и QGraphicsScene  (Прочитано 10086 раз)
Вудруф
Гость
« : Февраль 01, 2010, 13:16 »

Есть два варианта приложения:
1. QGLWidget с переопределённым paintGL
2. QGraphicsView/QGraphicsScene с QGLWidget в качестве viewport'а и переопределённым drawBackground.
В обоих случаях исполняется один и тот же GL-ный код. Больше на сцене ничего нет.

На WinXP SP2/GeForce 8400 GS работает примерно одинаково, на Ubuntu 9.10 x86_64/GeForce GTX 260 второй вариант медленнее на 40%. Падение именно процентное, что при одной модели и fps около 4к, что при 100 и fps около сотни.
Кто-нибудь знает, с чем может быть связано?
« Последнее редактирование: Февраль 01, 2010, 13:22 от Вудруф » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Февраль 02, 2010, 15:09 »

QGraphicsView тормозит, да. Есть такое. с чем связано - хз, наверно баг.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Февраль 02, 2010, 16:14 »

Я конечно дико извиняюсь ,но на мой взгляд это извращенство делать по второму варианту, первый ципляет только один класс, а второй сразу три(если не больше), конечно будет тормазить, чем вызванно желание делать по второму варианту?
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #3 : Февраль 02, 2010, 16:20 »

На WinXP SP2/GeForce 8400 GS работает примерно одинаково, на Ubuntu 9.10 x86_64/GeForce GTX 260 второй вариант медленнее на 40%. Падение именно процентное, что при одной модели и fps около 4к, что при 100 и fps около сотни.
Кто-нибудь знает, с чем может быть связано?
гы, а для кого ты свою поделку готовишь?
для офисных компов или для геймеров.
Если для офисных, выдергивай к чертям свою видеокарту и тести..
а связано с тормознутостью Qt при отрисовке на машинах без видюх...
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Вудруф
Гость
« Ответ #4 : Февраль 02, 2010, 21:29 »

Я конечно дико извиняюсь ,но на мой взгляд это извращенство делать по второму варианту, первый ципляет только один класс, а второй сразу три(если не больше), конечно будет тормазить, чем вызванно желание делать по второму варианту?
Разумеется, не просто так. Qt планировалось использовать для отрисовки интерфейса поверх GL. Рисовать поверх QGLWidget'а дюже неудобно, уж лучше вместо Qt тот же CEGUI заюзать. Связка QGraphicsView/QGraphicsScene предоставляет более богатые возможности: Animation Framework, Graphics Layouts, etc. В конце концов даже встраивание QWidget'ов через QProxyWidget для сокращения кода, хоть они и тормознее, чем QGraphicItem'ы.
И всё бы ничего, но тормозит. При пустой сцене не должна, т.к. дополнительной работы там нет, а вот всё равно.
Баг троллям запостил, посмотрим, что скажут.
Записан
Вудруф
Гость
« Ответ #5 : Февраль 02, 2010, 21:30 »

Если для офисных, выдергивай к чертям свою видеокарту и тести..
а связано с тормознутостью Qt при отрисовке на машинах без видюх...
Вообще ничего не понял.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Март 10, 2010, 11:47 »

Посмотри здесь.
Тормоза могут быть из-за этого
...
we set the viewport update mode of the QGraphicsView  to FullViewportUpdate as a QGLWidget cannot perform partial updates
...
Записан

Qt 5.11/4.8.7 (X11/Win)
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #7 : Март 10, 2010, 12:06 »

Цитировать
уж лучше вместо Qt тот же CEGUI заюзать

CEGUI можно использовать совместно с GLWidget

Интересно что у вас за программа и почему требуется отрисовывать интерфейс через GL (просто даже в мудреных 3D редакторах интерфейс со всякими параметрами остается в обычных GUI окошках)? я пока нормальный интерфейс GL-ный видел только в blender, во всех остальных местах где выводится пару надписей овердровом не столь важно как это выводить.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.