Как обновить SceneKit на частоте 120 Гц на iPhone 13 Pro?

#ios #iphone #scenekit

Вопрос:

У меня есть приложение с SCNView внутренней частью.

Без каких-либо изменений, когда я впервые запустил его на iPhone 13 Pro, он работал с частотой 60 Гц в соответствии с частотой кадров, показанной при установке showsStatistics = true .

Исследуя, я обнаружил как preferredFramesPerSecond свойство SCNView , так и CADisableMinimumFrameDurationOnPhone логическое свойство Info.plist.

Однако установка предпочтительного значения FPS на 120 и значение CADisableMinimumFrameDurationOnPhone на YES , похоже, не влияют на сообщаемую частоту кадров (хотя, например, при установке на 30 она обновляется при 30). Я также попытался просто установить предпочтительную частоту кадров и просто задать свойство Info.plist, но ни одно из них не имеет никакого эффекта. В официальной документации ничего не говорится о SceneKit.

Чего мне не хватает для достижения более высокой частоты кадров?

Комментарии:

1. Вы установили CADisableMinimumFrameDurationOnPhone <true/> это в своем Info.plist файле? (Ваш вопрос немного сбивает с толку, поскольку вы упоминаете YES , что его установка недопустима для файла plist или swift).

2. Да, это происходит <true/> при непосредственном просмотре XML.

3. Ах, я понимаю; вы установили его в Xcode. И у вас есть sceneView.isPlaying = true , и вы внедрили этот SCNSceneRendererDelegate.renderer(_:updateAtTime:) метод?

4. Обычно у меня этого нет isPlaying = true , так как сцена не всегда нуждается в обновлении, но установка этого свойства все равно не исправила это. Я действительно реализую метод делегирования.