Название: ускорить отрисовку текстур Отправлено: axker от Апрель 10, 2012, 10:09 Изображение с нескольких камер накладывается на некоторые фигуры в пространстве (части цилиндра), задаваемые массивами индексов, вершин и текстурных координат
Код
Отрисовка трех кадров формата 1280х720 происходит со скоростью 20-25 кадров в секунду. Каким образом можно поднять производительность, доведя fps до 50 (камеры в отдельном потоке граббят с бОльшей частотой) ? Основная потеря времени происходит на bindTexture, можно ли как-то вынести обновление текстур в отдельный поток или оптимизировать сей процесс? Читал, что можно использовать wglShareLists, но мне нужно под Убунту. Заранее спасибо. Название: Re: ускорить отрисовку текстур Отправлено: alexis031182 от Апрель 10, 2012, 10:56 Может быть напрямую гнать данные текстуры в GL с использованием glTexImage2D(), двойной буферизацией и минуя QImage? Нет, не подходит в Вашем случае?
Название: Re: ускорить отрисовку текстур Отправлено: axker от Апрель 10, 2012, 12:51 это вот так?
Код
выигрыша нет почти никакого Название: Re: ускорить отрисовку текстур Отправлено: V1KT0P от Апрель 10, 2012, 12:56 Отрисовка трех кадров формата 1280х720 происходит со скоростью 20-25 кадров в секунду. Каким образом можно поднять производительность, доведя fps до 50 (камеры в отдельном потоке граббят с бОльшей частотой) ? Основная потеря времени происходит на bindTexture, можно ли как-то вынести обновление текстур в отдельный поток или оптимизировать сей процесс? Читал, что можно использовать wglShareLists, но мне нужно под Убунту. Заранее спасибо. Советую глянуть исходники VLC, там явно оптимальный способ используется.Название: Re: ускорить отрисовку текстур Отправлено: alexis031182 от Апрель 10, 2012, 13:04 это вот так? Да, так. Жаль. А переключать буферы пробовали (glXSwapBuffers) ? По идее, пока один заполняется, второй выводится. Должно помочь.... выигрыша нет почти никакого Название: Re: ускорить отрисовку текстур Отправлено: alexis031182 от Апрель 10, 2012, 13:05 Советую глянуть исходники VLC, там явно оптимальный способ используется. А в VLC разве не XVideo используется? Или и GL тоже?Название: Re: ускорить отрисовку текстур Отправлено: V1KT0P от Апрель 10, 2012, 13:19 Советую глянуть исходники VLC, там явно оптимальный способ используется. А в VLC разве не XVideo используется? Или и GL тоже?Название: Re: ускорить отрисовку текстур Отправлено: alexis031182 от Апрель 10, 2012, 13:58 Там разные способы вывода(OpenGL, DirectX, Windows GDI, прямо в видеопамять и т.д.). Но гуй у него на Qt написан, так что не проблема. Глянул исходники ради интереса. На C написан. Гуя, видимо, как плагин или модуль реализована, а может вообще отдельно, т.к. в исходниках присутствует серверная часть.По GL глянул. В общем-то, похоже, только glTexImage2D вызывается один раз сначала на некоторый пул кадров, а затем только glTexSubImage2D. Может быть здесь имеет смысл покопать. И ещё... Автор темы писал, что изображения поступают с видеокамер, а формат рисуется, смотрю, RGBA. Производится конвертация? Просто OpenGL помимо RGB поддерживает и другие форматы, не столь объёмные. У некоторых из них даже и не заметить разницы по качеству с RGB. Это просто к слову, к вопросу о возможности ускорения и снижения нагрузки. |