Making a 3D game
Not much changes when we shift our focus from physics in 2D to physics in 3D. We now need to worry about another dimension. As mentioned in the previous recipes, we still need to maintain the environment so that it follows Newtonian rules and solves constraints. There are a lot of things that can go wrong while rotating the body in 3D space. In this recipe, we will look at a very basic implementation of 3D physics using the Bullet Engine SDK.
Getting ready
For this recipe, you will need a Windows machine and an installed version of Visual Studio.
How to do it…
In this recipe, we will see how easy it is to write a physics world in 3D.
For broad-phase collision take a look at the following snippet:
void b3DynamicBvhBroadphase::getAabb(int objectId,b3Vector3& aabbMin, b3Vector3& aabbMax ) const { const b3DbvtProxy* proxy=&m_proxies[objectId]; aabbMin = proxy->m_aabbMin; aabbMax = proxy->m_aabbMax; }
For narrow-phase collision, see the following...