Страница 1 из 1

Проблема с позицией

СообщениеДобавлено: 23 май 2017, 00:38
Raxnyd
Перерыл всё в поисках информации, но так ничего и не нашёл. Проблема заключается в том, что если переместить игрока очень далеко скажем на координаты 50 000, 0, 50 000 и пойти в любом направлении, то тени и камера начинают трястись. Короче творится самая настоящая (полная Ж). Версия юньки 5.6

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 01:23
seaman
Вы "перерыли"? Да неужели?
Этот вопрос возникает с завидной периодичностью у всех новичком.
Читаем про ограничение точности типа float. Например тут: viewtopic.php?f=5&t=1775
И не постим в "Глюки" лажу...

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 10:41
Raxnyd
seaman, почитал я про ограничение, но так и не понял как решить мою проблему?

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 11:39
seaman
Читали? И не поняли? Но там же предложено аж несколько решений.
1. Бить на сектора.
2. Изменить масштаб.
3. Рендерить крупные предметы (планеты) отдельной камерой.
4. Расчеты производить вблизи нуля координат, затем все смещать на нужную позицию (имхо - это не поможет, но я не проверял).
Есть еще пара способов.
(Развитие первого способа выше) При удалении игрока на определенной расстояние от нуля координат смещать все что вблизи него в ноль.
Двигать мир вокруг игрока, так чтобы игрок все время оставался в нуле координат.

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 12:42
waruiyume
А как изменение масштаба может решить проблему?

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 13:30
Raxnyd
Делать мир меньше это не вариант. Я хочу сделать игру с большим миром. Если я правильно понял, то лучшее решение разбить на сектора, а вот как это сделать не нашёл информации.

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 16:16
Cr0c
waruiyume писал(а):А как изменение масштаба может решить проблему?

Координата 50000 в масштабе 1:10 превратится в 5000

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 16:29
waruiyume
И чё дальше? Тогда то, что раньше двигалось на 0,1 юнит за кадр, должно будет двигаться на 0,01, а точность всё та же 7 цифр- поменяли шило на мыло.

Re: Проблема с позицией

СообщениеДобавлено: 23 май 2017, 18:14
Shock
Вместо того, чтобы двигать игрока - двигайте мир под ним. Тогда бить на сектора можна разными сценами. Скажем, у вас карта 10000 * 10000. Бъем ее на 100 секторов-сцен 1000*1000 и в каждый момент грузим только 9 секторов - тот, на котором игрок и 8 окружающих. Каждый из секторов изначально считается в координате (0:0) и мы их просто смещаем относительно игрока, когда тот двигается. Так игрок всегда будет в 0:0, точность самая большая, в размере сцены вообще не ограничены и одновременно будет загружено только 9% уровня.

Re: Проблема с позицией

СообщениеДобавлено: 25 май 2017, 11:42
seaman
А как изменение масштаба может решить проблему?

Думаю никак, но я просто привел все то что там советовали, а топикастер почему то вообще ничего не увидел.

Вообще получается два способа:
1. Бить мир на сектора, подгружать/выгружать по мере необходимости. При определенном удалении от центра (входишь в сектор далеко расположенный от начала координат) смещать все в начало координат.
2. Двигать мир вокруг игрока. Нормально можно, только если объектов не очень много. Можно уменьшить число объектов, удаляя те, что от игрока далеко и создавая близкие.
С дополнением при необходимости:
Крупные предметы (планеты) рендерить отдельной камерой, которая двигается значительно медленнее игрока.

Re: Проблема с позицией

СообщениеДобавлено: 27 май 2017, 00:18
Shock
Нормально можно, только если объектов не очень много

Думаете, будет тормозить? Это ведь изменение позиции всего одного родительского элемента.