Рисование линии в OpenGl |
Здравствуйте, гость ( Вход | Регистрация )
Рисование линии в OpenGl |
soaup |
11.7.2014, 10:03
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 3.6.2014 Пользователь №: 4152 Спасибо сказали: 0 раз(а) Репутация: 0 |
Рисую через цикл линию из массива множетсва точек. Т.е.:
Есть контейнер содержащий несколько таких массивов точек. Такая функция вызывается в paintGL в цикле, где все массивы из контейнера отрисовываются. Рисование множества таких линий отнимает довольно много производительности. Можно ли это как то по другому делать, более оптимизированным способом? |
|
|
Iron Bug |
11.7.2014, 12:39
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Не очень понятно, в массиве заданы координаты ломаной линии или точек одной линии?
Для рисования одной линии целиком
Конечно, если точки или отрезки должны иметь разную яркость и т.д., то проще не получится, придётся рисовать по точкам. Для визуального "ускорения" можно рисовать в бэкбуфере и потом выводить его, как текстуру, уже в видимый буфер. Сообщение отредактировал Iron Bug - 11.7.2014, 12:46 |
|
|
lanz |
11.7.2014, 21:32
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
glVertex* это Immediate mode, он довольно медленый.
http://stackoverflow.com/questions/6733934...-mean-in-opengl Надо использовать glDrawElements/Arrays, будет значительно быстрее https://www.opengl.org/sdk/docs/man2/xhtml/...rawElements.xml |
|
|
soaup |
15.7.2014, 6:27
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 3.6.2014 Пользователь №: 4152 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не очень понятно, в массиве заданы координаты ломаной линии или точек одной линии? В массиве QByteArray у меня 6656*8 байтов, каждый из которых нужно нарисовать как точку, используя значение байта как цвет. glVertex* это Immediate mode, он довольно медленый. http://stackoverflow.com/questions/6733934...-mean-in-opengl Надо использовать glDrawElements/Arrays, будет значительно быстрее https://www.opengl.org/sdk/docs/man2/xhtml/...rawElements.xml Не совсем понятно, как это можно сделать, если у меня массив QByteArray, а в нем 6656*8 байтов. Как мне эти байты использовать в качестве вершин? |
|
|
lanz |
18.7.2014, 18:26
Сообщение
#5
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Вот здесь практически все есть:
http://ogldev.atspace.co.uk/www/tutorial02/tutorial02.html Надо только с аттрибутами правильно определится. Очень хороший туториал. |
|
|
Текстовая версия | Сейчас: 30.4.2024, 5:08 |