Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SVG + OpenGL 
:(
    Опции темы
sh0375
Дата 31.3.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.2.2009

Репутация: нет
Всего: нет



Добрый день!

Помогите, кто может, разобраться с такой задачей:

есть огромные SVG файлы, полученные экспортом из Adobe Illustrator, размером в сотни мегабайт. 
Их нужно просматривать в программе на QT.
Я реализовал это без использования OpenGL.
В потоке запускается отрисовка нативными средствами QT.
Но работает медленно.
Стоит задача ускорить работу. Я попробовал перевести на OpenGL. Но столкнулся с рядом неразрешимых для себя проблем:

1. мне показалось OpenGL работает в потоке не совсем стабильно.  программа элементарно подвисала при запуске отрисовки OpenGL в потоке. Причем не сразу. Могла несколько раз и отрисовать.

2. я использовал простое перенаправление вывода QT методов на widget OpenGL. Как мне показалось, скорость все равно недостаточна. 
А при выводе растровых изображений даже меньше.
Насколько я понял, преимущество OpenGL проявляется если заранее создать объекты текстур, фигур на сервере OpenGL. А затем много раз обращаться к ним для отрисовки. Но поскольку размер SVG файла огромен, я не уверен, возможно ли все фигуры и растровые картинки из него заранее отправить в пямять OpenGL. Возможно ли вообще использование OpenGL в такой ситуациции?


PM MAIL   Вверх
kamre
Дата 31.3.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



Цитата(sh0375 @ 31.3.2009,  16:05)
есть огромные SVG файлы, полученные экспортом из Adobe Illustrator, размером в сотни мегабайт. 

Интересно, а в какой-нибудь программе такие SVG файлы нормально показываются? Браузерами Opera/FireFox? Adobe SVG Viewer? Inkscape? Batik?
PM MAIL   Вверх
sh0375
Дата 1.4.2009, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.2.2009

Репутация: нет
Всего: нет



Сам Adobe Illustrator показывает на порядок быстрее, чем моя программа.
Долго открывает файл, но при скроллинге изображения отрисовка идет быстро.
Мне кажется что он даже не использует OpenGL.

PM MAIL   Вверх
Alexeis
Дата 1.4.2009, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



  Ну svg это векторная графика, тут нужно смотреть скорее в сторону Corel Draw. Открывает он их точно, не знаю насколько быстро.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
kamre
Дата 1.4.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



Цитата(sh0375 @ 1.4.2009,  07:44)
Сам Adobe Illustrator показывает на порядок быстрее, чем моя программа.
Долго открывает файл, но при скроллинге изображения отрисовка идет быстро.
Мне кажется что он даже не использует OpenGL.

Ну так не зря же за него просят столько денег, там уж наверняка постарались, чтобы все работало как можно быстрее. Наверняка он все переводит в свой внутренний формат данных, а не работает с чистым svg. Вот этот внутренний формат у него и оптимизирован для быстрой отрисовки частей и скролинга. 

Интересно как раз то, как другие программы этот экспортированный svg умеют показывать. Тот же Adobe SVG Viewer.
PM MAIL   Вверх
baldina
Дата 1.4.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата

огромные SVG файлы, полученные экспортом из Adobe Illustrator, размером в сотни мегабайт. 


Цитата

Adobe Illustrator показывает на порядок быстрее


идеи:
- при отрисовке кадра не надо отдавать opengl всё. только то, что однозначно видно, и видно достаточно хорошо (не слишком мелкое)
- такой большой файл неплохо бы проиндексировать (K-d деревья), что позволит быстро определять, попадает ли объект в зону видимости
- смысл в использовании opengl только в преобразованиях координат и растеризации полигонов, которые могут производиться аппаратно
- использование дисплейных списков opengl в данном случае думаю не ускорит, а может и замедлит процесс. а вот использование glVertexPointer может сказаться положительно

Добавлено через 6 минут и 15 секунд
кстати если перевести его в двоичный формат (попутно и проиндексировать) сотни мегабайт наверняка превратятся в десятки, а мож и меньше...

Это сообщение отредактировал(а) baldina - 1.4.2009, 17:48
PM MAIL   Вверх
sh0375
Дата 2.4.2009, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.2.2009

Репутация: нет
Всего: нет



А можно каким-либо образом часть изображения (например векторные пути) выводить с использованием OpenGL, а часть (растровые изображения) - стандартными средствами QT?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.