在Android中绘制运行时构建地图 - Canvas或OpenGL



我实际上正在实现一个视图,它必须绘制建筑物的平面图。我只想同时显示一个楼层,但我已经遇到了性能问题。

每个楼层都有 x 多边形,由 y 点/边组成。我想在地图上画出每一个点和每一条边。在某些情况下,最多有 600 个点,因此在 Canvas 中绘制需要花费大量时间。

切换到OpenGL更好吗?(我不需要任何纹理,只需要多边形)。

我会说,如果你不能使用2.0,那就去OpenGL ES 2.0,那就去1.0。

帆布

  • 更少的代码(以及更基本和简单的编程)
  • 虽然性能更差

OpenGL ES

  • 更多代码
  • 通常性能更好(多边形越多,就越容易看到OpenGL ES提供更好的性能)

因此,如果我们谈论的是少量多边形,那么 Canvas 可以处理它,同时仍然提供良好的 FPS。

虽然请注意,使用OpenGL,如果你能这样说,需要更多的"思考"。基本上,您需要考虑要将哪些顶点打包到VBOs中,然后减少绘制调用,您将获得更好的 FPS。你还需要知道一些矩阵和向量数学,可能不是100%需要,但是如果你知道的话,很多事情会变得容易得多。

最新更新