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

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

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

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

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

Ответ 1

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

Ответ 2

Очевидной задачей OpenGL было бы отобразить растровое изображение как текстуру.

Ответ 3

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

Ответ 4

Если вы хотите, я создал очень простой API, который, среди многих вещей, также может показывать видео как текстуру opengl. Вы также можете создавать карты динамической высоты, используя живое видео.

Вы можете проверить API на http://www.barbato.us/category/programming-labs/

Очень проста в использовании и делает код очень читаемым.

Удачи!!!