forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Bullet Physics wrapper (http://forum.boolean.name/showthread.php?t=14511)

pepel 19.08.2012 18:17

Ответ: Bullet Physics wrapper
 
блин. нету функций frozen для вращения и перемещения, может добавите?+)

Coks 30.08.2012 12:08

Ответ: Bullet Physics wrapper
 
Для заморозки используй следующие функции со значением factor = 0

вращение:
btBodySetAngularFactorX (rigidBody, factor)
btBodySetAngularFactorY (rigidBody, factor)
btBodySetAngularFactorZ (rigidBody, factor)

движение:
btBodySetLinearFactorX (rigidBody, factor)
btBodySetLinearFactorY (rigidBody, factor)
btBodySetLinearFactorZ (rigidBody, factor)

pepel 27.10.2012 09:17

Ответ: Bullet Physics wrapper
 
вопрос такой:
хочу сделать эластичную ( с коллизией и без) веревку. т.е. чтобы огна взаимодействовала с телами и какбы пружинила. очень рад был увидеть функцию скейлинга в движке. но поставив тест как я и думал, от скейлинга не зависит точка сочленения, т.е. ты скейлишь обьект например по оси на которой установлена точка, обьект увеличивается, а точка сочленения остается на одном месте...=(

еще думаю для веревки без коллизий может покатит мягкое тело, или ткань. ща буду теститьь

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

Coks 29.10.2012 22:36

Ответ: Bullet Physics wrapper
 
Управление точной сочленения имеется:

для первого тела:
btJointSetPositionA (int joint, float x, float y, float z, int global)
btJointSetRotationA (int joint, float pitch, float yaw, float roll, int global)
для второго:
btJointSetPositionB (int joint, float x, float y, float z, int global)
btJointSetRotationB (int joint, float pitch, float yaw, float roll, int global)

pepel 30.10.2012 21:56

Ответ: Bullet Physics wrapper
 
Цитата:

Сообщение от Coks (Сообщение 241654)
Управление точной сочленения имеется:

для первого тела:
btJointSetPositionA (int joint, float x, float y, float z, int global)
btJointSetRotationA (int joint, float pitch, float yaw, float roll, int global)
для второго:
btJointSetPositionB (int joint, float x, float y, float z, int global)
btJointSetRotationB (int joint, float pitch, float yaw, float roll, int global)

аа блин фига не усмотрел.. спасибо!!)

Coks 10.11.2012 22:48

Ответ: Bullet Physics wrapper
 
Вложений: 1
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 25 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

pepel 11.11.2012 19:25

Ответ: Bullet Physics wrapper
 
Coks а сочленения типа пружина нету?

Coks 11.11.2012 20:46

Ответ: Bullet Physics wrapper
 
Пружины нету. Как вариант для симуляции можно попробовать использовать слидер с применением мотора.

pepel 12.11.2012 03:15

Ответ: Bullet Physics wrapper
 
Вложений: 1
вот такой вопрос:

попытался изменить точку сочленения, получается какойто бред:

допустим создаю сочленение hinge- сфера+ прямоугольник
задаю параметры сочленения(точку контакта)
hin1=btJointCreateHinge( sp1,lin1,0,0,0, 0, -3,0,0, 0 , 1)
т.е. 0,0,0, - центр сферы(для сферы) и -3,0,0, тоже центр сферы(для прямоугольника)

допустим пытаюсь установить точку сочленения для сферы btJointSetPositionA hin1,0,0,0,0
получается какаято фигня, жестко тупит, хотя должно быть все тоже самое...

если установить точку сочленения для прямоугольника - btJointSetPositionB hin1,-3,0,0,0 то все нормально..

наверно это ошибка враппера какаято. Coks посмотри плз в чем дело)

прикрепил пример ехе и бб

pepel 13.11.2012 01:32

Ответ: Bullet Physics wrapper
 
Вложений: 1
блин .. еще.
решил перевести свою игруху на буллет. и столкнулся с проблемой - неправильно работает функция btContactGetNum с тримешем. капсула стоит на меше, и проверка столкновений мелькает - то 1 то 0 =( и когда двигается и когда стоит... в физиксе все четко показывает..
прикрепляю ехе и бб примера

Coks 13.11.2012 22:10

Ответ: Bullet Physics wrapper
 
Да че-то там плоховато определяет.
Использую другую проверку с ней вроде норм детектит:
int btContactCheckBodies (int rigidBodyA, int rigidBodyB, int mode) mode = 0
int btContactTest (int rigidBody, int mask)
int btContactPairTest ( int rigidBodyA, int rigidBodyB )

Сочленения потом посмотрю кода время будет.

pepel 13.11.2012 22:28

Ответ: Bullet Physics wrapper
 
Цитата:

Сообщение от Coks (Сообщение 243546)
Да че-то там плоховато определяет.
Использую другую проверку с ней вроде норм детектит:
int btContactCheckBodies (int rigidBodyA, int rigidBodyB, int mode) mode = 0
int btContactTest (int rigidBody, int mask)
int btContactPairTest ( int rigidBodyA, int rigidBodyB )

Сочленения потом посмотрю кода время будет.

дауж. только это будет проблематично, получается нужно будет вести список тел в сцене и скаждым проверять на контакты.. нужна именно функция проверки на контакты с любыми телами.. почему btContactGetNum так глючит?(

Coks 13.11.2012 23:04

Ответ: Bullet Physics wrapper
 
Вот эта функция int btContactTest (int rigidBody, int mask)
записывается данные коллизии в тело со всеми телами (правда там имеет место дублирование коллизий). Их можно получить через теже самые функции: btContactGetNum и т.д..

Кста походу btContactManifoldTest тоже нормально работает если увеличить тресхолд обработки контакта у обоих тел:
btBodySetContactProcessingThreshold(px_level, 0.1)
btBodySetContactProcessingThreshold(capsule, 0.1)

radiantstudio 27.12.2012 11:49

Ответ: Bullet Physics wrapper
 
Привет.
В физиксе есть такая возможность: После создания тела из меша, это тело можно сохранить в файл. В следующий раз нет необходимости генерировать его из меша, а просто можно загрузить готовое физ тело.
Это очень удобно например если серверная часть использует физику и запускается в консоли без 3Д графики и без блица. Так же можно будет использовать враппер с другими 3д движками.
Я такое проделал с физиксом. Портнул хидеры физикс враппера для блица в Дельфи. Все работает.
Есть ли возможность сделать такое же сохранение и последующую загрузку в булет враппере?

Coks 27.12.2012 12:12

Ответ: Bullet Physics wrapper
 
На данный момент такого функционала нет. А так в буллите имеется сохранение физики в специализированный формат. Если руки дойдут - прикручу.


Часовой пояс GMT +4, время: 22:03.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot