通常建议不要在手机游戏中使用矢量图形,或对它们进行预光栅化——以提高性能。这是为什么?我认为 OpenGL 至少与在屏幕上渲染图像一样擅长绘制线条/三角形......
3 回答
光栅化它们会将它们缓存为图像,因此与计算矢量和绘图的每个坐标相比,开销更少(更多的绘制周期和更多的 CPU 使用)。绘制矢量正是如此,您在每次调用时从点到点绘制弧线,而不是在某个坐标处显示带有缓存图像文件的图像。
尽管使用冒名顶替者是一个很好的优化技巧,但取决于冒名顶替者的形状、涉及的透支程度以及在此过程中何时可能需要混合,该技巧可以让您受到填充率的限制。此外,在某些形状可能发生变化的情况下,将图形缓存到冒名顶替者中可能不可行,或者可能会产生其他开销。是平衡渲染管道的问题。
答案取决于硬件。您是否使用 GPU?如今,具有 Android 和 IOS 的现代移动设备在芯片组中嵌入了 GPU 单元。该 GPU 非常适合矢量图形。为了探究这一点,除了 1 个或多个像素处理器之外,大多数 GPU 都有一个专用的几何处理器。(例如 Mali-400 GPU)。例如,假设您要绘制 200 个不同颜色的透明圆圈。如果你用现代 OpenGL 来做,你只需要一组几何体(形成一个圆圈的三角形列表)和每个圆圈的参数列表,比如位置和颜色。如果您将此信息提供给 GPU,它将非常快速地并行绘制。
如果您为每种颜色使用不同的纹理,您的程序将非常重(存储大小),并且由于内存带宽问题可能会更慢。
这取决于你想做什么,以及硬件。如果您的硬件没有 GPU,您可能应该预渲染您的图形。