2012-01-05 40 views
5

我目前正在開發OpenGL遊戲,最近開始重構它以支持除iPad之外的iPhone。爲了讓自己的工作儘可能少,我只是將包含EAGLView的大小調整爲480 x 360(以保持iPad長寬比)並將視圖向上移動,因此它的原點位於-20(爲了將內容居中,並且邊緣可能會被裁剪)。UIView部分偏離屏幕時的OpenGL ES性能問題

我發現這會導致設備上出現抖動(儘管CAD顯示鏈接報告的幀持續時間相當於59-61幀/秒),並且與iPad版本並排比較時速度至少慢了20%。

然後我嘗試重新調整視圖大小到屏幕尺寸480 x 320和性能恢復正常(雖然呈現的內容不再具有正確的長寬比)。

爲什麼「屏幕外」渲染導致性能下降,爲什麼displaylink仍然認爲它在60fps下運行?

任何想法? 謝謝

回答

0

這是一個瘋狂的猜測,但裁剪區域呢?有這種硬件功能使混合窗口和硬件加速圖形成爲可能。也許它在移動設備上不能很好地實現。

但是,您可以避免使UIView脫離屏幕並嘗試使用glViewport()將視圖的各部分移出屏幕。雖然它看起來是相同的,但它由流水線的不同部分(光柵化器)處理,並且應該快得多。

+0

感謝您的迴應,我最終調整了視口,就像您說的那樣,它現在像夢一樣運行 – Weaverfish 2012-01-23 19:38:06

+0

很高興聽到... – 2012-01-24 12:01:51