2017-02-21 55 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