下面的列表总结了各代设备中可用的 iOS 硬件。可以在 gfxbench(该平台使用基准测试来比较不同的硬件功能)上比较当前设备的着色器性能。
搭载 A5 芯片的 iPhone 4S 能够在整个屏幕上渲染复杂的着色器。甚至可以实现图像效果。然而,优化着色器仍然至关重要。但是,如果您的游戏并非试图达到设备的极限性能,在这一代设备上优化脚本和游戏运行过程所需要的时间与在 PC 上所需要的时间几乎相同。
iPad2:A5 可以进行全屏幕凹凸贴图,前提是着色器足够简单。但是,您的游戏很可能只在关键对象的凹凸贴图上发挥最佳性能。全屏图像效果仍然无法实现。脚本优化不太重要。
iPad 3 已经被证明支持渲染到纹理效果,如反射水和全屏图像效果。然而,优化着色器仍然至关重要。但是,如果您的游戏并非试图达到设备的极限性能,在这一代设备上优化脚本和游戏运行过程所需要的时间与在 PC 上所需要的时间几乎相同。
iPhone/iPad 图形处理单元 (GPU) 是基于区块的延迟渲染器。与桌面计算机中的大多数 GPU 不同,iPhone/iPad GPU 重点是尽量减少场景处理过程中提前渲染图像所需的工作量。这样一来,只有可见像素才会消耗处理资源。
GPU 的帧缓冲区划分为区块,并且逐个区块进行渲染。首先,整个帧的三角形被收集并分配到区块。然后,将选择每个三角形的可见片元。最后,选择的三角形片元传递给光栅器(从摄像机中遮挡的三角形光栅器在这个阶段被拒绝)。
换句话说,iPhone/iPad GPU 以较低成本实现了__隐藏表面消除__操作。这种架构占用较少的内存带宽,功耗较低,并且更好地利用了纹理缓存。基于区块的延迟渲染允许设备在实际光栅化之前拒绝遮挡的片元,这有助于降低过度绘制。
有关更多信息,另请参阅:
iOS 设备支持以下纹理压缩格式:
PVRTC 支持 RGB 和 RGBA(颜色信息加 Alpha 通道)纹理格式,可以将单个像素压缩为 2 位或 4 位。PVRTC 格式对于减少内存占用和减少内存带宽的消耗至关重要,例如,可以从内存中读取数据的速率,这在移动设备上通常非常有限。
ETC 将 4x4 像素块压缩为 64 位数量,但缺少 Alpha 通道。
ETC2 同时支持 1 位和 8 位 Alpha 通道压缩。
ASTC 是使用像素块大小的灵活格式。Metal 和 OpenGL ES 3.0 图形 API 支持此格式。
注意:不支持 iOS 设备上的 DXT 纹理压缩格式。
有关 iOS 中的详细纹理压缩选项,请参阅 iOS 2D 纹理覆盖。
iPhone/iPad 有一个专门负责顶点处理的单元,与光栅化并行运行计算。为了实现更高的并行效率,iPhone/iPad 比光栅器提前一帧处理顶点。
iPhone/iPad 的 CPU 和 GPU 共享相同的内存。优点是您不需要担心纹理的视频内存不足(当然,除非主内存也用完了)。缺点是游戏和图形共享相同的内存带宽。您为图形专门分配的内存带宽越多,游戏和图形的内存带宽就越少。
iPhone/iPad 主 CPU 配备了功能强大的 SIMD(单指令、多数据)协处理器,支持 VFP 或 NEON 架构。Unity iOS 运行时利用这些单元执行多个任务,如计算蒙皮网格变换、几何体批处理、音频处理和其他计算密集型操作。