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

5
我目前正在开发一款OpenGL游戏,并最近开始对其进行重构,以支持iPhone和iPad。为了尽可能少地工作,我只是将包含的EAGLView调整大小为480 x 360(以保留iPad的宽高比),并将视图向上移动,使其y原点位于-20(为了使内容居中,因为边缘可能被裁剪)。
我发现这导致设备性能卡顿(尽管CADisplay link报告的帧持续时间相当于59-61 fps),而与iPad版本相比至少要慢20%。
然后我尝试将视图大小调整为屏幕大小480 x 320,性能恢复正常(尽管渲染的内容不再具有正确的宽高比)。
为什么“离屏”渲染会导致性能下降,而显示链接仍然认为它正在以60fps运行?
有任何想法吗? 谢谢
1个回答

0
这只是一个猜测,但关于剪辑区域呢?曾经有这种硬件功能,可以将窗口和硬件加速的图形混合在一起。也许在移动设备上没有很好地实现。
不过,你可以尝试避免将UIView放在屏幕外,并尝试使用glViewport()来将视图的部分移到屏幕外。虽然看起来相同,但它是由管线的不同部分(光栅化器)处理的,应该更快。

谢谢您的回复,我最终按照您所说的调整了视口,现在它运行得非常流畅。 - Weaverfish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接