As a 3D game programmer, sooner or later the time comes when you get bored with spinning cubes and flying space ships in space. You want fully articulated 3D characters and animation. So you start looking on Internet for information thereof, and sooner or later you realize that although there are a lot of sites with information—and lots of demos—it’s all rather useless in reality. There are too many holes in the file format explanations, and in the end you would probably be better off reverse-engineering the files rather than wade through hacker document after hacker document.
This problem is one that I have personally been dealing with for a long time. When I first wanted to write a Quake file loader, I thought that it would be easy; there must be a billion sites on the Internet with clear and concise explanations, right? However, there is none! As far as I can tell there is literally only one single document on the Internet with the. MD2 file format, and it’s not complete, but more of a FAQ. Moreover, it’s just a file format; it doesn’t really explain all the details. This is just one example. There are many. The bottom line is that whether it’s a game format like Quake’s. MD2 or .MD3 or 3D Studio Max’s file format, there is simply no single place to find information. This issue was the motivation for this book.
My goal for this book was to give you a single reference for the most popular file formats, but at the same time teach you how to use them. That is, it’s useless to show how to read each key frame from a. MD2 file if you don’t know how to interpolate them. Thus, the author, Evan Pipho, has not only covered every important file format (within reason), but he has also covered foundational material such as mathematics, skeletal animation, and more. If you open this book not knowing a single thing about 3D character animation, by the end of the book you will know how to work with all the popular file formats, how to write readers, and how to actually animate the meshes in realtime in your applications. Of course, this book assumes that
you are familiar with 3D graphics, DirectX (or OpenGL) and you can create a rudimentary 3D engine either leveraging an API or manually with software that at minimum can render polygons and perform clipping, projection, and rasterization.
Nevertheless, I can’t tell you how excited I am about this book.
It’s the first of its kind—there is not a single other book on the market that illustrates all these file formats from a game programmer’s point of view.
In conclusion, this is yet another book that no 3D game programmer can do without. As I write this letter the book isn’t even printed yet, but I am printing out a hard copy just to have it on my desk to refer to!
Series Editor for Premier Press’s Game Development Series