2011-09-09 59 views
4

我正在使用this method from Apple截取我的OpenGL ES iPhone遊戲的截圖。截圖看起來很棒。然而,截圖會導致遊戲中出現一個小的口吃(否則它會以60 fps的速度平穩運行)。 如何修改the method from Apple以獲得較低質量的截圖(從而消除因截圖而導致的結巴)?降低質量OpenGL ES屏幕截圖(iPhone)

編輯#1:最終目標是創建的使用AVAssetWriter在玩遊戲的視頻。也許有更高效的方法來生成this SO post中引用的CVPixelBuffers。

回答

2

Apple方法使用glReadPixels(),它將所有數據從顯示緩衝區中拉出,並可能觸發GPU和CPU之間的同步障礙等。你不能讓這部分更快或更低的分辨率。

你是否正在爲此創建一次性視頻?還是你想讓用戶能夠在生產代碼中觸發這種行爲?如果是前者,你可以做各種欺騙手段來加速它 - 爲所有事物渲染一個更小的尺寸,根本不需要present,只需根據遊戲中輸入數據的記錄或其他這些技巧,或者甚至進一步運行整個模擬,以半速獲取所有幀。

如果你需要一個真正的遊戲中的功能,我就不那麼有幫助了。也許別人會。

+0

是的我正在尋找遊戲中的功能。 – SundayMonday

2

如果一切都失敗。

獲取這些 http://store.apple.com/us/product/MC748ZM/A

一個,然後通過某種外部設備的是複合視頻轉換爲數字。 很久以前我把vhs電影轉換成dvd的時候,我已經做到了。

+0

OP顯然希望創造一個遊戲中的捕捉功能,而不是遊戲中的一次性視頻。 –

3

錄音的目的是什麼?

  • 如果你想給設備你可以看看保存對象位置等,而不是和重繪3D序列上重播的序列。這也可以重放其他視圖位置的序列。

  • 如果您想要顯示遊戲即youtube或其他遊戲,您可以使用其他設備/相機記錄遊戲進度,或者使用屏幕捕獲軟件ScreenFlow記錄在模擬器中運行的某些遊戲。