This is a well written book covering the Cg shading language. It contains a lot of useful information about Cg and graphics programming techniques in general. Unfortunately, I felt like it didn't cover as much of Cg as I would have liked, making the book less useful than it could have been.
The book starts with a history of shaders and programmable hardware, an overview of Cg, and a summary of related technologies, such as HLSL and CgFX. It then spends some time covering the syntax and semantics of Cg, and then moves on to the core material of the book, in which the authors explain key graphics pipeline functionality and how it can be implemented using Cg. The book concludes with several appendices covering the Cg runtime, CgFX file format, and Cg standard library, as well as other reference material.
The topics covered include transformations, animation, lighting, environment mapping, bump mapping, fog, shadow mapping, toon shading, and projective texturing. The explanations are all clear and understandable, in particular the chapter on bump mapping, which is one of the easiest introductions to the topic I've encountered. Features of Cg are introduced as needed while explaining these topics, rather than introducing them all at once, which is very conducive to learning. In addition, the authors include warnings and workarounds for techniques which may not be supported on older hardware, as well as advice on attaining optimal performance.
I have two primary complaints about the book. The first is that they never really discuss the application code using the shaders, which made it a bit difficult to understand how they fit in at times. The second is that the book isn't nearly as complete a reference as you might expect. For a great deal of the functions and functionality in Cg, they simply refer you to the Cg reference manual. Although this electronic document is freely available, it's fairly brief at times, so a more detailed explanation in the book would have been appreciated. Similarly, I would have liked to have seen more detailed explanation of CgFX, as well as examples of using it.
Overall, though, this book does a very good job of introducing the reader to Cg and to shaders in general. If you're new to these topics, I'd recommend it. Even if you're a DirectX programmer intending to use HLSL, you'll find this book useful since the languages are identical (though the usage is of course different). If you're already an experienced graphics programmer with some knowledge of shaders, then you'll likely be able to find everything you need in the freely available documentation instead.