当UIView部分偏离屏幕时,OpenGL ES性能问题

Wea*_*ish 5 opengl-es ios

我目前正在开发OpenGL游戏,最近开始重构它以支持iPhone以及iPad.为了让自己尽可能少地工作,我简单地将包含EAGLView的大小调整为480 x 360(以保持iPad纵横比)并将视图向上移动,使其原点位于-20(为了使内容居中,并且可以裁剪边缘).

我发现这导致设备上的性能不稳定(尽管CADisplay链接报告的帧持续时间相当于59-61 fps),并且与iPad版本并排比较时至少降低了20%.

然后我尝试将视图大小调整为屏幕大小480 x 320,并且性能恢复正常(尽管渲染的内容不再具有正确的宽高比).

为什么"屏幕外"渲染会导致性能下降?为什么displaylink仍然认为它以60fps运行?

有任何想法吗?谢谢

the*_*ine 0

这主要是一个大胆的猜测,但是剪切区域呢?这种硬件功能使得混合窗口和硬件加速图形成为可能。也许它在移动设备上实现得不是很好。

但是,您可以避免使 UIView 离开屏幕,并尝试使用 glViewport() 将视图的部分移出屏幕。虽然看起来是相同的,但它是由管道的不同部分(光栅器)处理的,并且应该快得多。