Как сделать вывод видео 360 в opengl

я хочу иметь вывод OpenGL со сферической проекцией для создания видео 360.

теперь у меня есть лица кубической карты, и они генерируются с помощью 6 перспективных камер.

мне нужно что-то вроде этого: введите здесь описание изображения

как я могу получить этот вывод?

Есть идеи?


person masoud khanlo    schedule 20.05.2017    source источник


Ответы (1)


Это зависит от точной проекции, которую вы собираетесь использовать. Для простой сферической проекции вы визуализируете четырехугольник в целевую текстуру с помощью следующего фрагментного шейдера:

uniform samplerCube tex;
in vec2 texcoord;
out vec4 OUT;

void main() {
    vec3 d = vec3(
        cos(texcoord[0])*cos(texcoord[1]),
        sin(texcoord[0])*cos(texcoord[1]),
        sin(texcoord[1])
    );
    OUT = texture(tex, d);
}

texcoord должен варьироваться от (-tau/2,-tau/4) в нижнем левом углу до (tau/2, tau/4) в верхнем правом углу.

person Yakov Galka    schedule 20.05.2017
comment
Спасибо @ybungalobill, ваше решение было действительно полезным, но это было не совсем то, что мне нужно, я наконец нашел его здесь: ShaderToy, в любом случае спасибо за полезный ответ. - person masoud khanlo; 21.05.2017
comment
Это то же самое. - person Yakov Galka; 21.05.2017