Вопрос о производительности

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Вопрос о производительности

Сообщение AngryGrey 22 фев 2013, 02:45

Уважаемые, какой из двух подходов в Unity будет работать с большей производительностью:
1. Если точка перемещения вычисляется непосредственно перед самим перемещением?
2. Координата перемещения берется из некоторого, заранее рассчитанного массива?

Вот еще вопрос, что быстрее:
1. Перемещать по фиксированным координатам один и тот же объект?
2. Заранее создать болванку объекта в каждой точке пространства, отключить рендер и при необходимости в одном месте рендер включать + назначать материал и текстуру, а в другом отключать?
AngryGrey
UNIт
 
Сообщения: 102
Зарегистрирован: 04 фев 2013, 02:58

Re: Вопрос о производительности

Сообщение Woolf 22 фев 2013, 04:18

Естественно 2 и 1

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

Re: Вопрос о производительности

Сообщение AngryGrey 22 фев 2013, 05:22

Ну, у меня массив небольшой (10 х 20), так что можно и заранее рассчитать. :) Дело в том, что расчете "на ходу" иногда вместо скажем 1 появляется 0,999999.... (даже при использовании Mathf.RoundToInt), а это в свою очередь не дает возможности использовать некоторые условные ограничения перемещений. Например если следующей точной должен быть 0, но ниже 0 перемещаться нельзя... Простая арифметика 0,99999-1= -0,00001, что меньше 0, таким образом пытаясь предрассчитать перемещение крайней точкой становится не 0, а 0,999999, при условии "текущая точка !< 0"
AngryGrey
UNIт
 
Сообщения: 102
Зарегистрирован: 04 фев 2013, 02:58

Re: Вопрос о производительности

Сообщение gturk 22 фев 2013, 12:33

Особенности арифметики с плавающей точкой. От это проблемы вы не уйдете даже при использовании массива
вместо сравнения a==b используйте Mathf.abs(a-b)<epsilon, где epsilon требуемая точность
Аватара пользователя
gturk
UNITрон
 
Сообщения: 239
Зарегистрирован: 01 апр 2012, 18:49


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Tolking и гости: 34