VLC — бесплатный и свободный кросс-платформенный медиаплеер и.
На экране картинка выглядела полосатой, но линии не были синхронизированы с пикселями экрана, поэтому эффекта 3. D в очках не наблюдалось. Отступление: Хочу пояснить, как работает 3. D режим на пассивных 3.
D мониторах. Я не специалист в этой технологии, поэтому буду описывать как дилетант. В мониторах типа моего используется технология FPR (Film- type Patterned Retarder) для разделения ракурсов видео потока. Я ее представляю себе так, как будь то каждая линия пикселей на мониторе закрыта поляризационным фильтром, условно можно представить, что нечетные линии закрыты фильтром с вертикальной поляризацией, а четные с горизонтально, такие же фильтры стоят в очках, в результате один глаз видит только нечетные линии, второй четные. Поняв это, я понял, что мне нужно делать пост- обработку непосредственно в рендере, чтоб я мог гарантировать попиксельно расположение выходного видео фрейма. Посмотрел как реализован рендер в VLC для Mac.
Оказалось все довольно просто. Егэ-2014. Физика. Тематические И Типовые Экзаменационные Варианты. 32 Варианта подробнее. Каждый декодированный видео фрейм загружается в виде текстуры, которая в последствие отображается на экране средствами open GL.
Преобразование графического формата из YUV в RBG происходит непосредственно в пиксельном шейдере. Это сразу натолкнуло меня на мысль — что нужно сделать. Поскольку известно, что пиксельный шейдер как раз формирует цвет для каждого пикселя экрана, мне остается только поправить этот шейдер, чтоб он при формирование цвета брал данные из нужной части текстуры, для четных и нечетных линий.
Вот пример кода (написано схематично, рабочий пример можно посмотреть тут ): void main(void).