Видеодисплей с openGL

Я хочу отобразить видео очень высокого разрешения непосредственно с OpenGL.

Данные изображения будут обработанными на GPU, и я хочу избежать распространения в прямом и обратном направлениях назад к ПК для показа видео в стандартном основанном на битовом массиве окне.
Кросс-платформенный хороший, Windows, только был бы в порядке (так будет только Nvidia),

У кого-либо есть какие-либо ссылки на способы делать это?

Существует плохое учебное руководство NeHe и несколько примеров для встроенных openGL виджетов в QT, но мне нужны намного лучшая производительность и очень увеличенные изображения.

11
задан Martin Beckett 8 March 2011 в 05:41
поделиться

3 ответа

Предполагая OpenGL 2.1, используйте объект буфера типа GL_PIXEL_UNPACK_BUFFER для потоковой передачи данных пикселей в текстуру. Это быстрее, чем загрузка данных в каждом кадре, поскольку реализация может использовать DMA для копирования, когда вы используете glMapBuffer, glMapBufferRange (OpenGL 3.2) или вызываете glBufferData напрямую. Вы также можете скопировать несколько кадров в каждый пакет, чтобы получить компромисс между накладными расходами на копирование и накладными расходами на отображение. Наконец, создайте шейдер для преобразования YUV или YCbCr в RGB и отображения текстуры с полосой треугольников.

11
ответ дан 3 December 2019 в 08:28
поделиться

Очевидная вещь, которую можно сделать с помощью OpenGL, - это отобразить растровое изображение как текстуру.

2
ответ дан 3 December 2019 в 08:28
поделиться

Итак, вы хотите отправить видео на текстуру и обработать его с помощью фрагментного шейдера? Вот один короткий туториал, как сделать нечто подобное. Это простой пример OpenGL 2.0, который создает 2 текстуры размером с окно и смешивает их во фрагментном шейдере. В нем нет видео, но его несложно модифицировать, если у вас уже есть средства для его декодирования.

1
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: