Book Image

Hands-On C++ Game Animation Programming

By : Gabor Szauer
Book Image

Hands-On C++ Game Animation Programming

By: Gabor Szauer

Overview of this book

Animation is one of the most important parts of any game. Modern animation systems work directly with track-driven animation and provide support for advanced techniques such as inverse kinematics (IK), blend trees, and dual quaternion skinning. This book will walk you through everything you need to get an optimized, production-ready animation system up and running, and contains all the code required to build the animation system. You’ll start by learning the basic principles, and then delve into the core topics of animation programming by building a curve-based skinned animation system. You’ll implement different skinning techniques and explore advanced animation topics such as IK, animation blending, dual quaternion skinning, and crowd rendering. The animation system you will build following this book can be easily integrated into your next game development project. The book is intended to be read from start to finish, although each chapter is self-contained and can be read independently as well. By the end of this book, you’ll have implemented a modern animation system and got to grips with optimization concepts and advanced animation techniques.
Table of Contents (17 chapters)

Exploring cgltf

In the last section, we explored what it would take to convert a glTF accessor into a linear array of floating-point numbers. The code omitted some of the more complicated tasks, such as normalizing the data or dealing with different storage types.

The sample code provided also assumed that the data would have already been parsed out of the JSON (or binary) format. Writing a JSON parser is out of the scope of this book but dealing with glTF files is not.

To help manage some of the complexity of loading glTF files, as well as to avoid having to write a JSON parser from scratch, the next section will teach you how to use cgltf to load JSON files. Cgltf is a single header glTF loading library; you can find it on GitHub at https://github.com/jkuhlmann/cgltf. In the next section, we will start to integrate cgltf into our project.

Integrating cgltf

To integrate cgltf into a project, download the header file from GitHub at https://github.com/jkuhlmann/cgltf/blob...