2017-02-21 54 views
0

撕裂我在iOS 10.1和Xcode 8.2.1相机当使用“捕获GPU帧”在iOS用OpenGL

我使用OpenGL ES 2.0到呈现在屏幕上的相机的帧。

摄像头在运行时正常显示,但如果我在Xcode中使用“捕捉GPU帧”按钮,我得到撕裂摄像头拍摄这样的:

enter image description here

任何人都经历过类似的事情?

回答

0

我猜你在将图像导入到GL中时出现了行方向错误,因此每一行都稍微短一些,这会累积到可用的对角线模式中。

+0

该模式只出现在我使用'捕捉GPU帧',应用程序本身看起来不错。 你在说'GL_PACK_ALIGNMENT'?从未见过任何相机代码示例使用它。我试着将'GL_PACK_ALIGNMENT'和'GL_UNPACK_ALIGNMENT'设置为'1',但它没有解决它。 PS:我使用'CVOpenGLESTextureCacheCreateTextureFromImage'将帧上传到GPU,并以撕裂上传。 – grisevg

+0

通常它是'GL_UNPACK_ROW_LENGTH'和'GL_UNPACK_ALIGNMENT'的组合,以便在OpenGL ES中大步前进。 这就是说,我不知道这是如何工作在iOS内部。如果它通过EGL图像导入图像,那么应用程序可能根本无法控制跨度(如在图像导入时指定的那样),在这种情况下,我认为您卡住了。 – solidpixel