I've been in the process of moving a project over from CrystalSpace/OPCODE to Ogre/Bullet, and am having some issues with the character controller, particularly with the latest SVN snapshot. The newest problem that arose is a constant bouncing of the controller (and periodic sliding), which is visible in the character controller demo (it's probably more noticeable on the system I'm on right now, since it's slower).
The other issues:
-there doesn't seem to be a way to switch on and off the controller's collision detection during runtime. I'm attempting to do this by switching the collision filter to "AllFilter", but objects near the controller seem to be cached and still respond to collisions.
-my app generates raw 3D geometry and sends basic triangulated geometry to Bullet to use as colliders (using btBvhTriangleMeshShape through a heavily modified OgreBullet), and with version 2.77 some ground surfaces cause the camera to bounce (similar to the bouncing in the current trunk, but only on certain surfaces) - I don't know how to reproduce this in the demo.
-application slowdowns that drop the framerate below 60fps cause character movement to slow down (instead of properly adjusting the movement to lock to delta values); this is noticeable in the demos if you can get the framerate low enough. I'm using setWalkDirection() for movement.
-eventhorizon
Issues with btKinematicCharacterController
-
eventhorizon5
- Posts: 1
- Joined: Wed Apr 06, 2011 4:31 pm
-
Erwin Coumans
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
Re: Issues with btKinematicCharacterController
The btKinematicCharacterController is just a starting point and similar to the btRaycastVehicle, it is best to take the source code and start customizing it until it fits your need. The implementation has issues indeed, and there is currently no-one working on improving it. Hopefully someone shows up with some improvements, or we get time to improve it.
You could try adjusting the world->getDispatchInfo().m_allowedCcdPenetration (set it to zero or small value) to reduce/avoid jitter.
Also, if you make improvements, please share them in this topic:
http://code.google.com/p/bullet/issues/detail?id=198
Thanks!
Erwin
You could try adjusting the world->getDispatchInfo().m_allowedCcdPenetration (set it to zero or small value) to reduce/avoid jitter.
Also, if you make improvements, please share them in this topic:
http://code.google.com/p/bullet/issues/detail?id=198
Thanks!
Erwin