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

OpenGL vector graphics rendering performance on mobile devices

本文关键字:图形渲染 性能 OpenGL 移动      更新时间:2023-10-16

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

栅格化将它们缓存为图像,因此与计算矢量和绘图的每个坐标相比,所需的开销更少(更多的绘制周期和更多的cpu使用)。绘制矢量就是这样,你在每次调用中从点到点绘制弧线,而不是在缓存图像文件的某个坐标上显示图像。

虽然使用冒名顶替者是一个很好的优化技巧,但取决于冒名顶替者的形状,涉及的透支程度以及在过程中何时需要混合,这个技巧可以让你受到填充率的限制。此外,在某些形状可能发生变化的场景中,将图形缓存到冒充者可能不可行或可能会产生其他开销。

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

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

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