Russian Qt Forum
Ноябрь 23, 2024, 17:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
знатоки, как поступить?!
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: знатоки, как поступить?! (Прочитано 9913 раз)
boolean
Гость
знатоки, как поступить?!
«
:
Октябрь 01, 2012, 13:52 »
всем привет. вообщем делаю прогу с вычислениями и отрисовкой в реальном времени, так что к ПО предъявляются повышенные требования к быстродействию и надежности, и еще нужна кроссплатформенность : линукс и win xp.
решил сделать интерфейс и визуализацию на qt (до этого только на билдере работал; 3D графика не нужна). теперь конкретнее:
1) какой компонент и методы использовать, чтобы получить максимальное быстродействие отрисовки и возможности аппаратного ускорения ( opengl)
2) как получить отрисовку без мерцания? (в билдере рисовал в промежуточный буфер и выводил хором все слои)
2) есть разные типы данных, которые обновляются через разные интервалы времени (от милисекунд до часов), но отображаться они должны постоянно и ПО СЛОЯМ. в билдере эту задачу решил использованием TBitmap. есть ли что-нибудь подобное здесь?
3) приложение многопоточное, и как обстоит в qt с рисованием из потока? тоже исключительно из главного?
4) приветствуются ссылки на статьи и примеры
повторюсь нужно максимум быстродействия
Записан
mutineer
Гость
Re: знатоки, как поступить?!
«
Ответ #1 :
Октябрь 01, 2012, 14:05 »
1) QGLWidget
3) Есть QBitmap, наверно он подойдет (хз что ты делал с TBitmap)
4) да, тоже только из главного
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: знатоки, как поступить?!
«
Ответ #2 :
Октябрь 01, 2012, 14:09 »
А если не знаток то лучше не отвечать, что ли?
- TBitmap = QImage
- да, тоже только из главного
По поводу злободневного ускорения: буквально неск дней назад я себе сделал FBO и очень этим доволен, руки развязаны, ни от каких "компонентов" я не завишу
Записан
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #3 :
Октябрь 02, 2012, 05:25 »
Цитата: Igors от Октябрь 01, 2012, 14:09
По поводу злободневного ускорения: буквально неск дней назад я себе сделал FBO и очень этим доволен, руки развязаны, ни от каких "компонентов" я не завишу
всем спасибо за ответы! а что такое FBO если объяснить"на пальцах" ?
и как с выводом текста в этом виджете? мне требуется выводить различную служебную информацию.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: знатоки, как поступить?!
«
Ответ #4 :
Октябрь 02, 2012, 10:09 »
Цитата: boolean от Октябрь 02, 2012, 05:25
а что такое FBO если объяснить"на пальцах" ?
OpenGL рендерит в буфер (offscreen), который читаете и комбинируете как хотите (по слоям или как)
Записан
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #5 :
Октябрь 02, 2012, 10:18 »
аа, спасибо
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: знатоки, как поступить?!
«
Ответ #6 :
Октябрь 02, 2012, 10:37 »
К несчастью не все драйвера OpenGL поддерживают off-screen rendering.
Записан
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #7 :
Октябрь 02, 2012, 13:18 »
Цитата: xokc от Октябрь 02, 2012, 10:37
К несчастью не все драйвера OpenGL поддерживают off-screen rendering.
и как это узнать?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: знатоки, как поступить?!
«
Ответ #8 :
Октябрь 02, 2012, 14:28 »
Проверить extension: GL_ARB_framebuffer_object
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: знатоки, как поступить?!
«
Ответ #9 :
Октябрь 02, 2012, 14:34 »
К сведению, OpenGL не всегда ускоряет прорисовку. Хорошо ускоряется рисование деформированных картинок (масштабирование, поворот), заливка цветом. Плохо ускоряется вывод текста, рисование линий, кривых, точек в сравнении с software render.
Записан
Гугль в помощь
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #10 :
Октябрь 03, 2012, 06:05 »
Цитата: navrocky от Октябрь 02, 2012, 14:34
К сведению, OpenGL не всегда ускоряет прорисовку. Хорошо ускоряется рисование деформированных картинок (масштабирование, поворот), заливка цветом. Плохо ускоряется вывод текста, рисование линий, кривых, точек в сравнении с software render.
у меня просто матрица 5000 на 5000. из нее все просто пикселями рисуется, масштабируется и т.д. и другой слой - служебная информация. в этом случае подойдет?
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: знатоки, как поступить?!
«
Ответ #11 :
Октябрь 03, 2012, 06:45 »
Вопрос как раз в том, что рисуется из матрицы пикселами? И что за «и т.д.»?
Записан
Гугль в помощь
ssoft
Гость
Re: знатоки, как поступить?!
«
Ответ #12 :
Октябрь 03, 2012, 06:51 »
Цитата: navrocky от Октябрь 02, 2012, 14:34
К сведению, OpenGL не всегда ускоряет прорисовку. Хорошо ускоряется рисование деформированных картинок (масштабирование, поворот), заливка цветом. Плохо ускоряется вывод текста, рисование линий, кривых, точек в сравнении с software render.
Отлично все ускоряется. Мне пришлось написать свой движок, т.к. Qt и рассмотренные мной другие библиотеки не справляются ни в каком режиме работы.
Множество (тысячи) интерактивных часто изменяющихся динамических элементов, состоящие из невыпуклых полигонов, линий, точек и текста.
Пара секретов.
- желательно отрисовывать сцену как можно за меньшее количество раз (не останавливая конвейер GL).
- данные хранить на видеокарте.
- текст лучше отображать с использованием текстур (сначала рендеринг символов в текстуру, затем отображаем текст, используя текстурные символы).
- текстуры располагать формировать в виде атласа текстур (когда много мелких текстур, располагаются на одной большой).
- использовать шейдеры.
Записан
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #13 :
Октябрь 03, 2012, 07:26 »
Цитата: navrocky от Октябрь 03, 2012, 06:45
Вопрос как раз в том, что рисуется из матрицы пикселами? И что за «и т.д.»?
ну как в любом растровом изображении: матрица хранит информацию о распределении по цветам, яркости и тп. так и у меня, только данные берутся из показаний датчиков. ну соотв доп операции: масштаб, сдвиг
«
Последнее редактирование: Октябрь 03, 2012, 07:30 от boolean
»
Записан
boolean
Гость
Re: знатоки, как поступить?!
«
Ответ #14 :
Октябрь 03, 2012, 07:28 »
Цитата: ssoft от Октябрь 03, 2012, 06:51
Отлично все ускоряется. Мне пришлось написать свой движок, т.к. Qt и рассмотренные мной другие библиотеки не справляются ни в каком режиме работы.
Множество (тысячи) интерактивных часто изменяющихся динамических элементов, состоящие из невыпуклых полигонов, линий, точек и текста.
Пара секретов.
- желательно отрисовывать сцену как можно за меньшее количество раз (не останавливая конвейер GL).
- данные хранить на видеокарте.
- текст лучше отображать с использованием текстур (сначала рендеринг символов в текстуру, затем отображаем текст, используя текстурные символы).
- текстуры располагать формировать в виде атласа текстур (когда много мелких текстур, располагаются на одной большой).
- использовать шейдеры.
случайно не программа УВД?
"Мне пришлось написать свой движок" - это как? обернул классами opengl?
за секреты большое спасибо
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...