Почему коэффициент использования процессора SceneKit такой высокий? - PullRequest
2 голосов
/ 23 апреля 2020

Я разработал приложение с помощью SceneKit. Я тестировал его на iPhone 10, но для оптимизации переключаюсь на iPhone 6.

Я увидел несколько проблем.

Даже если я остановлю все анимации, загрузка ЦП будет равна 80%, чтобы показать состояние камеры c. Это почти так, когда анимация полностью функционирует.

FPS большую часть времени 60, но иногда 59 59, но кажется, что это 1 FPS.

Я использую тап для Взаимодействует с приложением, но iPhone 6 очень не отвечает и в основном пропускает нажатия.

При iPhone 10 анимаций большую часть времени были жидкими, я заметил редкие прерывания, скачкообразное поведение при анимации, когда я добавляю новые узлы на сцене. Для этого вместо добавления узлов я попытался скрыть и показать узлы, добавив их в «didLoad» с тем же результатом. Я не заметил проблем с обнаружением касаний.

Я изменил объекты на базовые c формы, чтобы проверить, если проблема связана с геометрией объектов, не повезло.

Почти те же результаты, это нормально ? Я имею в виду, это SceneKit для iPhone 10 и верхнего сегмента.

1 Ответ

0 голосов
/ 23 апреля 2020

Длинная история продолжена с комментариев, но я использовал таймеры для движения, чтобы рендерер как можно больше вращал колесо. Предположим, вы делаете ниже - где обновление имеет вашу логику c и прочее?

extension GameViewController: SCNSceneRendererDelegate
{
    func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval)
    {
        update(vTime: time)
    }
}
...