Дрожат меши и спрайты на дальних координатах

Ошибки и баги Unity3D

Дрожат меши и спрайты на дальних координатах

Сообщение IvanCPDev 27 сен 2019, 20:17

Доброго времени суток.
Я новичок. Делаю мультиплеер с открытым миром.

Столкнулся с довольно неприятной проблемой. Карта довольно большая, выходит за 10000 координаты. Только вот все меши после 10000 координаты начинают как-то дрожать, дергаться. Тоже самое с спрайтами. Объясните почему так и как решить данную проблему? Буду очень благодарен. ;)
Аватара пользователя
IvanCPDev
UNец
 
Сообщения: 4
Зарегистрирован: 27 сен 2019, 19:23
Откуда: Херсон

Re: Дрожат меши и спрайты на дальних координатах

Сообщение waruiyume 27 сен 2019, 20:27

Проблема сусолилась несчётное количество раз. Фундаментально её решить нельзя, но есть несколько костылей, которые по большей части сводятся к передвиганию мира, когда игрок далеко от центра системы координат.

https://yandex.ru/search/?text=site%3Au ... 0333172817
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Дрожат меши и спрайты на дальних координатах

Сообщение IvanCPDev 27 сен 2019, 20:39

Только как это реализовать под мультиплеер? Ведь это все надо синхронизировать.
Аватара пользователя
IvanCPDev
UNец
 
Сообщения: 4
Зарегистрирован: 27 сен 2019, 19:23
Откуда: Херсон

Re: Дрожат меши и спрайты на дальних координатах

Сообщение Jarico 27 сен 2019, 21:01

IvanCPDev писал(а):Только как это реализовать под мультиплеер? Ведь это все надо синхронизировать.


Смотря какая игра и для скольки игроков мультиплеер
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Дрожат меши и спрайты на дальних координатах

Сообщение waruiyume 27 сен 2019, 21:11

Пусть сетевая абстракция живёт в несмещённом пространстве и работает с double, а клиентская просто прибавляет или вычитает смещёние при переходе в сетевое пространство и обратно.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Дрожат меши и спрайты на дальних координатах

Сообщение IvanCPDev 28 сен 2019, 11:08

А что если весь мир, включая игроков засунуть в пустой game object, брать координаты игрока и изменять координаты пустышки на такие же но только с отрицательным значением. Таким образом глобальные координаты игрока остаются на нуле и это не мешает игровому процессу. А вот синхронизацию для перемещения "пустышки" можно не добавлять.
Аватара пользователя
IvanCPDev
UNец
 
Сообщения: 4
Зарегистрирован: 27 сен 2019, 19:23
Откуда: Херсон

Re: Дрожат меши и спрайты на дальних координатах

Сообщение Woolf 28 сен 2019, 15:53

IvanCPDev писал(а):А что если весь мир, включая игроков засунуть в пустой game object, брать координаты игрока и изменять координаты пустышки на такие же но только с отрицательным значением. Таким образом глобальные координаты игрока остаются на нуле и это не мешает игровому процессу. А вот синхронизацию для перемещения "пустышки" можно не добавлять.


Теперь дрожать будет уже весь мир ) Не обманете вы математику..
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Дрожат меши и спрайты на дальних координатах

Сообщение IvanCPDev 28 сен 2019, 17:31

Woolf писал(а):Теперь дрожать будет уже весь мир ) Не обманете вы математику..


Ну, не думаю что от слишком отдаленных объектов будет заметно хоть какое-то дрожание. А отдельные объекты максимум будут в километре от зоны видимости игрока, на таких расстояниях дрожаний быть не должно.
Аватара пользователя
IvanCPDev
UNец
 
Сообщения: 4
Зарегистрирован: 27 сен 2019, 19:23
Откуда: Херсон

Re: Дрожат меши и спрайты на дальних координатах

Сообщение Woolf 28 сен 2019, 20:43

IvanCPDev писал(а):
Woolf писал(а):Теперь дрожать будет уже весь мир ) Не обманете вы математику..


Ну, не думаю что от слишком отдаленных объектов будет заметно хоть какое-то дрожание. А отдельные объекты максимум будут в километре от зоны видимости игрока, на таких расстояниях дрожаний быть не должно.


Начало падения точности float разное на разных платформах, но, приблизительно, начинается где-то на 10000+
Вот на основании это и надо делать игровые локации, оптимизируя геймплей так, чтобы не было столь удаленных объектов от камеры.
Ставить камеру в центр и ограничить дальность её видимости - имхо, наилучшее решение. Так все делают.
Если речь о космосе, то планеты, большие звезды рисовать прямо на скайбоксе или же разместить их недалеко от комеры и прорисовывать без буфера глубины, чтобы они всегда были на заднем фоне. Также, в космосе, хорошо помогает уменьшение масштабности, к примеру, ваш корабль километровой длины, а по факту - один юнит, соответственно и скорость его будет не 1000м/с а 1юнит/с..
Но если вам надо симулятор реального космического пространства, тогда обсчитывать все движения в double, и приводить каждый кадр в пространство камеры, с видимыми угловыми размерам и так далее. Хотя, для межзвездных пространств, и double не хватит ))
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1