точность системы координат

Общие вопросы о Unity3D

точность системы координат

Сообщение Kann 24 мар 2010, 22:46

не кто случаем не в курсе как увеличить точность координат ? как оказалось вектора в юнити используют float и на больших расстояниях само сабой точности 8 бит не хватает... единственный выход как я вижу подправить вектора в самом движке дизасмом.... может кто лучше способ предложит ?
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: точность системы координат

Сообщение DbIMok 24 мар 2010, 23:51

Тип значения Single представляет 32-разрядное число с одинарной точностью в диапазоне от -3,402823e38 до +3,402823e38

видимо речь о 7 десятичных знаках. нужно думать, как в твоей конкретной ситуации обойти эту проблему.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: точность системы координат

Сообщение gnoblin 24 мар 2010, 23:53

Нельзя бить пространство на сектора как-нить? :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: точность системы координат

Сообщение Kann 24 мар 2010, 23:56

угу, правильно 7 знаков после запятой, ентого мало..... бить на сектора, да не хотелось бы.....
вот видео, планета находится по центру координат, и даже при таком сравнительно небольшом удалении можно заметить что моделька кораблика начинает чуток прыгать....
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: точность системы координат

Сообщение Caligo 25 мар 2010, 00:00

Kann писал(а):угу, правильно 7 знаков после запятой, ентого мало..... бить на сектора, да не хотелось бы.....
вот видео, планета находится по центру координат, и даже при таком сравнительно небольшом удалении можно заметить что моделька кораблика начинает чуток прыгать....



Это некая модификация Инкома Т65?)


По сабжу:
Для движения ты юзаешь transform.Translate, если да то у меня такая же ерунда, (спишу на перегрузки))
Последний раз редактировалось Caligo 25 мар 2010, 12:23, всего редактировалось 1 раз.
Caligo
UNец
 
Сообщения: 3
Зарегистрирован: 21 мар 2010, 06:24

Re: точность системы координат

Сообщение Paul Siberdt 25 мар 2010, 10:12

Дело в накоплении погрешности при вычислениях с большим удалением от мирового нуля. Как решение - вычисления с векторами производить в мировом нуле, а уже после приращать им большое смещение в нужную позицию.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: точность системы координат

Сообщение Kann 25 мар 2010, 11:40

не въехал.....
я для примера смещаю обычную сферу через transform.position.x само сабой position.x является Vector3, прибавляю ему смещение например так
Код: Выделить всё
var position:double;
FixedUpdate(){
position = position+ 10;
transform.position.x = position;
print(transform.position.x.ToString("F10"));
}

ну и через некоторое удаление от нулевых координат наблюдаем прыжки сферы
что здесь нужно считать в мировом нуле ?
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: точность системы координат

Сообщение Paul Siberdt 25 мар 2010, 11:58

Попробуйте так:
Код: Выделить всё
var position : Vector3;
var delta: Vector3 = Vector3(10,0,0);
FixedUpdate(){
position = transform.position;
transform.position = delta + position ;
}


а, возможно, будет хватать и:

Код: Выделить всё
var delta: Vector3 = Vector3(10,0,0);
FixedUpdate(){
transform.position += delta;
}


А, возможно, и не заработает :D
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: точность системы координат

Сообщение Battle Angel Alita 25 мар 2010, 12:05

А не проще ли уменьшить масштаб? Сделать радиус земли не 6000 киллометров, а 6?
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: точность системы координат

Сообщение Paul Siberdt 25 мар 2010, 12:08

Имелось в виду, желательно избегать рассчетов внутри длиннющего вектора.
Запоминайте позицию и дальше работайте со сравнительно короткими дирекшенами. Под конец, приращайте позицию.

На малом же масштабе очень сильно вылезут артефакты неточности физики. Но Ангел дело говорит. Можно разделить пространство на две части - планета будет считаться своей камерой в своем метровом масштабе, корабль - своей в своем. Останется верно скомпенсировать взаименое перемещение камер.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: точность системы координат

Сообщение Kann 25 мар 2010, 12:11

один хрен....
тут по моему проблема все же в float и в том что тупо при больших значениях не хватает точности а именно знаков после запятой, так как объект смещенный например по Х начинает скакать только при смещении по Х координате, по Y и Z если они имеют небольшие значения не чего подобного не наблюдается,

с масштабом так же, проблема опять же в том что не хватает float чем меньше объект тем более точное позиционирование ему требуется
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: точность системы координат

Сообщение Paul Siberdt 25 мар 2010, 12:16

Я как-то ковырялся с несколькими камерами именно в условных полетах в звездной системе. Небесные тела у меня считались отдельно от корабля. Разница конечных размеров была колоссальная, но все работало в разумных масштабах.
Последний раз редактировалось Paul Siberdt 25 мар 2010, 12:28, всего редактировалось 1 раз.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: точность системы координат

Сообщение Kann 25 мар 2010, 12:27

идею с камерами понел.... однако интересный финт ушами :D
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: точность системы координат

Сообщение Paul Siberdt 25 мар 2010, 12:28

Вот, гляньте... чертовски топорно написано и неюзерфрэндли реализовано, но тута главное идея.
Управление тупым осевым WASD, увеличьте скорость кубика в 1000 раз и сможете перемещаться между шариками. С единичной же скоростью относительно шариков, кубик практически неподвижен.

эээ.. надеюсь, все влезло в пак :D
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: точность системы координат

Сообщение Kann 25 мар 2010, 12:42

спасибо, посмотрел, такое я уже изобретал чуть раньше, но там у меня выползли какие то проблемы... по моему с компенсацией перемещения камер... но наверно придется вернутся к этому варианту....
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

След.

Вернуться в Общие вопросы

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

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