2012-03-08 84 views
1

我有一个关于视网膜屏幕的问题。视网膜屏幕增加计算

例如,我在屏幕上用OpenGL在屏幕上绘制了一个矩形,其大小与iPhone屏幕相同。

对于没有视网膜屏幕的iPhone,尺寸为320 * 480。根据我的理解,将会有320 * 480倍的片段着色器计算。对于视网膜的iPhone,是计算变成320 * 480 * 4?或者仍然是320 * 480。

最好的问候,

回答

2

取决于。如果您只是渲染到320x480帧缓冲区,您只需将其渲染为320x480帧缓冲区,然后让设备进行一些简单的放大。但是,如果渲染为640x960帧缓冲区,则渲染为640x960帧缓冲区。渲染到更高的分辨率总是会付出代价的,你可以在PC上看到这个效果相当不错,因为你的电脑可以在全部设置下处理1024x768像素,但只能在1920x1200上处理中等设置。幸运的是,后者不适用于iOS,因为硬件与显示器成比例缩放,事实上,甚至可以在支持视网膜显示的iPhone 4上渲染质量更高的场景,而不是iPhone 3GS上的质量。

对于“新iPad”......谁知道,但如果GPU真的比iPad 2中的快两倍,那么它将能够真正地以全分辨率绘制令人惊叹的场景。

+1

这也取决于您是否受填充率限制或您的瓶颈是否处理大量几何图形。我有一个应用程序与大规模的几何形状,但简单的着色器,并看到从iPhone 3G S到iPhone 4 Retina帧缓冲区的步伐缓慢。然而,该应用程序的较高版本具有较大的片段着色器,在iPhone 4的较大屏幕尺寸上要慢得多。iPad 2具有一些非常稳定的片段处理性能,但Retina iPad需要将其片段处理缩放4倍用更多的像素来维持这一点。 – 2012-03-08 23:15:39

+0

作为一个附注,您可能需要使用self.contentScaleFactor = [[UIScreen mainScreen] scale];显式设置承载OpenGL ES内容的UIView的缩放因子;'为了在该视图中启用Retina分辨率渲染。 – 2012-03-08 23:17:37