ARKit + SceneKit: Light быстро увеличивает количество полигонов - PullRequest
0 голосов
/ 12 октября 2018

Я создаю приложение AR с помощью SceneKit и ARKit.Когда я добавляю источники света к сцене, это увеличивает количество полигонов почти в 3 раза.Это приводит к огромным задержкам в моем случае.Что я могу сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 15 октября 2018

Эта проблема может возникнуть, если вы используете прямую визуализацию.

В таком случае, если у вас есть какой-то объект, освещенный несколькими источниками света, он будет визуализироваться один раз для каждого источника света (есть исключенияно давайте их пока проигнорируем).В зависимости от количества и влияния (размера) вашего освещения геометрия вашей сцены может отображаться даже десятки раз.

Что можно сделать:

  • Использовать Deferred рендеринг вместоForward один.Deferred рендеринг устраняет эту проблему, и вы можете использовать даже тысячи источников света.
  • Используйте меньше источников света, но сделайте их больше, чтобы они по-прежнему освещали вашу сцену.
  • Добавьте Ambient освещение так, чтобывам не нужен real свет везде.Используйте только настоящие источники света, чтобы сделать что-то ярче.
  • Посмотрите на радиус и / или ограничивающую рамку ваших источников света и исправьте их, если это необходимо.Они используются для оптимизации рендеринга, поэтому, если свет не касается какой-либо геометрии, вы можете игнорировать ее.Возможно, у вас нет этих данных, поэтому каждый источник света касается каждой геометрии.
  • Разделите вашу геометрию уровня на более мелкие куски.Это сложно, потому что, разделяя геометрию, вы получаете больше пакетов рендеринга, но вы также можете получить меньшее перекрытие между геометрией и освещением.Это должно быть сделано в зависимости от вашего уровня и настроек освещения.
...