Иногда может возникнуть желание просмотра уже имеющихся 3D-фильмов в формате стереопары (в контейнере mkv) в отрыве от 3D-телевизора. При этом, соответственно, возникает необходимость сделать из стереопары обычное 2D-изображение. И закономерно стремление использовать для этой цели какой-либо привычный легкий медиаплеер – например, Media Player Classic – Home Cinema.
По сути, задача преобразования 3D-стереопары в 2D-формат сводится к тому, чтобы убрать половину кадра, а остаток растянуть на весь экран. Стандартными средствами плеера MPC-HC это сделать возможно, но затруднительно – нужно для каждого фильма вручную сдвигать и растягивать формат в настройках воспроизведения. Существует более простой и удобный способ – с использованием шейдеров.
Для начала понадобится создать два новых шейдера в MPC-HC: один для горизонтальной стереопары, другой – для вертикальной. Для этого открываем меню Play -> Shaders -> Edit Shaders (либо нажимаем Ctrl+9). В открывшемся окне в первом строковом поле пишем любое название, а ниже в большом окне вставляем непосредственно код шейдеров. Для сохранения нового шейдера достаточно вернуть курсор в строку с его названием и нажать клавишу Enter.
Шейдер для горизонтальной стереопары:
// 3D Side-by-Side to 2D sampler s0 : register(s0); float4 p0 : register(c0); #define width (p0[0]) #define height (p0[1]) float4 main(float2 tex : TEXCOORD0) : COLOR { tex.x = tex.x / 2; float4 l = tex2D(s0, tex); float4 r = tex2D(s0, tex); float red = l.r; float green = r.g; float blue = r.b; return float4(red, green, blue, 1); }
Шейдер для вертикальной стереопары:
// 3D Over-and-Under to 2D sampler s0 : register(s0); float4 p0 : register(c0); #define width (p0[0]) #define height (p0[1]) float4 main(float2 tex : TEXCOORD0) : COLOR { tex.y = tex.y / 2; float4 l = tex2D(s0, tex); float4 r = tex2D(s0, tex); float red = l.r; float green = r.g; float blue = r.b; return float4(red, green, blue, 1); }
Затем остается при помощи меню Play -> Shaders -> Select… выбрать необходимый тип шейдера, после чего активировать выбранное комбинацией клавиш Ctrl+P.
Нужно отметить, что таким образом отображаться будет лишь кадр, предназначенный для одного из глаз в исходном 3D-режиме, и разрешение картинки фильма при этом будет не на высоте. Но для ознакомительного просмотра уже имеющихся 3D-фильмов в 2D-режиме такой способ является вполне приемлемым.
Информация о шейдерах взята с forum.ru-board.com.
…… не актуально!!!!
Спасибо, помогло быстро настроить любимый MPC-HC для просмотра подвернувшегося стереофильма
Сделал чуть по другому, чем в этой инструкции, но в целом, получилось. Создал текстовый фаил с расширением hlsl и загрузил его в плеере в разделе управления шейдерами. Потом поставил данный шейдер в блок Post-Resize и потом поигрался с различными вариантами в меню “Вид – Видеокадр”.
some really interesting information, well written and broadly speaking user pleasant.
Метод частично актуален. Теперь нужно вручную создать текстовые файлы с расширением hlsl и уже после открыть их в MPC-HC. Для ознакомительного просмотра пойдет. Для просмотра можно использовать KMPlayer, картинку выдает лучше.
А можно подробнее, как сделать это в КМР?
Метод работает.
Текстовые файлы создать.
Загрузить в в блок Post-Resize.
Перезапустить MPC.
Можно обойтись и без шейдеров, просто создать 2 новых варианта в “Предустановки размеров и положений” в меню “Положение и размер кадра”->”Изменить”->”Новый”.
Для горизонтальной стерео пары.
Позиция: 1.0 -> 0.5
Масштаб: 2.0 -> 1.0
Для вертикальной стерео пары.
Позиция: 0.5 ->1.0
Масштаб: 1.0 ->2.0
Кстати, качество будет выше чем через данные шейдеры, да и выбирать быстрее получится.
А как сделать наоборот, из 2d в 3d?