Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Sahsa от Сентябрь 21, 2015, 11:59



Название: Как быстро рисовать на QGraphicsScene
Отправлено: Sahsa от Сентябрь 21, 2015, 11:59
Ребята, нужно быстро нарисовать более 1.500.000 иногда и больше линий на QGraphicsScene.
Если их рисовать при помощи QGraphicsLineItem, то это происходит очень медленно.

Может есть более быстрый способ или в патоки при помощи openMPI, но с библиотекой не знаком? И нужно чтобы данный код работал на всех платформах.


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Racheengel от Сентябрь 21, 2015, 17:57
попробуй QGraphicsPathItem


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Racheengel от Сентябрь 21, 2015, 17:58
Т.к. отрисовка происходит всегда только в одном потоке, то распараллелить можно только вычисление этих самых линий.


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Sahsa от Сентябрь 21, 2015, 22:01
Спасибо)


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: GreatSnake от Сентябрь 22, 2015, 10:48
Т.к. отрисовка происходит всегда только в одном потоке, то распараллелить можно только вычисление этих самых линий.
Ну почему же, отрисовку можно делать тоже в отдельном потоке, например, в QImage.
Другой вопрос насколько это применимо.


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Racheengel от Сентябрь 22, 2015, 11:06
Ну почему же, отрисовку можно делать тоже в отдельном потоке, например, в QImage.
Другой вопрос насколько это применимо.

Ну забуферизировать-то можно, но будет ли от этого толк...


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Sahsa от Сентябрь 22, 2015, 20:58
Ну почему же, отрисовку можно делать тоже в отдельном потоке, например, в QImage.
Другой вопрос насколько это применимо.

Ну забуферизировать-то можно, но будет ли от этого толк...

QImage не подойдет, так как будет растр, а не вектор. там еще зум на его будет, дополнительные построения пользовательм и куча всячены. Нужна QGraphicsScene, лучшего не приходит в голову)

Сижу и разбираюсь с патоками и как можно все упростить)


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Nidxogg от Сентябрь 23, 2015, 07:29
А если рисовать линии в методе drawBackground?


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Igors от Сентябрь 23, 2015, 08:33
Ребята, нужно быстро нарисовать более 1.500.000 иногда и больше линий на QGraphicsScene.
Если их рисовать при помощи QGraphicsLineItem, то это происходит очень медленно.

Может есть более быстрый способ или в патоки при помощи openMPI, но с библиотекой не знаком? И нужно чтобы данный код работал на всех платформах.
При таких объемах нужно "смотреть в сторону" GPU, т.е. OpenGL.


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Sahsa от Сентябрь 28, 2015, 21:57
Ребята, нужно быстро нарисовать более 1.500.000 иногда и больше линий на QGraphicsScene.
Если их рисовать при помощи QGraphicsLineItem, то это происходит очень медленно.

Может есть более быстрый способ или в патоки при помощи openMPI, но с библиотекой не знаком? И нужно чтобы данный код работал на всех платформах.
При таких объемах нужно "смотреть в сторону" GPU, т.е. OpenGL.

А можно простенький пример рисование линии на стене при помощи OpenGL?))


Название: Re: Как быстро рисовать на QGraphicsScene
Отправлено: Igors от Сентябрь 29, 2015, 04:57
А можно простенький пример рисование линии на стене при помощи OpenGL?))
Наверное "на сцене" - нет, на сцене оно рисоваться не будет, это не QGraphicsItem, при таких объемах от него придется отказаться. А так выберите пример OpenGL идущий с Qt и воткните в него glDrawLines.