![]() |
|
|
![]()
|
|
| Glad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 16.8.2005 Репутация: нет Всего: нет |
Привет.
Подскажите есть ли в Qt такое понятие как batching, т.е. когда вывод одинаковых спрайтов/картинок можно сделать одним вызовом ? И вообще хотелось бы поднять тему оптимизации при выводе графики(особенно анимированной) в Qt. У меня просто выводится сетка из линий.. и чем большее кол-во линий тем больше тормозит отрисовка. Скажем на 300 линиях тормоза очень даже заметны. Заранее спасибо. |
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
В новом сценграфе для Qt Quick батчинг есть. Элементы там группируются по материалам, прозрачности, шейдерам, плюс битмапы собираются в текстурные атласы. А 300 линий ну никак не должны тормозить, только если это не выводятся через GDI+ какой-нибудь
|
|||
|
||||
| Glad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 16.8.2005 Репутация: нет Всего: нет |
Хм.. и мне тоже интересно.. Ну вот пример кода выводящего сетку под задником(background image):
Хотел сделать сетку из 25000 линий Кстати еще один факт, если убрать линии с экрана то вроде как тормоза убираются (что логично), а вот если убрать задник(сделать невидимым, но всё ещё являющимся объектом сцены), то никакого эффекта.. А вот если его просто не загружать, то всё работает намного быстрее. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Я рисую сетку так:
|
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Так столько примитивов пихать в QGraphicsView - это же жесть. Неудивительнно, что скорость отрисовки так фатально просела. Я бы тоже делал как math64 - рисовал в QPainter и, возможно, кэшировал потом в QPixmap, обновляя по необходимости. Еще можно попробовать сложить их все в QGraphicsItemGroup и включить кэширование, но не уверен. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
||||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |