Since in demos gravity is set to ~9.81 i presume that units are SI
The engine itself is unitless. You can pick whatever meaning you want for the units so long as it's consistent and numerically reasonable. "Numerically reasonable" means that the absolute values aren't made too large or small; single precision floating point numbers cannot represent every value. In addition, staying within 0.5 to 10 units across or so for most individual objects helps the collision detection system. It can handle much larger sizes, but that range is very safe.
There are some more advanced configuration options that can be adjusted if a different scale interpretation is required, but it's good to avoid that if possible.
What i did is setting fron wheels brakes and grip to high values and setting rear wheel brakes to 0 and friction to 0, I also put ground friction to small amount. Since nothing happened i ended up with setting friction of every object to 0. And nothing moved. Can You tell me what I am missing, I tought that car will behave like a car set on ice, instead it behaved like it wouldn't have even one HP

If the combined grip friction is zero, the vehicle cannot accelerate- in that way, it is like a car on ice.
For example, in the following, sliding friction, rolling friction, brake friction, and grip friction are zero:
Code: Select all
Vehicle.AddWheel(new Wheel(
new RaycastWheelShape(.375f, wheelGraphicRotation),
new WheelSuspension(2000, 100f, Vector3.Down, .8f, new Vector3(-1.1f, 0, 1.8f)),
new WheelDrivingMotor(0, 30000, 10000),
new WheelBrake(0, 0, 0),
new WheelSlidingFriction(0, 0)));
Vehicle.AddWheel(new Wheel(
new RaycastWheelShape(.375f, wheelGraphicRotation),
new WheelSuspension(2000, 100f, Vector3.Down, .8f, new Vector3(-1.1f, 0, -1.8f)),
new WheelDrivingMotor(0, 30000, 10000),
new WheelBrake(0, 0, 0),
new WheelSlidingFriction(0, 0)));
Vehicle.AddWheel(new Wheel(
new RaycastWheelShape(.375f, wheelGraphicRotation),
new WheelSuspension(2000, 100f, Vector3.Down, .8f, new Vector3(1.1f, 0, 1.8f)),
new WheelDrivingMotor(0, 30000, 10000),
new WheelBrake(0, 0, 0),
new WheelSlidingFriction(0, 0)));
Vehicle.AddWheel(new Wheel(
new RaycastWheelShape(.375f, wheelGraphicRotation),
new WheelSuspension(2000, 100f, Vector3.Down, .8f, new Vector3(1.1f, 0, -1.8f)),
new WheelDrivingMotor(0, 30000, 10000),
new WheelBrake(0, 0, 0),
new WheelSlidingFriction(0, 0)));
In v1.1, if the environment has low friction, the above will make the vehicle slide uncontrollably around. (In the development version, friction blending is multiplicative by default, so setting the wheel friction to zero makes the combined friction zero.)
If the WheelDrivingMotor grip friction is then changed to a nonzero value, the car will be able to direct itself by applying a drive force.
how come wheels didn't move on 0 friction? And why I can't make rear wheels spin faster that front when I start movement?
The wheels of a Vehicle are not physical. The ray cast vehicle approximates wheels with rays. The rotation of a wheel is based upon the relative velocity at the ray cast intersection point on the support. If the car isn't moving, the 'wheel' isn't rotating. Since the wheel is just a graphical element, you could add in tractionless spin outs externally.
Can You give me a hint about importing models that will work fine with bepu?
There's no single correct content path. The end result should ideally have individual triangles in the numerically reasonable zone described previously. Any export/import process which accomplishes this is acceptable.