我試圖從OpenGL視圖捕捉iOS上截圖,使用glReadPixels
作爲原始分辨率的一半。 glReadPixels
在視網膜屏幕上顯得很慢,所以我想以某種方式強制讀取每秒像素和每隔一行,導致非視網膜屏幕截圖(1/4分辨率)。glReadPixels指定分辨率
我嘗試設置這些:
glPixelStorei(GL_PACK_SKIP_PIXELS, 2);
glPixelStorei(GL_PACK_SKIP_ROWS, 2);
調用glReadPixels
之前,但它似乎並沒有被完全改變任何東西。相反,它只渲染原始圖像的1/4,因爲我傳遞給glReadPixels的寬度和高度是視圖的非視網膜大小。另外,如果您知道捕獲OpenGL截圖的更多高性能方法,請隨時分享它。
也許設定降低水庫越早通過指定降低水庫渲染目標(通過觀察口) – 2014-10-26 18:04:33
謝謝,有兩個問題,這種方法: - 我想要的比賽實況圖像是全視網膜分辨率,只有截圖成爲1x水庫。 (出於所描述的性能原因) - 我正在使用SpriteKit,因此除了視圖本身以外,我沒有顯式訪問渲染目標的分辨率。我會看到我可以用視圖做什麼,但... – Maciej 2014-10-26 18:07:09
你使用的是什麼OpenGL版本?看起來像ES 3.0,因爲'GL_PACK_SKIP_PIXELS'在ES 2.0中不可用? – 2014-10-26 18:46:57