Загрузка сетки Bullet Physics из файла - PullRequest
1 голос
/ 10 февраля 2011

Я пытаюсь настроить городскую среду с помощью Ogre и Bullet, но мне сложно понять, как загрузить сетки в Bullet.Google показывает ссылки на импортер Collada, но, похоже, он был удален из SVN.

Лучше всего было бы импортировать меш Ogre, но у меня есть файлы .dae и .blend, и я мог быиспользуйте их, если это возможно.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

У меня было такое же требование при использовании Bullet с Irrlicht.Я не нашел решения, кроме написания кода загрузки физики самостоятельно.Я использовал соглашение об именах объектов в 3d-редакторе, и при загрузке модели я перебрал субобъекты и сконструировал подходящий btRigidBody для каждого помеченного объекта.Аналогично с соединениями:

            if (parent && parent->body) {
                // add constraint
                ...
                if (prefix == "ball") {
                    // ball/socket joint                    
                    constraint = new btGeneric6DofConstraint(
                            *parent->body, *body, frameInA, frameInB, true);
                }
                else if (...

Функция createSphereBody () вычисляет радиус по вершинам сетки.

Надеюсь, это поможет.

1 голос
/ 27 ноября 2013

Если вы используете 3DS Max для моделирования, вы можете использовать плагин OgreMax для экспорта сцены из OGRE и пулевой плагин для 3DS Max для экспорта физических объектов.Вы можете загрузить эти два набора по отдельности как узлы OGRE и объекты-маркеры, а также комбинировать физические / графические модели на основе их имен.

Вот как я это сделал в своей собственной игре:

Источник: https://github.com/SabinT/Wings-Of-Chaos

Демо: http://www.youtube.com/watch?v=eryWgIuqC7I

Я перестал работать над этимдавным-давно, но надеюсь, что этот код окажется полезным для тех, кто работает над Ogre / Bullet.Возможно, кто-нибудь найдет из этого полезный код.

Вам будет интересен файл CsGameLevel.cpp.Метод Load () сначала загружает сцену Ogre, затем загружает твердые тела пули с помощью метода LoadStaticGeometry ().

...