This is a book that is hard to pinpoint who it was written for. On very few pages, it tries to cover a huge variety of topics, from modelling and animation to rendering. Unfortunately, the results are usually not very successful, since sometimes important areas of research are not even mentioned and others, the solution provided by the author is not a great one at all. The book can be best seen as a tutorial covering the algorithms used in R. Stuart Fergusson's now freely available OpenFX (with source code). Albeit the title implies that this is a book aimed at experienced people in computer graphics, don't be deceived. This is a book for newbies. However as such it is hard to recommend it. At best, this book can help students understand the complications involved in going from a theoretical algorithm to an actual implementations of it. And the code provided should be seen by students as an example of how NOT to code for CG graphics: a lot of it in spaghetti C. The text is clear and the first pages covering most of the basic concepts of 3D graphics is a good introduction. However, even then, some important concepts of CG are hardly ever mentioned, like NURBs curves and surfaces. Albeit each chapter covers a specific area, the book is disorganized jumping from modeling to rendering and back again for no reason. Pages are devoted to the most trivial storage of polygons in memory, and the author then provides a very inefficient way to store polygon connectivity for subdivision (never mentioning that edge structures such as half-edge or quad-edges have been known for quiet some time and are way more practical than his ad-hoc methods). Following are chapters devoted to scanline rendering and raytracing. The information provided is also simple and mostly just a description of the techniques implemented in his 3D package. Then jumping to animation... keyframing is described briefly and mostly in terms of the very bad TCB spline approach. Hierarchies and bones come next, with a decent introduction to IK systems. Physical simulations are discussed later, but so badly that it is not worth the few pages there are. The Polygonal modelling chapter is okay, given the basics of several common algorithms that anyone dealing with polys will need all the time. The coverage of image processing is laughable. And then comes a chapter devoted to procedural textures. This is probably the best thing in the book, assuming you already read "Texturing and Modelling: A procedural approach". Besides covering the obvious textures based around Perlin noise, the author goes beyond that by giving an introduction to the more powerful crystal-based textures, which afaik have not been well documented in the past and are usually not described in most courses, since they are impossible to do just with Prman's SL. The explanation and theory is not amazing but it does give an introduction that can help understand his code and is indeed more practical than the famous "T&M" book, which these days seems pretty outdated. As is the case in the rest of the text, the author gives you a little peek at his code and structures he has used, which students that have a solid coding experience may find helpful. Unfortunately, these snippets of structs are really pretty bad and I would not want to encourage anyone to follow those constructions, beyond a learning guide. The final chapters are devoted to Win32 specifics, which are likely already out of date: some DirectX code and a Windows player. Overall this will be a book useful for only for someone that has just started computer graphics or maybe a shader writer interested in procedurals. The explanations are certainly more accessible than other more popular texts. At the same time, it would be unfortunate if this book was their only reference.
Useful, practical algorithms and code
Rating: 5/5
In Practical Algorithms For 3D Computer Graphics, computer animation expert Stuart Ferguson has compiled a superbly presented compendium of tools for creating a complete suite of programs for 3D computer animation, modeling, and image synthesis. After a comprehensive introduction to basic principles and key concepts regarding 3D computer graphics, Practical Algorithms For 3D Computer Graphics goes on to provide useful, practical algorithms (and code) for plugin and game engine developers. Featured are real-time 3D graphics for Windows including sample programs in OpenGI and Direct 3D, as well as an accompanying CD-ROM with sample programs. Practical Algorithms For 3D Computer Graphics is a superb introduction to, and continuingly useful reference work for, anyone involved with the development of computer games, movie animation, and graphics programming.
On very few pages, it tries to cover a huge variety of topics, from modelling and animation to rendering.
Unfortunately, the results are usually not very successful, since sometimes important areas of research are not even mentioned and others, the solution provided by the author is not a great one at all.
The book can be best seen as a tutorial covering the algorithms used in R. Stuart Fergusson's now freely available OpenFX (with source code).
Albeit the title implies that this is a book aimed at experienced people in computer graphics, don't be deceived. This is a book for newbies. However as such it is hard to recommend it. At best, this book can help students understand the complications involved in going from a theoretical algorithm to an actual implementations of it. And the code provided should be seen by students as an example of how NOT to code for CG graphics: a lot of it in spaghetti C.
The text is clear and the first pages covering most of the basic concepts of 3D graphics is a good introduction. However, even then, some important concepts of CG are hardly ever mentioned, like NURBs curves and surfaces.
Albeit each chapter covers a specific area, the book is disorganized jumping from modeling to rendering and back again for no reason.
Pages are devoted to the most trivial storage of polygons in memory, and the author then provides a very inefficient way to store polygon connectivity for subdivision (never mentioning that edge structures such as half-edge or quad-edges have been known for quiet some time and are way more practical than his ad-hoc methods).
Following are chapters devoted to scanline rendering and raytracing. The information provided is also simple and mostly just a description of the techniques implemented in his 3D package.
Then jumping to animation... keyframing is described briefly and mostly in terms of the very bad TCB spline approach. Hierarchies and bones come next, with a decent introduction to IK systems. Physical simulations are discussed later, but so badly that it is not worth the few pages there are.
The Polygonal modelling chapter is okay, given the basics of several common algorithms that anyone dealing with polys will need all the time.
The coverage of image processing is laughable.
And then comes a chapter devoted to procedural textures. This is probably the best thing in the book, assuming you already read "Texturing and Modelling: A procedural approach". Besides covering the obvious textures based around Perlin noise, the author goes beyond that by giving an introduction to the more powerful crystal-based textures, which afaik have not been well documented in the past and are usually not described in most courses, since they are impossible to do just with Prman's SL. The explanation and theory is not amazing but it does give an introduction that can help understand his code and is indeed more practical than the famous "T&M" book, which these days seems pretty outdated. As is the case in the rest of the text, the author gives you a little peek at his code and structures he has used, which students that have a solid coding experience may find helpful. Unfortunately, these snippets of structs are really pretty bad and I would not want to encourage anyone to follow those constructions, beyond a learning guide.
The final chapters are devoted to Win32 specifics, which are likely already out of date: some DirectX code and a Windows player.
Overall this will be a book useful for only for someone that has just started computer graphics or maybe a shader writer interested in procedurals. The explanations are certainly more accessible than other more popular texts.
At the same time, it would be unfortunate if this book was their only reference.