Cobalt 360视频显示不正确

Cobalt 360 video display is not correct

按照howto_decode_to_texture.md所述实现360度视频后,我们发现渲染器线程后显示颜色不正确。谁能帮忙指出是什么原因造成的?

input picture

Display picture

(评论中的解决方案摘要)

当使用 GL_TEXTURE_EXTERNAL_OES 作为纹理类型时,通常意味着 GL 驱动程序将在幕后执行 YUV -> RGB 转换。因此,在这种情况下,您可能希望 Cobalt 将生成的纹理视为 RGBA 纹理,因此您应该为图像使用 kSbDecodeTargetFormat1PlaneRGBA。

当解码器的输出是两个独立的纹理(Y 纹理和 UV 纹理)时,应使用 kSbDecodeTargetFormat2PlaneYUVNV12 格式,在这种情况下,Cobalt 将使用片段着色器来执行 YUV -> RGB 转换。