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

Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 14:52
Shi
Здравствуйте. Имеются 7 зон, 2000х2000х513. Они засаживаются деревьями с Capsule collider с помощью Mass Place Trees, со значением 10000. Грубо говоря, на каждую зону по 10000 деревьев. Как только их становится больше 60к+, при нажатии кнопки play программа вылетает, хотя какие бы то ни было лаги\фризы и т.д. отсутствуют. Подскажите пожалуйста, как обойти подобную проблему?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 14:59
Zaicheg
Да, вроде есть ограничение на 64 тысячи коллайдеров в сцене. Как решение -- может быть убирать коллайдеры на деревьях вне зоны видимости?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 15:04
Shi
Zaicheg писал(а):Да, вроде есть ограничение на 64 тысячи коллайдеров в сцене. Как решение -- может быть убирать коллайдеры на деревьях вне зоны видимости?

К сожалению, в случае если приложение серверное, ему необходимо рассчитывать столкновения всех коллайдеров в сцене. (о разделении серверной обработки на несколько сцен-приложений при одном "клиенте"-сцене в данный момент речи не идет).
К тому же включение\отключение галочки "Generate Tree Collider" в реалтайме не дает эффекта.
Есть ли какой либо способ обойти\отключить это ограничение?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 15:59
Neodrop
В приложении не может быть более 65550 активных физ. объектов.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 16:53
Shi
Neodrop писал(а):В приложении не может быть более 65550 активных физ. объектов.

Спасибо за информацию. Можно ли как нибудь изменить подобный лимит?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 16:56
Paul Siberdt
Можно статической геометрии назначить один единственный коллайдер.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 17:06
Shi
Paul Siberdt писал(а):Можно статической геометрии назначить один единственный коллайдер.

Правильно ли я вас понял, что можно назначить группе деревьев принудительно (в обход Террайна) коллайдер? Но он будет слишком глобален, и не будет допускать проход "между деревьями".
Если вы имели ввиду что либо другое, подскажите пожалуйста, как это сделать в данном случае (применимо к Террейну\деревьям)?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 17:16
Paul Siberdt
Любой хитроумный статический меш можно представить коллайдером, при этом не нужно включать режим рассчета выпуклой формы (флаг Convex). 65 тысяч коллайдеров, если их собрать в единую геометрию, начнут конфликтовать с максимальным размером треугольников в модели :)
Думаю, надо иначе подойти к структуре уровня. Уверен, вариантов решения достаточно.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 17:23
Shi
Paul Siberdt писал(а):Любой хитроумный статический меш можно представить коллайдером, при этом не нужно включать режим рассчета выпуклой формы (флаг Convex). 65 тысяч коллайдеров, если их собрать в единую геометрию, начнут конфликтовать с максимальным размером треугольников в модели :)
Думаю, надо иначе подойти к структуре уровня. Уверен, вариантов решения достаточно.

Большое спасибо за идею, попробую поработать с мешем.
Структура итак гм.. упрощена. Но вы правы, всегда можно еще сильнее упростить, просто хотелось обойтись без этого.
Что странно: сейчас в тестовой сцене с одним террейном поставил на террейн 500 000 деревьев с коллайдерами, и краша не было. Занимательно.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 17:46
Shi
Проблема решена, баг это или нет - не мне решать:
При использовании Capsule коллайдера при количестве физ объектов больше 65 000 программа вылетает.
Поэтому имеет смысл использовать Box коллайдер, который поддерживает более 500 000 объектов без вылетов и проблем (а так же теоретически быстрее).

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 22:44
Neodrop
Вы это проверяли? :-?
Я именно с боксами вылетал на 65550 объектов. ;;)

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 11 мар 2011, 22:49
Shi
Neodrop писал(а):Вы это проверяли? :-?
Я именно с боксами вылетал на 65550 объектов. ;;)

Проверил. Могу выложить сцену.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 12 мар 2011, 14:44
Neodrop
Мне без надобности, спасибо.
Вероятно над снятием этого лимита таки ведётся работа. Это хорошо.

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 14 мар 2011, 13:35
Syberex
А почему для дереьев пытались испльзовать капсульные коллайдеры?
Вам нужен только ствол или все дерево в целом?

Re: Краш при большом количестве физ. коллайдеров

СообщениеДобавлено: 14 мар 2011, 18:08
Shi
Syberex писал(а):А почему для дереьев пытались испльзовать капсульные коллайдеры?
Вам нужен только ствол или все дерево в целом?

Только ствол, так как при увеличении числа деревьев, число коллайдеров растет слишком стремительно. И с 100 000 деревьев иметь гмм.... много-много коллайдеров это не лучший для меня выход. (если, конечно, имелся ввиду "составной коллайдер". Меш-коллайдеры не использую по причине слишком большой нагрузки даже по сравнению со сложными примитивами. Но, кстати, в этом вопросе я могу ошибаться.)
Капсульные коллайдеры я изначально выбрал по той причине, что необходимо более-менее правдоподобное взаимодействие "ствола дерева" с окружением,(до этого в Newton Physics Engine ставил цилиндры, но тут их не нашел, к тому же это, как мне думается не решило бы проблему - на расчет цилиндра,сферы и т.д. сложных форм уходит значительно больше ресурсов),т.е. при ударе "чего то" в визуально округлое дерево при капсуле оно отклонится адекватно, по касательной и т.п., а при кубе врежется как в стену, без отклонения.