The definition of a mesh is dependent on the game (or engine) that implements it. It's beyond the scope of this book to implement a comprehensive mesh class. Instead, in this section, you will declare a naive version of a mesh that stores some data on the CPU and the GPU and provides a way to sync the two together.
The Mesh class declaration
What is the most basic implementation of a mesh? Each vertex has a position, a normal, and some texture coordinates. To skin the mesh, each vertex also has four bones that might influence it and weights to determine how much each bone influences the vertex by. Meshes usually use an index array, but this is optional.
In this section, you will implement both CPU and GPU skinning. To skin a mesh on the CPU, you need to keep an additional copy of the pose and normal data, as well as a matrix palette to use for skinning.
Create a new file,
Mesh.h, to declare the
Mesh class in. Follow these steps to declare the new...