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

JPhysics aka Jitter

СообщениеДобавлено: 21 июн 2013, 16:41
pod4444
Вообщем передо мной встала вполне интересная задача: managed физический движок.
В начале своего пути я копал в сторону Bullet, но порты под .Net оказались кривыми и совершенно непроизводительные: никаких расчетов на GPU,относительно настоящего Bullet; отсутствие мультитрединга, если уж на CPU; да и вообще написаны индусами.
Вариант с враппером был неплох, но это только x86 и забудем о мультиплатформенности. Да, можно компилить буллет под каждую платформу, но это гемор и все преимущества пропадут.

Под мою горячую руку попала интересная библиотечка с названием Jitter, перечислим ее плюсы:

• Every platform which supports .NET/Mono

• Also supports the XBox360 and the WindowsPhone (там некоторые оптимизации в плане мультитрединга)

• Written in pure C# with a clean and object orientated API

• Optimized for low to no garbage collections and maximum speed

• Supported Shapes: TriangleMesh, Terrain, Compound, MinkowskiSum, Box, Sphere, Cylinder, Cone, Capsule, ConvexHull

• Take advantage of multi-core CPUs by using the internal multithreading of the engine

А так же рейкасты, мягкие(упругие) тела, ткани. Если у PhysX CapsuleCast, SphereCast, то в Jitter Вы можете делать каст любым мешем.
Из плюсов лаги физики никак не отражаются на Вашей игре, только если Вы не загрузите процессор под завязку(это трудно сделать).

По производительности можете посмотреть в демке:
http://incubegames.ru/publish/Jitter/WebBuild.html

(на правую кнопку управлять камерой + WASD полет)

Пока продолжаю копать.

Re: Jitter managed физика

СообщениеДобавлено: 21 июн 2013, 18:27
gnoblin
(3A4OT)

Re: Jitter managed физика

СообщениеДобавлено: 21 июн 2013, 19:48
Diab10
Офигеть. В демке через физикс со всеми кубами - 3 ФПС, а с этой физикой - 24 ФПС
(3A4OT)

А что значит managed физика?)

Re: Jitter managed физика

СообщениеДобавлено: 21 июн 2013, 20:06
Neodrop
Вот ещё демка.
Jitter не плох, но проект давно заморожен.

Кстати, ничего особо фантастического в производительности. По моим тестам, на 4х ядерном CPU можно получить прирост в 2-3 раза, против PhysX. Ну, может в 4 раза максимум. Но это при загрузке всех камней под завязку. Правда, есть бонус - ничего не стоит повысить точность вычислений на порядок, заменив все float на double. Для игр не нужно, но для каких-нить симуляций очень даже интересно.

Re: Jitter managed физика

СообщениеДобавлено: 21 июн 2013, 20:22
pod4444
Diab10 писал(а):Офигеть. В демке через физикс со всеми кубами - 3 ФПС, а с этой физикой - 24 ФПС
(3A4OT)

А что значит managed физика?)

управляемая библиотека значит, для .Net. ее можно сбилдить на любой платформе Unity
просадка по фпс кстати не из-за физики, а из-за обновление трансформа в количестве 4к штук

Re: Jitter managed физика

СообщениеДобавлено: 24 июн 2013, 10:05
46165957
Джиттер на всех 9 группах показывает 40-50 фпс, но при этом сам кубики дергаются на 5-7 фпс... странненько.

Re: Jitter managed физика

СообщениеДобавлено: 24 июн 2013, 10:57
pod4444
46165957 писал(а):Джиттер на всех 9 группах показывает 40-50 фпс, но при этом сам кубики дергаются на 5-7 фпс... странненько.

да, есть такое, я кое что намудрил с просчетами физики, сейчас идет обсчет с 15-20 фпс и видно дерганья

Re: JPhysics

СообщениеДобавлено: 30 июн 2013, 15:45
pod4444
News
Вообщем я потратил много времени копая эту библиотеку. Проанализировал, что можно выжать еще для скорости и прочее. Нашел медленные участки, точнее причины потери производительности при росте количества объекта и устранил эти проблемы, осталось оформить в такой же приятное объектной стилистике, как вся остальная библиотека.

Теперь я буду развивать эту библиотеку в плане плотной интеграции с Unity.
На моем компе десятки тысяч объектов спокойно держаться без лагов, что конечно радует и это точно выигрыш не в х2, а гораздо больше.
Процессор пока что нагружал только до ~40% (4 физ ядра по 2 логических на каждого)
В игре конечно нет столько активных объектов, но мне хочется выжать максимум возможного, кому-нибудь да понадобится.

Re: JPhysics aka Jitter

СообщениеДобавлено: 21 июл 2013, 13:40
trololoid
Вы выложите вашу версию? ;;)

Re: JPhysics aka Jitter

СообщениеДобавлено: 21 июл 2013, 15:49
Neodrop
У меня не хватило времени и желания закопаться так глубоко. С любопытством наблюдаю за вашей работой. Удачи.
(3A4OT)

Re: JPhysics aka Jitter

СообщениеДобавлено: 24 июл 2013, 12:52
MorfeusKiev
На мой взгляд PhysX никогда не был экономный. Библиотека которая разрабатывалась изначально вообще на отдельную железку, а потом переработанная под GPU, и плевать Nvidia хотели на оптимизацию по CPU (личное мнение). Хотя это просто возгласы в воздух, я считаю что использовать библиотеку PhysX можно либо по лени (готовые методы), либо когда не интересует высочайшая производительность. В дополнение написать что сами юнитеки прикрутили к Unity3d скорее как костыль, да еще и старой версии, чем как полноценная физика. Только и читаешь на этом форуме как сотня, другая, людей пишут как сделать то не используя физики.

Огромнейший респект =) Много объектов не бывает. Прикрутите эту физику!!! Сделайте потом аддон на разрушение внутриигровых предметов и запросто продайте на Ассет Сторе. Шикарно будет.