1

在按照howto_decode_to_texture.md描述的那样实现360视频后,我们发现渲染线程后显示颜色不正确。任何人都可以帮助指出导致它的原因吗?

输入图片

显示图片 创建上下文

4

1 回答 1

1

(解决方案总结在评论中)

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

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

于 2017-07-14T16:45:05.500 回答