ARKit + SceneKit:光照迅速增加了多边形的数量

时间:2018-10-12 12:19:28

标签: 3d scenekit augmented-reality arkit light

我正在使用SceneKit和ARKit创建AR应用程序。当我将光源添加到场景中时,多边形的数量几乎增加了3倍。就我而言,这导致了巨大的滞后。我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果使用正向渲染,则可能会发生此问题。

在这种情况下,当您有一些物体被很少的灯光照亮时,对于每一个灯光,它都会被渲染一次(有例外,但是现在让我们忽略它们)。根据灯光的数量和影响(大小),场景几何甚至可以渲染数十次。

可以做什么:

  • 使用Deferred渲染代替ForwardDeferred渲染解决了这个问题,您甚至可以使用数千个灯光。
  • 使用较少的灯光但将其放大,以便它们仍然照亮您的场景。
  • 添加Ambient照明,这样您到处都不需要real照明。仅使用真实的灯光可以使某些东西变亮。
  • 查看灯光的半径和/或边界框,并在需要时对其进行修复。它们用于优化渲染,因此,如果灯光不接触某些几何体,则可以忽略它。您可能没有这些数据,因此每个光线都接触到每个几何体。
  • 将关卡几何拆分成较小的块。这很棘手,因为通过分割几何图形,您可以获得更多的渲染批次,但是在几何图形和光源之间的重叠也较少。这应该根据您的特定级别和照明设置来完成。