C++ Game Animation Programming: Learn modern animation techniques from theory to implementation using C++, OpenGL, and Vulkan 2nd Edition

C++ Game Animation Programming: Learn modern animation techniques from theory to implementation using C++, OpenGL, and Vulkan 2nd Edition book cover

C++ Game Animation Programming: Learn modern animation techniques from theory to implementation using C++, OpenGL, and Vulkan 2nd Edition

Author(s): Michael Dunsky (Author), Gabor Szauer (Author)

  • Publisher: Packt Publishing
  • Publication Date: 1 Dec. 2023
  • Edition: 2nd
  • Language: English
  • Print length: 480 pages
  • ISBN-10: 1803246529
  • ISBN-13: 9781803246529

Book Description

Build your own OpenGL or Vulkan application in C++ and learn the latest techniques in character animation for modern games with this detailed, color guide

Key Features

  • Learn how to create a game skeleton with keyboard and mouse controls along with modern graphics
  • Gain insights into model loading, character animations, inverse kinematics, and debugging techniques
  • Master the art of creating animated characters and controlling their various aspects
  • Purchase of the print or Kindle book includes a free PDF eBook

Book Description

If you‘re fascinated by the complexities of animating video game characters and are curious about the transformation of model files into 3D avatars and NPCs that can explore virtual worlds, then this book is for you. In this new edition, you’ll find expanded content on high-performance graphics and modern animation techniques, along with improved workflows and enhanced guidance on using OpenGL and Vulkan. You’ll learn everything you need to know about game animation, from a simple graphical window to a large crowd of smoothly animated characters.

First, you’ll learn how to use modern high-performance graphics, dig into the details of how virtual characters are stored, and load the models and animations into a minimalistic game-like application. Then, you’ll get an overview of the components of an animation system, how to play the animations and combine them, and how to blend from one animation into another. You’ll also get an introduction to topics that will make your programming life easier, such as debugging your code or stripping down the graphical output.

By the end of this book, you’ll have gained deep insights into all the parts of game animation programming and how they work together, revealing the magic that brings life to the virtual worlds on your screen.

What you will learn

  • Create simple OpenGL and Vulkan applications and work with shaders
  • Explore the glTF file format, including its design and data structures
  • Design an animation system with poses, clips, and skinned meshes
  • Find out how vectors, matrices, quaternions, and splines are used in game development
  • Discover and implement ways to seamlessly blend character animations
  • Implement inverse kinematics for your characters using CCD and FABRIK solvers
  • Understand how to render large, animated crowds efficiently
  • Identify and resolve performance issues

Who this book is for

This book is for curious C++ developers, game programmers, game designers, and character animators, either pursuing this as a hobby or profession, who have always wanted to look behind the curtain and see how character animation in games works. The book assumes basic C++ and math knowledge, and you should be able to read code and math formulas to get the most out of this book.

Table of Contents

  1. Creating the Game Window
  2. Building an OpenGL 4 Renderer
  3. Building a Vulkan Renderer
  4. Working with Shaders
  5. Adding Dear ImGui to show valuable information
  6. Understanding Vector and Matrix
  7. A Primer on Quaternions and Splines
  8. Loading Models in the glTF format
  9. The Model Skeleton and Skin
  10. About Poses, Frames, and Clips
  11. Blending between Animations
  12. Cleaning up the User Interface
  13. Implementing Inverse Kinematics
  14. Creating Instanced Crowds
  15. Measuring Performance and Optimizing the Code

Editorial Reviews

Review

“C++ Game Animation Programming by Michael Dunsky offers a comprehensive exploration of real-time 3D animation programming techniques. The chapters cover essential topics like vectors, matrices, quaternions, and splines, providing valuable basis for 3D animation. Beyond the fundamentals, the book dives deep into the inner workings of a rendering engine, addressing modern animation techniques, such as GPU-based skinning, animations blending, inverse kinematics, and even crowd animation. Michael’s hands-on approach, supported by numerous code snippets, makes the content accessible and easy to digest. Highly recommended for anyone eager to delve into the inner workings of modern 3D rendering engines.”

Sergey Kosarevsky, Staff Software Engineer at Meta, Author of 3D Graphics Rendering Cookbook

“A great opportunity to learn about the ins and outs of 3D programming is Michael Dunsky’s book, C++ Game Animation Programming. Michael shows how stuff works under the hood, exploring animation, inverse kinematics, and even crowd animation. The UI side also gets its fair share of attention to round up everything. I like Michael’s hands-on approach, featuring numerous code snippets that are waiting to be explored and played around with. The book is packed with knowledge so I wouldn’t be surprised if readers got enlightened after reading it. At the very least, you’ll get a good grasp of the concepts introduced in this book.

Highly recommended for anyone who wants to get their hands dirty in the engine room of modern 3D programming. To put it simply: Go buy this book if 3D is your thing.”

Winfried Schwan, Senior Consultant and GIS Architect

“C++ Game Animation Programming is a great resource for game developers who want to dive into the world of 3D character animation. The book provides a solid introduction to developing OpenGL/Vulkan rendering applications, followed by a background in math/shaders, and then dives into advanced model animation with glTF, Skeleton, and inverse kinematics methods. I found the chapter Creating Instanced Crows very helpful and practical. It explains with code examples how to optimize glTF models using GPU instancing, which greatly reduces data transfer and improves overall runtime performance.”

Amir Meteraso, Senior 3D Graphics Software Engineer, Sightful

About the Author

Michael Dunsky is an educated electronics technician, game developer, and console porting programmer with more than 20 years of programming experience. He started at the age of 14 with BASIC, adding on his way Assembly language, C, C++, Java, Python, VHDL, OpenGL, GLSL, and Vulkan to his portfolio. During his career, he also gained extensive knowledge in virtual machines, server operation, infrastructure automation, and other DevOps topics. Michael holds a Master of Science degree in Computer Science from the FernUniversität in Hagen, focused on computer graphics, parallel programming and software systems.

Gabor Szauer has been making games since 2010. He graduated from Full Sail University in 2010 with a bachelor’s degree in game development. Gabor maintains an active Twitter presence, and maintains a programming-oriented game development blog. Gabor’s previously published books are Game Physics Programming Cookbook and Lua Quick Start Guide, both published by Packt.

View on Amazon

电子书代发PDF格式价格30我要求助
未经允许不得转载:Wow! eBook » C++ Game Animation Programming: Learn modern animation techniques from theory to implementation using C++, OpenGL, and Vulkan 2nd Edition