Direct3D SHADERX: Vertex & Pixel Shader Tips and Techniques (Wordware Game Developer's Library) Paperback – June 25, 1996
Inspire a love of reading with Amazon Book Box for Kids
Discover delightful children's books with Amazon Book Box, a subscription that delivers new books every 1, 2, or 3 months — new Amazon Book Box Prime customers receive 15% off your first box. Sign up now
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Customers who viewed this item also viewed
Customers who bought this item also bought
About the Author
- Item Weight : 4.7 ounces
- ISBN-10 : 1556220413
- ISBN-13 : 978-1556220418
- Paperback : 500 pages
- Dimensions : 7.48 x 1.47 x 9.28 inches
- Publisher : Wordware Publishing, Inc. (June 25, 1996)
- Language: : English
- Best Sellers Rank: #268,128 in Books (See Top 100 in Books)
- Customer Reviews:
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
It definately has some useful information in there, but it's tough to extract through the poor organization and formatting.
To my disappointment, the book has some serious flaws:
1. Nearly all the pixel shader stuff is written for ps1.4 which is only supported by the Radeon8500. Being a GF3 owner, this is very disturbing ....
2. The engine design chapters turned out to be 3 very short articles that contain general discussion without getting into engine implementation details.
3. The chapter about developing with Shader Studio is totally useless. This information should be in the program's manual and not in the book...
4. Some of the articles are written in a "Here's the shader code... go figure it out" style...
5. A major portion of the material in this book could be easily found online by going to NVIDIA's or ATI's site and going through the papers and presentations, or reading the stuff in the DirectX SDK, or just using google in the "worst" case where non of the above sources was helpful.
6. Lack of common code standard. Some articles use NVIDIA's assembler, some use MS's assembler and some use the DirectX's effects framework.
To conclude, this book was a major disappointment to me ...
Although I have done some work with shaders before, I found Wolfgang's introduction at the beginning of the book very useful.
One of my favourite chapters is Dean Calver's chapter "Vertex Decompression in a Shader". Using this technique is a must to save valuable memory bandwidth. I think this chapter alone is worth the money to buy the book. I can't name all the excellent articles here, but I want to highlight a few:
Per-Pixel lighting for a skinned mesh is not trivial. You can find a great explanation of this in "Character Animation with Direct3D Vertex Shader" by David Gosselin. Additionally this article shows you how to combine keyframe animation with a skeleton based animation, which might be useful to combine an animated face (keyframe animation) with a skeleton based animation of the body (this seems to be used in a few upcoming games).
Kim Pallister explains optimization techniques, that helps you to optimize your shaders so that they run on older hardware. This techiques are also useful on the newest hardware.
Jason L. Mitchells chapter on Image processing gives you a lot of ground to think about post-processing shaders, which are useful to get a look like a 50's TV set or to get a heat signature. He shows numerous ways to influence the overall look and feel of your game by using filter, egde detection and mathematical morphollogy.
One of the very handy tips is written by Steffen Bendel. He shows how to smooth fonts in a very simple and efficient way on pixel shader hardware. This is very useful for displaying fonts. You can implement this feature in minutes in your engine. Steffen's chapter "Smooth Lighting with ps.1.4" shows one of the most interesting ways to improve lighting quality in a game engine.
Kenneth Hurley's chapter "Photorealistic Faces with Vertex and Pixel Shaders" shows step-by-step, how to prepare art in a way, that the result looks photorealistic and it explains each line in the source code needed to produce photo realistic faces with the help of vertex and pixel shaders in real-time. The article comes with the source of the necessary tools (diffuse cube map generator, a texture mapping cylindrical wrapper (MAX Plugin)) and an example program. Kenneth shows how to achieve this effect in 2 passes on multitexturing capable hardware by using sphere maps.
Getting into the field of "Non-Photorealistic Rendering with Vertex and Pixel Shaders" is not trivial. Blockbusters like MotoGP, Wreckless, Cel Damage, Jet Set Radio Future show how non-photorealistic rendering can influence the atmosphere in a game. Jason L. Mitchell and Drew Card gives you a detailed explanation on how to do these kind of techniques in real-time.
A collection of very useful "Texture Perturbation Effects" is shown by John Isidoro, Guennadi Riguer, and Chris Brennan from ATI. They show how to produce clouds, fire, and glass in a very efficient way in the pixel shader.
The chapters on "Rendering Ocean Water", "Rippling Reflective and Refractive Water", "Chrystal/Candy Shader" and "Bubble Shader" show some of the neat tricks used in the ATI nature demo. The example programs didn't make it into the book, but you can get them with source now from the ATI web-site.
Another one of my favourite articles is the one written by Philippe Beaudoin and Juan Guardado "A Non-Integer Power Function on the Pixel Shader". This article deals with the lack of color precision on first generation shader hardware. It shows a way how to overcome this problem by using a cool algorithm.
Ádám Moravánszky shows how to use bump maps together with BRDF rendering. If you ever thought about implementing this technique, you can see why Ádám is one of the shader wizards.
Using 3D textures to store data for games is a technique that is getting more and more common with newer hardware. Evan Hart shows how to use 3D textures in an efficient way in games.
Martin Kraus is a member of the Visualization and Interactive Systems Group at the University of Stuttgart in Germany. This group developed a bunch of new techniques in volume graphics. He shows some very nice examples on what you can do with 3D textures on current hardware. It is interesting to read about their advanded techniques to use 3D textures very efficiently.
It is not a trivial task to design an efficient graphics engine, that uses shaders to show breath-taking visuals. Ingo Frick the technical director of Massive Development explains in "Visualization with the Krass Engine", how they designed the Krass engine to get an efficient shader implementation. This engine is used in several upcoming european game titles (Aquanox Revelation, Spellforce et all.).
The last chapter by Bart Sekura shows, how to build up a complete shader driven graphics engine, that is capable to read in Quake 3 and Return to Castle Wolfenstein levels and to display them. You can find the full source with a thorough explanation in this book.
I would like to recommend this book to everyone, who is interested in real-time graphics programming...
It is industry wide consensus that shaders are the way to get cool graphics in realtime games. But there has always been a lack of good documentation about what shaders are and their possibilities. This book was made to address it. It is designed to handle the DX8 API way of shaders together with lots of DX8 samples but the principles apply to OpenGL shader programming also.
The book is splittet into two parts.
The first part is a thorough introduction about vertex and pixel shaders written by editor Wolfgang Engel. It explains the reasoning behind the shaders, the definitions of the virtual machines, and all assembler commands available. For each type of shaders there is also an introductionary example section for getting first successful shader programs running. It is well written with lots of information.
The second part is a collection of shader gems - short articles by differenct authors. Among the authors are people from developer relations from nVidia, Matrox and ATI as well as graphics programmers from inside the gaming industry. These authors have lots of experience programming shaders and they show in short sections what's possible and how to get there.
This book is standing in my bookshelf and in the bookshelves of a lot of professional developers worldwide.
I highly recommend buying it.