Описывание сцены примитивами vs mesh colliders

Физика в Unity

Описывание сцены примитивами vs mesh colliders

Сообщение gnoblin 04 сен 2012, 20:32

Привет!

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


Я провел тестик:
есть кучка бревен, в одном случае она описывается упрощенным мешколайдером (1 кучка = 1 мешколайдер), во втором - 25ю боксами. И по этой сцене я бегаю от первого лица контроллером. Объекты статические.

В первом случае при 500 кучек на физику тратится 5.5-6.5 ms на моем компе,
во втором (помимо того что юнити сильно педалит при копировании геймобъектов потому что их в 25 раз больше теперь в иерархии) при 180 кучках на физику тратится в 2.5 раза больше ms.

=> То есть, получается, описывание объектов примитивными колайдерами не катит? )

Кто-то что знает/думает на эту тему?

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

Re: Описывание сцены примитивами vs mesh colliders

Сообщение Tutanhomon 04 сен 2012, 23:27

ну как-то тест у тебя достаточно субъективный мне кажется.
в твоем конкретном случае мешколлайдер оптимальнее, количество все решило.
если бы ты сравнивал два бокса - один мешем, другой примитивом, тогда тест был бы более чистым.
Аватара пользователя
Tutanhomon
UNIт
 
Сообщения: 112
Зарегистрирован: 04 дек 2008, 19:55
Откуда: Минск
  • Сайт

Re: Описывание сцены примитивами vs mesh colliders

Сообщение Syberex 05 сен 2012, 08:35

Если заглянуть в тестовый уровень Shadowgun, то там тоже увидим меш коллайдер здоровый на весь уровень ...
Вероятно они тоже проводили тесты :)

Наверное можно вывести какую то зависимость
1*MeshColliderTime <= n*BoxColliderTime
и тогда можно заранее выбирать правильный подход ...

Из вашего примера:
500*5,5 = 180*25*x*2,5 // где х - время на обработку 1 бокс-коллайдера
x = (500*5.5) / (180*25*2.5)
x = 0.29
Найдем n из первого равенства:
n = ~19
Получается, что меш-коллайдер имеет смысл применять, когда объект описывается уже более, чем 19 боксами ... еще надо учитывать число граней меш-коллайдера, для разных форм объектов они будут разные ...

А может это все бред :D
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Описывание сцены примитивами vs mesh colliders

Сообщение Neodrop 05 сен 2012, 15:20

Ну конечно, один коллайдер лучше чем 100500
А если нужно эти пачки брёвен раскидывать, то можно подменять коллайдеры в момент удара (или перед ударом, если его можно предсказать).
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в PhysX

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

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