Series: The Morgan Kaufmann Series in Computer Graphics
Paperback: 424 pages
Publisher: Morgan Kaufmann (January 14, 2003)
Language: English
ISBN-10: 1558608532
ISBN-13: 978-1558608535
Product Dimensions: 9.5 x 7.4 x 1 inches
Shipping Weight: 2.2 pounds
Average Customer Review: 2.9 out of 5 stars See all reviews (7 customer reviews)
Best Sellers Rank: #2,254,396 in Books (See Top 100 in Books) #34 in Books > Computers & Technology > Programming > Graphics & Multimedia > DirectX #340 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Structured Design #1152 in Books > Engineering & Transportation > Engineering > Civil & Environmental > Structural
In "Real-Time Shader Programming", Ron Fosner describes the essential elements necessary for developing shaders in a very approachable full color book that spans just over 400 pages. The book includes a CD with a beta version ATI's RenderMonkey and coded examples of many of the shaders discussed in the text.Shaders are a relatively new option in the rendering pipeline. By taking explicit control over how vertices and pixels are processed by the graphics hardware, a virtually unlimited number of special effects are available to the programmer. Generally, custom lighting, coloring, or texture mapping are used to create a unique look for an application.Beginning with elementary vector math, the book moves quickly into lighting theory. The lighting chapter highlights the mathematical approximation of physically based lighting using the traditional ambient, specular, diffuse, and emissive colors in a scene. Representations for reflection and refraction are derived from Snell's Law, and Fresnel equations. Finally, non-photo realistic rendering (from cel shading, tonal art maps, and hatching) is covered through pictures and a wealth of external references. The chapter makes for an enjoyable read by providing an understandable background to lighting techniques to non-seasoned graphics programmers.Fosner describes how to set up the DirectX pipeline to use shaders. While he touches on some of the nuances you're likely to encounter, the DirectX section seemed a bit sparse compared to the earlier chapters. The DirectX setup calls specific to shaders were well documented, however the chapter didn't dwell on creating the pipeline.In the subsequent chapter, Fosner discusses several current shader creation and visualization tools.
This book was designed to fill a gap caused by the paradigm shift of going from the fixed-function pipeline found in Direct3D and OpenGL to programming shaders. This book is not a collection of shaders. Instead it explains exactly how shaders work so you can go about creating your own. The first part of the book goes into detail of the mathematics of shading and lighting in an effort to illustrate how a shader can be written. The book does contain shaders, though these tend to be basic building blocks, not complete, focused shaders.For example, the author discusses the diffuse vs. specular vs. ambient vs. emissive lighting equations and shows how you can use variations of these particular equations to mix and match to get different effects. Creating shaders isn't a cut and paste operation - it's a creative artistic endeavor, and this book gives you the tools and the theoretical knowledge to understand how to create your own. It's not chock full of creative tricks, though there are a few useful ones. It's more an examination of the basic building blocks of shader writing.The book is focused at both the beginning 3D graphics programmer/artist and the advanced. There's a short section on introductory 3D math such as vertices, points, elementary 3D graphics math, followed by a lengthy chapter on the mathematics of lighting and shading. The book does a good job of explaining the difference between pixel and vertex shading.Next is a chapter devoted to setting-up Direct3D to use shaders including vertex streams. There's a short chapter on current shader resources that can be found on-line including a tool that the author wrote for the book that illustrates the different methods of handling color over-saturation.
Real-Time Shader Programming (The Morgan Kaufmann Series in Computer Graphics) Learning Processing, Second Edition: A Beginner's Guide to Programming Images, Animation, and Interaction (The Morgan Kaufmann Series in Computer Graphics) MEL Scripting for Maya Animators, Second Edition (The Morgan Kaufmann Series in Computer Graphics) Computer Architecture, Fifth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Architecture: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design, Third Edition: The Hardware/Software Interface, Third Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design: The Hardware Software Interface: ARM Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL (6th Edition) Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach (Wordware Game and Graphics Library) Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Computer Graphics Through OpenGL: From Theory to Experiments (Chapman & Hall/CRC Computer Graphics, Geometric Modeling, and Animation) Computers as Components, Third Edition: Principles of Embedded Computing System Design (The Morgan Kaufmann Series in Computer Architecture and Design) See MIPS Run, Second Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Routing, Flow, and Capacity Design in Communication and Computer Networks (The Morgan Kaufmann Series in Networking) Computers as Components: Principles of Embedded Computing System Design (The Morgan Kaufmann Series in Computer Architecture and Design) ARM System Developer's Guide: Designing and Optimizing System Software (The Morgan Kaufmann Series in Computer Architecture and Design)