Dampire
У меня 4.5, и переползать пока не хочется, так-что, с экспериментами помочь не могу.
Так, что профайлер-то пишет?
KaZuaL
То, что в редакторе 1.2к fps. Профайлить проект как-то можно?

Dampire
> Но дерганая физика никуда не делась. Что делать, господа? Батла дает около 30
> на средних.
Всё довольно просто. Картинка обновляется на мониторе с одной частотой (Update), а изменение положения камеры на сцене происходит с другой частотой (FixedUpdate), потому что камера висит на Rigidbody. В результате, если частота Update > FixedUpdate, то периодически проскакивают два (несколько) кадров подряд с одинаковым положением камеры, а если Update < FixedUpdate, то между некоторыми кадрами камера окажется сдвинута сразу на два (несколько) шагов сразу. Отсюда дёрганье.
В твоём случае надо у rigidbody, к которому прикреплена камера, включить интерполяцию или экстраполяцию. Камера дёргаться перестанет. Если NPC тоже дёргается (я этого не замечаю), у его rigidbody сделать то же самое.
Dampire
> Моя сценка на домашнем ноуте выдает 220-230 кадров в 1080p. Что один хрен мало,
> но уже куда ближе к реальности. Но дерганая физика никуда не делась. Что
> делать, господа? Батла дает около 30 на средних.
> Голая сцена со стоковыми шейдерами и камерой, воткнутой в пол дает 205, лол.
> Отмечу. Видяха GT640M. На сцене нет ВООБЩЕ ничего кроме плейна и камеры,
> которую утнули в пол под углом 45 градусов. И нет, KaZuaL. vsync выключен. В
> эдиторе фпс 1.2k+. Сбилдите ради интереса у себя и запустите. Чота мне кажется
> у вас та же байда будет.
Differed shading?
Бунтарчик
Разумеется.
Dampire
> Разумеется.
А чего ты тогда хотел? :)
Differed shading по умолчанию уже нехило грузит видеокарту, даже если ничего не рисовать. У тебя там небось и эффекты какие-нибудь включены.
Народ, не занимайтесь ерундой. Профилировать проект, который выдаёт четырёхзначный fps, бессмысленно. На другом конце города птичка чихнёт ― на всех графиках сразу будет заметный всплеск.
alexzzzz
> В твоём случае надо у rigidbody, к которому прикреплена камера, включить
> интерполяцию или экстраполяцию
Спасибо, помогло. Хоть один человек знает что делать.
Бунтарчик
Ничего я не включал. Я наоборот кучу всего выключил. В моем поделии тоже deferred, фпс выше. Банально потому, что он менее наворочен технологически.
Вообще это как-то странно выбирать движок с DS и жаловаться на тормоза.
В общем раз хотя бы часть вопросов разрешилась (меня больше всего бесила дерготня), то эксперимент продолжается. Попробую выжать ту же картинку, что и у себя в движке.
Вообще, рекомендуется/принято:
1. В FixedUpdate прикладывать только силы к rigidbody.
2. Все ручные перемещения объектов (не под действием физических сил) производить в Update, включая кинематические rigidbody, включая способ rigidbody.MovePosition().
3. Камеру перемещать в LateUpdate, когда все остальные объекты уже переместились. Критично для случаев, когда камера каким-либо образом привязана скриптом к какому-либо движущемуся объекту (например, следит за ним). Тогда перемещение камеры может отставать от объекта на кадр (Update у камеры случился раньше, чем Update у этого объекта).
4. У тех rigidbody, которые после всего этого всё ещё выглядят чуть дёрганными, включать интерполяцию или экстраполяцию.
Насчёт fps, который показывается в редакторе - он не меряется, он приблизительно прикидывается. Вероятно, это попытка исключить накладные расходы самого редактора. Формула расчёта примерно такая: 1 / Max(Max(CpuTime, RenderTime), 1e-5)
У меня в редакторе расчётный fps примерно 2000, а реальная скорость обновления окошка чуть больше 100 fps. В билде реальный fps чуть больше 1000, но какой он мог бы быть на самом деле неизвестно, потому что Unity всегда принудительно его ограничивает в районе 1000. Иначе Time.deltaTime может оказаться таким маленьким, что расчёты с его использованием будут давать большие погрешности.
Зацените картинку:
Ееее! Я теперь круче Кармака!
Моя самостоятельно-сделанная-в-одиночку-мега-игра-на-юнити! :)))
Ducat
Отскоки от стенок добавь ;)
Чё-то я даже позавидовал :)
Тема в архиве.