在Android中,为了将YUV420sp传递到片段着色器中,我将将数据分割成Y-U-V的信息传递给Y-U-V,并以GL_LUMINANCE格式传递每个sugin glTexImage2D。
但现在我需要做的是,我需要FBO渲染,问题是FBO不支持GL_LUMINANCE。
那么,在不使用GL_LUMINANCE的情况下传递YUV数据的最佳方法是什么?
顺便说一句,我不能在CPU中处理YUV并将其转换为RGB或其他东西,因为关键是将YUV作为GPU传递。
编辑:由于这是对安卓,单一渠道GL_RED将无法工作,因此,尚未实现。
发布于 2013-09-08 01:42:49
在可编程流水线中,完全没有必要使用GL_LUMINANCE。
在最基本的层次上,这是一种允许纹理在固定功能管道的日子里摇摆的黑客行为。现在,您使用GL_RED作为单通道纹理,您可以在片段着色器中任意使用它。
您想复制GL_LUMINANCE的是:vec4 (texture (...).rrr, 1.0)。在最近的OpenGL实现中,您甚至可以使用ARB_texture_swizzle在固定函数管道中这样做。
https://stackoverflow.com/questions/18678670
复制相似问题