2013-05-09 108 views
1

通常建议不要使用矢量图形的手机游戏,或预光栅化操作 - 对性能。这是为什么?我虽然那OpenGL是至少擅长画线/三角形渲染屏幕上的图像...OpenGL的矢量图形在移动设备上渲染性能

+0

栅格化他们缓存他们,所以开销较少发生VS计算每一个坐标矢量和绘图(更多抽奖周期和更多的CPU使用率) – 2013-05-09 18:49:46

回答

3

栅格化他们缓存它们为图像,以便减少开销发生VS计算每一个坐标矢量和绘图(更多抽奖周期和更多的CPU使用)。绘制一个矢量就是这样,你在每次调用时都是从一个点到另一个点绘制弧,而在一个带有缓存的图像文件的特定坐标上显示一个图像。

+0

有很多的在App Store的3D游戏。它们的渲染难度比平均2D矢量游戏要高10倍,但通常没有性能问题!我错了吗? – cubuspl42 2013-05-09 18:53:54

+1

生成3D模型的3D程序就是这样,是的。但是,比较3D游戏与任何2D游戏的表现,你会看到不同之处。 3D游戏使用光栅图形作为物体的图像,因此它们是2的混合体。它归结为预先渲染的图像和动态创建的图像。 – 2013-05-09 18:57:27

+3

我认为如果您认为3D游戏中没有任何性能问题,您会被误导。与任何3D游戏开发者交谈,他们会告诉你优化是一切,不应该被当成自动魔法。很难让3D游戏在移动设备上表现良好,直到过去一年,甚至在大多数情况下限制质量与数量(帧速率)以实现可播放性。关键要记住的是,一切都只是一个工具,使用正确的工具来完成工作。如果您需要可缩放图形,请使用SVG,如果不是,则利用栅格的性能优势。 – 2013-05-09 19:00:04

1

虽然使用冒名顶替者是一个伟大的优化技巧,这取决于骗子形状,多少透支参与,只要你需要在这个过程中融合了技巧可以让你将填充率约束。同样在形状可能改变的一些场景中,将图形缓存到冒名顶替者可能不可行,或者可能在其他开销中产生。是在平衡你的渲染管道。

+1

对不起,但我没有太多。还是谢谢你的回答。 – cubuspl42 2013-05-09 19:27:28

+0

:)不客气 – Trax 2013-05-09 19:28:34

1

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

如果您在使用不同的纹理为每个颜色做到这一点,你的程序将是非常沉重的(在存储大小),可能会更慢,由于内存带宽问题。

这取决于你想做的事,和硬件。如果你的硬件没有GPU,你可能应该预渲染你的图形。