Bullet

Second phase of the work sending the user…

Second phase of the work: sending the user inputs from client to server and process the interactions. There is still a small issue with the relative position on the screen of the client, to fix tomorrow, and implementing visual feedback in the client.

Always the same surprise when one application controls…

Always the same surprise when one application controls another! In this case, the application on the left is running on my workstation, receiving and visualising the position and rotations sent by the laptop on the right. The laptop is running the physical worlds. Tomorrow I’ll remount the mouse control in the client (the one on

Manipulation of gravity through a plumb line A…

Manipulation of gravity through a plumb line. A plumb line is a cross-cultural representation of the gravity vector ref. In this case, by manipulate it, you modify the world gravity. Even if it is the exact opposite of the common sense, i think the analogy is clear enough to avoid any explanation.

same video on peertube a bit more than…

(a bit more than a technical demo this time) After finishing the work on shadows, it was time to play with the different materials possibilities. To explain a bit what you are seeing: at the top left, the 3 textures containing the shadow maps; transparent walls (wireframes) are not take into account in the shadow

Visualisation of contact events in the engine Wireframe…

Visualisation of contact events in the engine. Wireframe objects are the actual physical objects. The small plain spheres are placed at the position of the contact (or the average of all points), and reacts to impulse. Impulse is one of the components of the forces applied on the objects while bullet resolves the world. Legend:

It has been an hardcore saturday evening i’ve…

It has been an hardcore saturday evening: i’ve struggled with Bullet for 3 hours, and, finally, i’m able to get all bullet events in my code, without having to “manually” asking to each object “are you touching somebody?”. It’s a bit weird, but to achieve this you have to plug a static method on the

Precision tests with bullet

Small demo of the current state of the refactoring on Tuning Game 3D. The code has been completely torn apart, some features have been moved to the engine, the rest is currently heavily refactored. One of the things that works much better than before is the localisation of the pointer when the user is grabbing

1K spheres 7 static boxes It has been…

1K spheres, 7 static boxes. It has been a hard day: the communication between Bullet and Ogre has been completely reviewed: update of the physical world is now linked to the Ogre rendering cycle through Ogre::RenderQueueListener, meaning a more consistent frame cycle; PObjects (any renderable object in the scene) are smart enough to update the

Popcorn example in engine

A new “popcorn” example showing how to enable physics on objects is available in the engine. It is not finished yet, and will help fine-tuning the relation between ogre and bullet (engine-level).

Not very sexy but very useful there are…

Not very sexy, but very useful: there are 2 new methods in the bullet wrapper that enables retrieval of an ordered list of the collisions along a ray. The job was super easy, thanks to the bullet lib consistency and documentation. The object to use is AllHitsRayResultCallback. Once processed, it returns a list of bodies

Triggering sounds when there is a collision between…

Triggering sounds when there is a collision between 2 objects is now feasible with the code. A message is sent to pd with the name of the objet and a “contact” flag (left of the image). It has been a hell of a fight to get extract “useable” collisions information out the physical engine. There

Documentation about how to prepare meshes structure materials…

Documentation about how to prepare meshes (structure, materials, etc.) usable by bullet in polymorph engine. >> https://bitbucket.org/polymorphteam/pe.2.0/wiki/blender-bullet-primitives The documentation of the project is not yet ready, as you might see if you surf a bit in the wiki…