glTF – loading meshes
Now that you have a functional Mesh
class, you can, in theory, skin the mesh on the CPU. However, there is one problem—you can't actually load a mesh from a glTF file yet. Let's address this next.
Start by creating a new helper function, MeshFromAttributes
. This is only a helper function, so there is no need to expose it to the header file. glTF stores a mesh as a collection of primitives and each primitive is a collection of attributes. These attributes contain the same information as our attribute class, such as positions, normals, weights, and so on.
The MeshFromAttribute
helper function takes a mesh and a cgltf_attribute
function, along with some additional data required for parsing. The attribute contains one of our mesh components, such as the position, normal, UV coordinate, weights, or influences. This attribute provides the appropriate mesh data.
All values are read in as floating-point numbers, but the joint influences...