这个问题不能简单回答。
- 你可以尝试绘制一些荒谬的行数,并比较它们使用多边形绘制相同的场景。将坐标预先生成并发送到GPU,以便排除生成数据的任何逻辑。同时尝试多次绘制场景并交换两种模式,以便排除任何异常,例如稍后绘制的异常可能会更快。然后比较两次,看看你是否有所不同,更重要的是获得显着差异。
- 如果你使用的是平截头矩阵,你将会在生成顶点数据时遇到一个问题,因为看起来更接近的线会更大。
- 如果每帧产生这些点并推送到GPU,则使用多边形发送更多数据会产生开销,这会使您回到使用多边形所获得的更多。
- 如果您还需要从每个帧的点上生成多边形顶点,那么执行该操作可能会有相当大的问题。这可以通过独立于openGL管道处理数据来解决,例如在某个后台线程上生成这些数据,然后在准备好之后将它们提供给主管道。如果后台工作速度太慢并且顶点数据开始堆积,这可能仍然会让您陷入麻烦。
所以一般来说,通过实现上述系统可以测试哪种方法更快,但您不应该期待任何魔法。如果你发现多边形真的快得多,那么你可能想要考虑的线路继续沿着这条路走,并试图测试是否可以足够快地发送顶点数据。如果您的性能仍然有所提高,那么您的下一个问题可能就在于CPU(生成顶点数据),而这些问题可能是您可能解决的问题,也可能无法解决。
所以这是相当多的“ifs”,但我有一种感觉,在测试第一部分后,您将放弃此优化。无论如何,如果你尝试其中任何一种,如果你在测试过的东西上发布了一些结果,什么设备和性能结果,我将不胜感激。