我想要 OpenGL 输出和球面投影来制作 360 视频。
现在我有立方体贴图面,它们是用 6 个透视相机生成的。
我怎么能有这个输出?
任何想法?
这取决于您期望使用的确切投影。对于简单的球形投影,您可以使用以下片段着色器将四边形渲染到目标纹理中:
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)
。