这是问题所在,我正在使用 OpenGL ES 在 iPhone 上做一个小项目。我从 Brad Larson 的ColorTracking 应用程序开始(非常感谢 Brad 提供它)并根据我的需要对其进行了调整。
一切正常,但是,当我在我的 中使用forkCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
时,因为我将处理灰度图像并且不需要任何颜色,屏幕上的结果图像沿 y 轴平移,并且屏幕外的部分呈现在顶部:kCVPixelBufferPixelFormatTypeKey
AVCaptureVideoDataOutput
这是一个截图:
当然,您需要将glTexImage2D
调用中的数据类型从GL_RGBA
to更改GL_LUMINANCE
为才能正常工作。
使用捕获会话中的GL_RGBA
纹理不会发生此行为。kCVPixelFormatType_32BGRA
有谁知道为什么会发生这种情况,以及如何解决这个问题?任何帮助深表感谢。