I’ve been working as a programmer for 30 years and in computer graphics for 20 years. During that time I’ve learned a lot about all the fancy ways that graphics hardware draws triangles. However, working on the technical rendering side of things kept me away from the artistic side of things and creates a certain distance between myself as a software engineer and an artist/content creator as a user of my software. I wanted to read a book that would teach me about polygonal modeling from a content creator’s perspective. “Polygonal Modeling: Basic and Advanced Techniques” by Mario Russo is a great book that filled in the gap for me.
There are two things that I really liked about this book: its visual and its application agnostic. Rather than spend a lot of text talking about modeling, the book is profusely illustrated with screen shots that show the modeling steps explicitly, making it easier to follow along in your modeler. Instead of picking a specific modeler and tying the explanation to how those modeling operations work in that specific application, Russo explains generic operations that are available in most modelers and then keeps all the step-by-step discussion in terms of those generic operations. This means a little mental translation for the steps, but it keeps you focused on the modeling goals rather than being distracted by details that aren’t relevant to the modeler you’re using. This was just what I wanted because I didn’t want to learn specifics about a particular package, I wanted to learn basic modeling techniques.
Approaching this as a graphics programmer was very interesting for me. When I talk to artists they mention things like “topology”, “edge loops” and “keeping everything quads”. Mathematically I know what “topology” means, but I had a feeling they weren’t using it in the same sense. I could guess what they meant by “edge loops” having looked at models in wireframe.
When they said “keep everything quads”, as in quadrilaterals, I got a little confused. Didn’t the graphics card do everything in triangles anyway? My technical rendering background told me that quads were problematic because they can lead to weird rendering artifacts. Quads can have four vertices that are not coplanar. When quads are rendered with OpenGL, the driver and the hardware decide how to convert the quad into two triangles for rendering. With a good driver/hardware combination, the decision is consistent no matter what the orientation of the quad, but with a bad driver/hardware combination the triangulation can change dynamically and result in popping artifacts as the triangulated quad moves around in the scene.
This book cleared up all those little mysteries for me so that when I talk to artists, we are now talking the same language. I did get it right when I guessed about edge loops and I also guessed right when I thought that we were using topology in a different sense. When it came to “keeping everything quads”, this book taught me why that advice is important to a modeler. The answer has to do with Catmull-Clark subdivision and the way it handles quadrilaterals vs. the way it handles triangles.
Beyond clearing up that basic mismatch in vocabulary, this book taught me a lot more about polygonal modeling from a practical and artistic point of view than I ever learned from studying the underlying mathematics. Once the preliminaries are out of the way, this book covers modeling techniques in a series of projects, one per chapter. The projects cover box modeling techniques and edge extrusion techniques applied to a male figure, a female figure, a game figure and a cartoon figure. This book only covers the polygonal modeling aspects of creating a figure, it does not cover materials and texturing, shaders or rigging. Special chapters are devoted to displacement modeling in ZBrush (the one chapter that is application specific) and creating low polygon count models for games.
I recommend this book as a good starting point for polygonal modeling. It is suitable for both artists and programmers.