在实现360视频如howto_decode_to_texture.md描述后,我们发现渲染器线程后显示颜色不正确。任何人都可以帮助指出导致它的原因吗?
答案 0 :(得分:1)
(解决方案摘要在评论中得出)
当使用GL_TEXTURE_EXTERNAL_OES作为纹理类型时,通常意味着GL驱动程序将执行YUV - >幕后的RGB转换。因此,在这种情况下,您希望Cobalt将生成的纹理视为RGBA纹理,因此您应该为图像使用kSbDecodeTargetFormat1PlaneRGBA。
当解码器的输出是两个单独的纹理(Y的纹理和UV的纹理)时,应使用kSbDecodeTargetFormat2PlaneYUVNV12格式,在这种情况下,Cobalt将使用片段着色器来执行YUV - > RGB转换。