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

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

СообщениеДобавлено: 04 сен 2012, 20:32
gnoblin
Привет!

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


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

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

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

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

спс!

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

СообщениеДобавлено: 04 сен 2012, 23:27
Tutanhomon
ну как-то тест у тебя достаточно субъективный мне кажется.
в твоем конкретном случае мешколлайдер оптимальнее, количество все решило.
если бы ты сравнивал два бокса - один мешем, другой примитивом, тогда тест был бы более чистым.

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

СообщениеДобавлено: 05 сен 2012, 08:35
Syberex
Если заглянуть в тестовый уровень 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

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

СообщениеДобавлено: 05 сен 2012, 15:20
Neodrop
Ну конечно, один коллайдер лучше чем 100500
А если нужно эти пачки брёвен раскидывать, то можно подменять коллайдеры в момент удара (или перед ударом, если его можно предсказать).