By default, Bullet assumes units to be in meters and time in seconds, so if the models are scaled correctly to that format you can use real life mass and force.
If not, I recommend to scale everything to meters (your model size), it saves alot of tweaking trouble (
Scaling the world)
For example the car should have a mass around 1200kg instead of 12000kg.
Ferrari 360
Dimensions:
Overall: length 4,477 mm (176.3 in)
Overall: width 1,922 mm (75.7 in)
Height: 1,235 mm (48.6 in)
Wheelbase: 2,600 mm (102.4 in)
Front track: 1,669 mm (65.7 in)
Rear track: 1,617 mm (63.7 in)
Weight: 1,350 kg (2,976 lb)
Curb weight: 1,450 kg (3,197 lb)
Weight distribution: 42/58% front/rear
Fuel capacity: 95 L (25 US gal; 21 imp gal)
http://en.wikipedia.org/wiki/Ferrari_360Also take a look at
stepping the worldFor TANK@WAR we use the following (Client side):
- cpp Code: Select all
stepSimulation(deltaTime * 0.001f, 7);
EDIT:
Took a quick look in your code and following catched my eye:
- cpp Code: Select all
carTirebr = smgr->addAnimatedMeshSceneNode(smgr->getMesh("media\\car\\tire.3ds"),carNode,2,vector3df(carNode->getJointNode("back_right_joint")->getPosition().X,carNode->getJointNode("back_right_joint")->getPosition().Y,carNode->getJointNode("back_right_joint")->getPosition().Z));
You can use getPosition() right away, instead of using XYZ and put it in a new vector3df
- cpp Code: Select all
carTirebr = smgr->addAnimatedMeshSceneNode(smgr->getMesh("media\\car\\tire.3ds"),carNode,2,carNode->getJointNode("back_right_joint")->getPosition());
Its not wrong but it makes your code less readable.