Russian Qt Forum
Ноябрь 24, 2024, 20:31
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
OpenGL, скорость работы в QGLWidget и QGraphicsScene
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: OpenGL, скорость работы в QGLWidget и QGraphicsScene (Прочитано 10132 раз)
Вудруф
Гость
OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
:
Февраль 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
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #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
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #2 :
Февраль 02, 2010, 16:14 »
Я конечно дико извиняюсь ,но на мой взгляд это извращенство делать по второму варианту, первый ципляет только один класс, а второй сразу три(если не больше), конечно будет тормазить, чем вызванно желание делать по второму варианту?
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #3 :
Февраль 02, 2010, 16:20 »
Цитата: Вудруф от Февраль 01, 2010, 13:16
На 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/
Вудруф
Гость
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #4 :
Февраль 02, 2010, 21:29 »
Цитата: ecspertiza от Февраль 02, 2010, 16:14
Я конечно дико извиняюсь ,но на мой взгляд это извращенство делать по второму варианту, первый ципляет только один класс, а второй сразу три(если не больше), конечно будет тормазить, чем вызванно желание делать по второму варианту?
Разумеется, не просто так. Qt планировалось использовать для отрисовки интерфейса поверх GL. Рисовать поверх QGLWidget'а дюже неудобно, уж лучше вместо Qt тот же CEGUI заюзать. Связка QGraphicsView/QGraphicsScene предоставляет более богатые возможности: Animation Framework, Graphics Layouts, etc. В конце концов даже встраивание QWidget'ов через QProxyWidget для сокращения кода, хоть они и тормознее, чем QGraphicItem'ы.
И всё бы ничего, но тормозит. При пустой сцене не должна, т.к. дополнительной работы там нет, а вот всё равно.
Баг троллям запостил, посмотрим, что скажут.
Записан
Вудруф
Гость
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #5 :
Февраль 02, 2010, 21:30 »
Цитата: panAlexey от Февраль 02, 2010, 16:20
Если для офисных, выдергивай к чертям свою видеокарту и тести..
а связано с тормознутостью Qt при отрисовке на машинах без видюх...
Вообще ничего не понял.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #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
Сообщений: 846
Re: OpenGL, скорость работы в QGLWidget и QGraphicsScene
«
Ответ #7 :
Март 10, 2010, 12:06 »
Цитировать
уж лучше вместо Qt тот же CEGUI заюзать
CEGUI можно использовать совместно с GLWidget
Интересно что у вас за программа и почему требуется отрисовывать интерфейс через GL (просто даже в мудреных 3D редакторах интерфейс со всякими параметрами остается в обычных GUI окошках)? я пока нормальный интерфейс GL-ный видел только в blender, во всех остальных местах где выводится пару надписей овердровом не столь важно как это выводить.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...