OpenGL矢量图形渲染在移动设备上的性能

时间:2013-05-09 18:44:13

标签: c++ ios mobile opengl-es vector-graphics

通常建议不要在手机游戏中使用矢量图形,或者预先光栅化它们 - 以提高性能。这是为什么?我认为OpenGL在绘制线条/三角形方面至少与在屏幕上渲染图像一样好......

3 个答案:

答案 0 :(得分:3)

栅格化它们将它们作为图像缓存,因此与计算矢量和绘图的每个坐标(更多绘制周期和更多cpu使用)相比,开销更少。绘制矢量正是如此,您在每次调用时从点到点绘制弧,而在某个坐标处使用缓存的图像文件显示图像。

答案 1 :(得分:1)

虽然使用冒名顶替是一个很好的优化技巧,取决于冒名顶替者的形状,涉及多少过度绘制,并且无论何时你需要在这个过程中混合,技巧都可以让你被填充。此外,在形状可能发生变化的某些情况下,将图形缓存到冒名顶替者可能不可行或可能导致其他开销。是平衡你的渲染管道。

答案 2 :(得分:1)

答案取决于硬件。你使用GPU还是不使用? 今天,采用Android和IOS的现代移动设备在芯片组中嵌入了GPU单元。 这款GPU非常适合矢量图形。为了探测这一点,除了1个或更多像素处理器之外,大多数GPU都有专用的几何处理器。 (通过示例Mali-400 GPU)。 举个例子,假设您要绘制200个不同颜色的透明圆圈。 如果使用现代OpenGL进行,您只需要一组几何(形成圆的三角形列表)和每个圆的参数列表,比如位置和颜色。如果您将此信息提供给GPU,它将非常快速地并行绘制它。

如果你为每种颜色使用不同的纹理,你的程序将非常繁重(存储大小),并且由于内存带宽问题可能会更慢。

这取决于您想要做什么以及硬件。如果您的硬件没有GPU,则可能需要预先渲染图形。