Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
OpenGL Shading Language (3rd Edition) 3rd Edition
OpenGL® Shading Language, Third Edition, extensively updated for OpenGL 3.1, is the experienced application programmer’s guide to writing shaders. Part reference, part tutorial, this book thoroughly explains the shift from fixed-functionality graphics hardware to the new era of programmable graphics hardware and the additions to the OpenGL API that support this programmability. With OpenGL and shaders written in the OpenGL Shading Language, applications can perform better, achieving stunning graphics effects by using the capabilities of both the visual processing unit and the central processing unit.
In this book, you will find a detailed introduction to the OpenGL Shading Language (GLSL) and the new OpenGL function calls that support it. The text begins by describing the syntax and semantics of this high-level programming language. Once this foundation has been established, the book explores the creation and manipulation of shaders using new OpenGL function calls.
OpenGL® Shading Language, Third Edition, includes updated descriptions for the language and all the GLSL entry points added though OpenGL 3.1, as well as updated chapters that discuss transformations, lighting, shadows, and surface characteristics. The third edition also features shaders that have been updated to OpenGL Shading Language Version 1.40 and their underlying algorithms, including
- Traditional OpenGL fixed functionality
- Stored textures and procedural textures
- Image-based lighting
- Lighting with spherical harmonics
- Ambient occlusion and shadow mapping
- Volume shadows using deferred lighting
- Ward’s BRDF model
The color plate section illustrates the power and sophistication of the OpenGL Shading Language. The API Function Reference at the end of the book is an excellent guide to the
API entry points that support the OpenGL Shading Language.
- ISBN-100321637631
- ISBN-13978-0321637635
- Edition3rd
- PublisherAddisonWesley Professional
- Publication dateJuly 20, 2009
- LanguageEnglish
- Dimensions7.2 x 1.79 x 9 inches
- Print length792 pages
Customers who viewed this item also viewed
Editorial Reviews
Review
“As the ‘Red Book’ is known to be the gold standard for OpenGL, the ‘Orange Book’ is considered to be the gold standard for the OpenGL Shading Language. With Randi’s extensive knowledge of OpenGL and GLSL, you can be assured you will be learning from a graphics industry veteran. Within the pages of the second edition you can find topics from beginning shader development to advanced topics such as the spherical harmonic lighting model and more.”
—David Tommeraasen, CEO/Programmer, Plasma Software
“This will be the definitive guide for OpenGL shaders; no other book goes into this detail. Rost has done an excellent job at setting the stage for shader development, what the purpose is, how to do it, and how it all fits together. The book includes great examples and details, as well as good additional coverage of 2.0 changes!”
—Jeffery Galinovsky, Director of Emerging Market, Platform Development, Intel Corporation
“The coverage in this new edition of the book is pitched just right to help many new shader-writers get started, but with enough deep information for the ‘old hands.’”
—Marc Olano, Assistant Professor, University of Maryland
“This is a really great book on GLSL—well written and organized, very accessible, and with good real-world examples and sample code. The topics flow naturally and easily, explanatory code fragments are inserted in very logical places to illustrate concepts, and, all in all, this book makes an excellent tutorial as well as a reference.”
—John Carey, Chief Technology Officer, C.O.R.E. Feature Animation
“OpenGL® Shading Language provides a timely, thorough, and entertaining introduction to the only OpenGL ARB-approved high-level shading language in existence. Whether an expert or a novice, there are gems to be discovered throughout the book, and the reference pages will be your constant companion as you dig into the depths of the shading APIs. From algorithms to APIs, this book has you covered.”
—Bob Kuehne, CEO, Blue Newt Software
“Computer graphics and rendering technologies just took a giant leap forward with hardware vendors rapidly adopting the new OpenGL Shading Language. This book presents a detailed treatment of these exciting technologies in a way that is extremely helpful for visualization and game developers.”
—Andy McGovern, Founder, Virtual Geographics, Inc.
“The OpenGL Shading Language is at the epicenter of the programmable graphics revolution, and Randi Rost has been at the center of the development of this significant new industry standard. If you need the inside track on how to use the OpenGL Shading Language to unleash new visual effects and unlock the supercomputer hiding inside the new generation of graphics hardware, then this is the book for you.”
—Neil Trevett, Senior Vice President, Market Development, 3Dlabs
About the Author
Randi J. Rost was a core contributor to the development of the OpenGL Shading Language and the OpenGL API that supports it, as well as one of the first programmers to design and implement shaders using this technology. Randi works at Intel.
Bill Licea-Kane is chair of the ARB OpenGL Shading Language workgroup. Bill is a principal member of technical staff at AMD.
Product details
- Publisher : AddisonWesley Professional; 3rd edition (July 20, 2009)
- Language : English
- Paperback : 792 pages
- ISBN-10 : 0321637631
- ISBN-13 : 978-0321637635
- Item Weight : 2.8 pounds
- Dimensions : 7.2 x 1.79 x 9 inches
- Best Sellers Rank: #944,803 in Books (See Top 100 in Books)
- #15 in OpenGL Software Programming
- #190 in Digital Video Production (Books)
- #2,350 in Computer Science (Books)
- Customer Reviews:
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book provides good value for money and explains shaders clearly. They describe it as well-written, easy to read, and the best treatment of the subject they have found.
AI-generated from the text of customer reviews
Customers find the book provides good value for money. They say it's well worth the effort and does an excellent job explaining the perks and quirks of writing shaders.
"This book does an excellent job of explaining the perks and quirks of writing shaders...." Read more
"...The book itself is great. I already know a lot about GLSL and this book is filling in many of the gaps in my knowledge on that...." Read more
"Nice Book!" Read more
"Well worth the effort..." Read more
Customers find the book's writing style easy to read and well-written. They appreciate its clear presentation of shaders and consider it the best treatment on the subject.
"...novice to professional this book is a must have as it explains the whole concept of shaders, their need as it arose through the history of the..." Read more
"This is by far the best treatment on the subject of shaders I have found. It's easy to read and not too expensive" Read more
"...Well written and comprehensive." Read more
"Excellent Presentation of Shaders..." Read more
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The book proceeds to give an overview of how a shader is written from beginning to end. Then a fully detailed description of each of the intermediate steps is given. The discussion proceeds as a tutorial taking the reader by the hand and in a step-by-step manner teaches how to write the most widely used shaders in the graphics industry while at the same time it gives enough instruction to enable the reader to invent their own shaders if they need to.
In all, a very well written and rounded book that begins slowly and generally at first while gradually adding the necessary detail. Written in a simple language without sacrificing technical rigor. A tutorial for the novice and also an invaluable reference in finding quickly whatever a shader developer might need. A must have for everyone interested in developing modern accelerated graphics applications.
This book serves well to someone that has some familiarity/experience with setting up an OpenGL environment on whatever platform. (ie. each implementation of opengl has its quarks, but for iOS this involves setting up the EAGLContext, override layerClass to return CAEAGLayer, setting up vertex buffer objects, render buffers, and framebuffers, blah blah) If you don't understand that aspect you'll find yourself reading the book and thinking 'thats great, but how do i set this up initially?' However if you're like me, and can set up the GL environment, but lacked some insight on what exactly can be accomplished with vertex/fragment shaders then you'll be in for a treat. This book does a nice job of explaining the process of creating shaders (and their corresponding gl_programs). This book doesn't treat the reader like an idiot, but it also doesn't treat you like you were a designer of OpenGL; its a good compromise in the middle. The general flow of the book is having a detailed explanation of what is going on in a shader, then it shows you the code for said shader. If you're patient and willing to cross-reference the text and the code, and touch base with the underlying math where you find yourself lacking, you should come out with a better understanding of how to achieve certain effects (lighting, shadows, noise, etc.) Goodluck
Very minor changes from the 2e. Someone tried to hack out the deprecation but the new stuff lacks adequate explanation and doesn't always work. There are no new shaders presented showing how to benefit from the new capabilities of GLSL.
The index has not been updated to include the mentions of new features or commands. For instance glTransformFeedbackVarying, glBeginTransformFeedback, and glBindBufferBase are briefly mentioned in the book but they have not been indexed nor have they been added to the glossary nor are they included in the API Function Reference in Appendix B.
New commands gl_VertexID and gl_InstanceID are listed but no examples are given as to what they are used for. Other new commands are not even mentioned, such as glPrimitiveRestartIndex.
It's web-site 3dshaders.com is not working. So, no source code is available for the third edition.
The author's email is listed in the book but there is no response and I believe it is a not a working address.
The publisher's web-site has a link to download source code for the book, but its the code from the 2nd edition without any updating.
Top reviews from other countries
5.0 out of 5 stars Super
5.0 out of 5 stars Five Stars
3.0 out of 5 stars Adequate, but not the book I was hoping for.
"Shaders" refer to three separate programmes you can run on the GPU: "vertex shaders" which programme per-vertex information, "geometry shaders" which allow optional access to primitive points, lines and triangles, and "fragment shaders" which deal with the rendering of individual pixels. If you choose to write these you generate small programmes which replace certain bits of the built-in graphics pipeline, the aim being to give the programmer much more flexibility and to permit pretty much anything to be done to the graphics data.
So shaders are a bit like islands of accessibility to graphics data in a sea of hidden architecture on the GPU. Certain bits of data are "built-in", and certain graphics processes are also fixed and hidden away from the programmer, and I found it very hard to determine from this book alone exactly what fell into which category, and how I should interface with the built-in graphics processing. To pursue my maritime analogy: if graphics data is like freight sent by shipping, then you intercept cargos en-route, fiddle with them a bit, then send them on. But to do this you need to fit into the shipping schedules, know what freight is on the boat, know what you are and are not allowed to change, how you should load it, and so on.
I found this book very weak on explaining data flow (shipping schedules in my analogy), and also how the data (the cargo) is organised . Without this information you are a bit stuffed! A diagram showing this and listing all the "built-in" variables available at each stage (with their attributes) would have been a priceless help. Fortunately a lot of information about GLSL is available online, and that is just as well because I don't think this book alone would have given me enough information to get the job done.
Once I'd figured out the missing bits and pieces the second half of this book, which is mainly worked examples of how to achieve effects with shaders, proved very useful as a source of ideas. In particular chapter 9, Emulating OPenGL Fixed Functionality, is crucial for a novice at GLSL because you have to start at the beginning with basic transformations, colour, shading and lighting and this shows you how to do it.
In conclusion I'd say that you can learn GLSL from scratch using this book, but you'll also need a web browser in order to answer all the questions it fails to answer. Once you've got going it makes a reasonable reference guide, and the coded examples in the second half are particularly worthwhile. But I do wish the authors had studied Kernighan and Ritchie's The C Programming Language (2nd Edition), in my view the best book ever written on a computer language: clear, concise and well organised ... which this book definitely is not!





