#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
, так как сцена не всегда нуждается в обновлении, но установка этого свойства все равно не исправила это. Я действительно реализую метод делегирования.