2012-10-15 3 views
1

Иногда некоторые объекты получают значения NAN в мире, имитируемом с помощью Bullet Physics. (очень редко) Каков правильный способ его обработки? Есть ли встроенные функции Bullet Physics для обнаружения таких объектов, чтобы избежать вирусного эффекта NAN. Почему некоторые объекты получают NAN. Я не применяю силы или импульсы NAN. Я думаю, что это может быть связано с созданием двух объектов в тех же коордах.Физика пули и значения NAN

+1

Что станет NaN? Положение, скорость, ...? –

+0

@RoyDictus position – Max

+1

Не уверен, что это все еще проблема для вас, но недавно был открыт билет: http://code.google.com/p/bullet/issues/detail?id=%20665 –

ответ

1

две вещи:

1) зажимая скорость, как это должно предотвратить любое тело, чтобы ускорить мгновенно

btScalar speed = velocity.length(); 
if(speed > speedLimit) { 
    velocity *= speedLimit/speed; 
    body->setLinearVelocity(velocity); 
} 

2) проверить на NaN значения самостоятельно, и использовать безопасное значение по умолчанию или предыдущее значение

if (isnan(someValue)) 
{ 
    someValue = fallbackValue; 
} 
+0

insnan() находится в math.h – rraallvv

Смежные вопросы