OpenGL Programming Guide
Martin Ecker writes "The Red Book, also known as the OpenGL Programming Guide, is back in its fifth edition. It received the name Red Book because of the nice red book cover, and possibly also because it has remained the standard introductory text on the OpenGL graphics API for years, and always referring to it as "OpenGL Programming Guide" is too long. This fifth edition now also covers new features introduced with versions 1.5 and 2.0 of the OpenGL standard. So let me take you on a tour through the pages of this book to see what it has to offer." Ecker's review continues below.
OpenGL Programming Guide (5th Ed.) - The Official Guide to Learning OpenGL, Version 2
author
Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
pages
838
publisher
Addison-Wesley Publishing
rating
8
reviewer
Martin Ecker
ISBN
0321335732
summary
A very complete and thorough introduction to OpenGL
I should mention that the last edition I read of the Red Book was the first edition, and a lot of material has been added to the book in the meantime. Just as the first edition, however, the fifth edition is still incredibly complete and thorough. It contains explanations of pretty much every feature of OpenGL, even the rarely used ones. You want to know about the new occlusion queries added to OpenGL recently? It's in this book. You want to know about the accumulation buffer and its uses? It's in this book. You want to know about the (mostly deprecated) use of indexed color buffers? It's in this book. The only thing the book does not cover in detail is vertex and fragment shaders because they have their own book, the Orange Book (aka The OpenGL Shading Language) -- see my previous Slashdot review.
The Red Book is aimed at the beginning to intermediate graphics programmer who is not yet familiar with OpenGL. It assumes a basic background in computer graphics theory and working knowledge of the C programming language. The book consists of 15 chapters and 9 appendices that together span approximately 800 pages.
The first chapter gives a brief introduction to the basic concepts of OpenGL and describes the rendering pipeline model used in the API. GLUT, a cross-platform library that allows easily creating OpenGL applications, is also shortly discussed together with a program that shows GLUT in action. The following chapters proceed to explain the basic geometric primitives, such as lines and polygons, supported by OpenGL and how to render them in different positions and from different viewpoints using the various OpenGL matrix stacks. The authors also discuss here the basics of using colors, fixed-function lighting, framebuffer blending, and fog.
Chapter seven contains a description of display lists, a unique feature of OpenGL that allows to store OpenGL API calls for efficient multiple use later on in a program. Chapter eight then moves on to discuss what an image is for OpenGL, which brings us straight to chapter nine on texture mapping, one of the largest chapters in the book. This chapter discusses everything you need to know on textures, from specifying texture images in uncompressed and compressed form to applying textures to primitives using the various kinds of supported texture filters. Also depth textures and their application as shadow maps are presented.
In chapter ten the authors discuss the buffers that make up the framebuffer, such as the color buffer, depth buffer, and stencil buffer. This chapter summarizes some of the things already presented in the earlier chapters and then describes the various framebuffer operations in more detail. Also the accumulation buffer and its uses, such as motion blur and depth of field effects, are discussed. Chapter eleven and twelve are on the tools provided by GLU, the GL utility library, in particular tesselators, quadrics, evaluators, and NURBs. GLU is nowadays rarely ever used in production code, so these chapters mostly demonstrate just how complete the Red Book is in its coverage of OpenGL. This also applies to chapter thirteen on selection and feedback, which are rarely used features, mostly because of the lack of hardware acceleration.
Finally, chapter fourteen is a collection of topics that didn't fit into the other chapters, such as error handling and the OpenGL extension mechanism. Additionally, this chapter presents various higher level techniques and tricks, for example how to implement a simple fade effect, how to render antialiased text, and some examples of using the stencil buffer. The final chapter of the book - newly added in the fifth addition -- is a short introduction to the OpenGL Shading Language (GLSL, for short). Even though the OpenGL API functions required to use GLSL are presented, this is only a quick overview of how programmable shaders are used in OpenGL. For a more detailed description of GLSL the reader is referred to the Orange Book.
The book closes with quite a few appendices on the order of operations in the OpenGL rendering pipeline, the state variables that can be queried, the interaction of OpenGL with the operating system-specific windowing systems, a brief discussion of homogeneous coordinates as used in OpenGL, and some programming tips. Also a reference of the built-in GLSL variables and functions is included, which is a bit odd considering that the Red Book actually doesn't really concentrate on programmable shaders or GLSL. It's a good reference nevertheless.
The book contains a large number of images and diagrams, all of them in black and white except for 32 color plates in the middle of the book. The illustrations are of high quality and generally help make the explained concepts and techniques easier to understand. Most of the color plates depict spheres, teapots, and other simple geometric objects, so they aren't overly eye-catching but do serve their purpose of showing what can be achieved with OpenGL.
The Red Book remains the definitive guide to learning OpenGL. Whenever someone asks me "What book should I read first to learn OpenGL?" this is the book I refer them to. Apart from being a good introduction, it also contains many interesting tips and tricks that make the experienced OpenGL programmer come back to it often. If you've read through this book in its entirety you pretty much know everything there is to know about OpenGL.
Martin Ecker has been involved in real-time graphics programming for more than 9 years and works as a games developer for casual arcade games. In his rare spare time he works on a graphics-related open source project called XEngine. You can purchase OpenGL Programming Guide (5th Ed.) - The Official Guide to Learning OpenGL, Version 2 from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
I should mention that the last edition I read of the Red Book was the first edition, and a lot of material has been added to the book in the meantime. Just as the first edition, however, the fifth edition is still incredibly complete and thorough. It contains explanations of pretty much every feature of OpenGL, even the rarely used ones. You want to know about the new occlusion queries added to OpenGL recently? It's in this book. You want to know about the accumulation buffer and its uses? It's in this book. You want to know about the (mostly deprecated) use of indexed color buffers? It's in this book. The only thing the book does not cover in detail is vertex and fragment shaders because they have their own book, the Orange Book (aka The OpenGL Shading Language) -- see my previous Slashdot review.
The Red Book is aimed at the beginning to intermediate graphics programmer who is not yet familiar with OpenGL. It assumes a basic background in computer graphics theory and working knowledge of the C programming language. The book consists of 15 chapters and 9 appendices that together span approximately 800 pages.
The first chapter gives a brief introduction to the basic concepts of OpenGL and describes the rendering pipeline model used in the API. GLUT, a cross-platform library that allows easily creating OpenGL applications, is also shortly discussed together with a program that shows GLUT in action. The following chapters proceed to explain the basic geometric primitives, such as lines and polygons, supported by OpenGL and how to render them in different positions and from different viewpoints using the various OpenGL matrix stacks. The authors also discuss here the basics of using colors, fixed-function lighting, framebuffer blending, and fog.
Chapter seven contains a description of display lists, a unique feature of OpenGL that allows to store OpenGL API calls for efficient multiple use later on in a program. Chapter eight then moves on to discuss what an image is for OpenGL, which brings us straight to chapter nine on texture mapping, one of the largest chapters in the book. This chapter discusses everything you need to know on textures, from specifying texture images in uncompressed and compressed form to applying textures to primitives using the various kinds of supported texture filters. Also depth textures and their application as shadow maps are presented.
In chapter ten the authors discuss the buffers that make up the framebuffer, such as the color buffer, depth buffer, and stencil buffer. This chapter summarizes some of the things already presented in the earlier chapters and then describes the various framebuffer operations in more detail. Also the accumulation buffer and its uses, such as motion blur and depth of field effects, are discussed. Chapter eleven and twelve are on the tools provided by GLU, the GL utility library, in particular tesselators, quadrics, evaluators, and NURBs. GLU is nowadays rarely ever used in production code, so these chapters mostly demonstrate just how complete the Red Book is in its coverage of OpenGL. This also applies to chapter thirteen on selection and feedback, which are rarely used features, mostly because of the lack of hardware acceleration.
Finally, chapter fourteen is a collection of topics that didn't fit into the other chapters, such as error handling and the OpenGL extension mechanism. Additionally, this chapter presents various higher level techniques and tricks, for example how to implement a simple fade effect, how to render antialiased text, and some examples of using the stencil buffer. The final chapter of the book - newly added in the fifth addition -- is a short introduction to the OpenGL Shading Language (GLSL, for short). Even though the OpenGL API functions required to use GLSL are presented, this is only a quick overview of how programmable shaders are used in OpenGL. For a more detailed description of GLSL the reader is referred to the Orange Book.
The book closes with quite a few appendices on the order of operations in the OpenGL rendering pipeline, the state variables that can be queried, the interaction of OpenGL with the operating system-specific windowing systems, a brief discussion of homogeneous coordinates as used in OpenGL, and some programming tips. Also a reference of the built-in GLSL variables and functions is included, which is a bit odd considering that the Red Book actually doesn't really concentrate on programmable shaders or GLSL. It's a good reference nevertheless.
The book contains a large number of images and diagrams, all of them in black and white except for 32 color plates in the middle of the book. The illustrations are of high quality and generally help make the explained concepts and techniques easier to understand. Most of the color plates depict spheres, teapots, and other simple geometric objects, so they aren't overly eye-catching but do serve their purpose of showing what can be achieved with OpenGL.
The Red Book remains the definitive guide to learning OpenGL. Whenever someone asks me "What book should I read first to learn OpenGL?" this is the book I refer them to. Apart from being a good introduction, it also contains many interesting tips and tricks that make the experienced OpenGL programmer come back to it often. If you've read through this book in its entirety you pretty much know everything there is to know about OpenGL.
Martin Ecker has been involved in real-time graphics programming for more than 9 years and works as a games developer for casual arcade games. In his rare spare time he works on a graphics-related open source project called XEngine. You can purchase OpenGL Programming Guide (5th Ed.) - The Official Guide to Learning OpenGL, Version 2 from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Wow, my company wants me to become an expert on
OpenGL because we're looking into all the possible
uses of GPU-based computing for general info
processing.
This book will get an order from me^H^H my company!
There's still the problem of Windows Vista making DirectX much faster than OpenGL.
How does this new version compare to this site: The red book?? Is it worth the money to buy it if you are a true beginner with a decent C background, but little prior work with 3D graphics? Or would it be fair to say that the online book would suffice and that a API reference for changes and updates would allow you to do simple rendering?
When all else fails, try.
Book is available online here (and a few other places/formats, try google):
http://fly.cc.fer.hr/~unreal/theredbook/
This is an older version, but still a very good grounding in the basics of interactive 3d graphics.
It just kind of seems like opengl has been standing still for the last several years while microsoft falls over themselves to make overwrought glittery things possible on their platforms, with the result being that directx has been gradually nabbing up all the major game developers and ending any hope of their stuff being crossplatform.
But after all these years of stagnation now we've finally got this standard shading language. Is this going to cover the technological and mindshare gap with directx, or is it too little too late? Is anybody going to actually read this orange book?
The reason they call it the red book is to distinguish it from the blue book, which is the OpenGL reference manual.
/
http://www.opengl.org/documentation/blue_book_1.0
Damn it! I just bought the 4th edition two days ago on Amazon.
You can get this book in PDF or HTML for free from here. Obviously it's as up to date as this edition but probably good enough for most beginners.
Green Book @amazon.com
From the review it just basically looks like the last edition but with a little bit added for GLSL. I think most people that are interested have already read the Red Book and many other OpenGL texts so it seems kinda unneeded. What would be really interesting is a book about implementing Shaders in OpenGL or other advance features coming in OpenGL 2.0.
mnewberg.com
Maybe the people who complain about the lack of quality games should put the book to use.
I've seen "Hackers"! They use the Red Book to hack the Gibson.
Also, hacking looks a lot like a bad screensaver. There's never any text editing or commandlines involved.
Save yourself some money by buying the book here and using the "secret" 1.57% A9 discount you get by using a9.com: OpenGL Programming Guide
You would think, wouldn't you, that it would contain explanations of every feature of OpenGL? After all, if it's not in the book, should it be in the language?
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
... trying to push the book by offering a <2% "discount", while spamming the forum with his referral-fee link. Truly pathetic.
Is this book available in hard cover?
As far as I'm concerned, the red book is "Applied Cryptography"
The thing about these OpenGL books that makes them different from all the others on the market is that they are DEFINITIVE. They are put out by the OpenGL Architecture Review Board - who are the very people who design and update the API. If the books don't agree with the implementation - it's the implementation that's wrong!
The full set are as follows:
Red Book - Programming guide - chatty description which still has all of the arguments of all of the functions described within it. You *need* this book...expect to buy a new one every couple of years as the API evolves. Keep one copy at work and the last generation one at home...maybe keep the one before that in your car!
Blue Book - Reference Manual - quite literally a set of 'man' pages printed out and bound together in a book. Useful if you like to read books instead of screens.
Green Book - GLUT. Covers the GL Utility Toolkit. This is really rather unnecessary.
Alpha Book - OpenGL programming for Windows. (It actually has a white cover...but since we had the RGB books, we needed Alpha to complete the set!)
Orange Book - OpenGL shader language (GLSL). If you want to program at the cutting edge of realtime graphics, you'll be using shaders. It's written in a style broadly similar to the way the Red Book is written and is very readable.
Finally, there is the OpenGL specification document. This has (AFAIK) never been put into print (which is a great shame - I'd buy it) - you can download it from www.opengl.org and it contains VERY detailed documentation of every function that goes far beyond any of the printed manuals - but which presumes you already know OpenGL pretty well. However, if you need to know the mathematical description of how OpenGL implementations are supposed to calculate the level of detail of your texture map...this is where you'll find that.
Whilst all the other books are handy to have around, the RedBook is utterly essential to OpenGL programmers (even those of us who've been using it for the whole eleven years of it's life will find themselves referring to it often enough to warrant owning a copy). The nice thing about it is that it's very readable. You can open it at page 1 knowing nothing - and read through to the end and wind up having learned all of OpenGL - or you can pretend it's a set of man pages and use the (excellent) index to find a simple description of every function and it's arguments that's *NEARLY* as good as the Blue Book.
An excellent example of disinformation and/or sarcasm. Well done.
Too bad OpenGL is getting crippled in Windows Vista. By the time Vist is in full swng, OpelGL on windows can't possibly be as popular if it's performance is drained by the layering.
Has anyone actually read the Red Book? WTF is GL, or Open GL, or an API? What the hell does any of that have to do with the adventures of Frodo, or Bilbo.
I know - bad joke, but I just HAD to say it. The little elves in my head whisper evil things.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d Capitalization really works: i helped my uncle jack off a horse
Funny I thought that the Red Book refereed to all those nice free technical bookies that IBM has been providing for years.
..
Or is that Aussies used car prices
I don't recommend using NeHe any more. At one point, it was a great resource, but it has gone far downhill.
For one thing, the sample code is pretty crappily written, sadly outdated, and makes use of obsolete stuff like glaux.
For another, the maintainer has moved on...Gamedev.net is (kinda) maintaining the site now, and not much is happening in the way of new tutorials.
Making OpenGL slower is. If Microsoft can achieve real technical gains in DirectX, more power to them. If they're hobbling OpenGL, that's a different story. If, for instance, they're accepting optimized drivers from the hardware vendors for DirectX, but refusing to accept optimized OpenGL drivers for inclusion in Vista, that's playing dirty. If they're getting -no- optimized drivers from the vendors, but taking it upon themselves to make DirectX faster, I'm not sure how to take that. Does anybody know if ATI and nVidia are -offering- drivers to MS?
RETURN without GOSUB in line 1050
My copy of the green book is titled "OpenGL Programming for the X Window System", and it's much more than just a book about the GLUT. You learn how limited the GLUT is, and how to get down to basics.
I've always wanted to get into graphics programming, but my maths isn't strong. Can anyone recommend any maths book(s) that can help get started graphics programming?
Thanks.
http://www.cs.wisc.edu/~ghost/doc/book s.htm
I had originally wanted to make a Lego dinosaur, but the people in charge at SGI had thought that perhaps that was a message that they didn't want to put out there.
Anyway, if you're wondering, the idea of the globe is that you can make the whole world out of little tiny pieces -- which seems like OpenGL to me. OpenGL is a great library, beautifully orthogonal, simple, and consistent, just the right thing for building 3D applications.
And, btw, I think that the Google logo looks a whole lot like the OpenGL on the table in the book cover, but...hey, whatever.
Thad Beier
I love Mondays. On a Monday, anything is possible.
My googling for jargon revealed that the Red Book is really a Postscript manual.
What gives?
https://www.accountkiller.com/removal-requested
How is it messed up pray tell?
one of the things that @26 fps doesn't cover is the motion blur that would normally be a part of a 'moving' image. massive frame rates cover that part up. given how fast I've seen some of these games play, the possiblity of seeing the blur vs. finding out something hit you between frames, might make a difference.
the bit that confuses me sometimes is that I don't recall ever seeing a monitor with better than a 120Hz frame rate... the one I'm working with now only goes as far as 90. is this not a barrier?
-- it's ridiculous how many people misspell ridiculous... (damn, damn, damn...)
So the Red Book is going to continue down a path focusing on the fixed-function pipeline...
I had such high expectations of the next Red Book. I was hoping for a more modern approach to OpenGL. What a shame.
I'll wait for the next edition of the orange book
I liked the part where Neo had to choose between the red book and the blue book.
Start is what I call my entry point. /link /SUBSYSTEM:WINDOWS /entry:start USER32.LIB
#2, #3 This is somehow wrong because?
I added the return; because I wasn't sure if some C's wouldn't do like assembler and run out the bottom of the program, and originally a ExitProcess was there. Having it there doesn't change anything, though. There is no need for WinMain, and that is the point that my program is supposed to illustrate in so limited space as a sig. In a more robust program one would do HINSTANCE inst = GetModuleHandle(NULL);
I compile the program with:
cl hello.c
With WinMain in a program, a bunch of protective but essentially worthless stuff gets linked in before WinMain gets called.
"Red Book" reminds me of the "Dragon Book". Anyone know what I'm talking about? :)
...was the manual that came with the Apple II.
The 'problem' really just stems from the fact that video hardware is becoming an operating system managed resource, instead of a thin interface to an essentially unmanaged device. DirectX is becoming a much more important part of the operating system now that the entire GUI is built on top of it. You can no longer just give applications full access to the video resources through OpenGL and the driver.
Complaining about this is like complaining about how 32-bit x86 operating systems rendered DOS4GW useless. At some point video hardware was bound to become a more integral part of the operating system, and if you don't like that you even get the option to turn it off (for now).
Aside from the CD standards,
* The Lord of the Rings
* USAF UFO investigation
Is there going to be a new White Book or Green Book coming to go along with the new Red Book, (and future new Blue Book)?
Man... this hidden word image is almost unreadable!
The online version of the Red Book is still extremely useful for learning OpenGL. Version 1.1 covers all the most important subjects, such as vertex arrays, transformations, texturing, and lighting.
The new version of the book also covers features that have been added to the OpenGL standard in the last 4 years, such as shaders. However, you can learn everything you need to know about these from online documention (especially from ATI and nVidia's developer sites).
If you want to save money, you can get a lot of mileage out of the old version of the book. That's the same edition that I personally own, and I haven't had to buy the newer one.
The best part of the Red Book is the way it helps you learn the fundmental concepts of hardware accelerated 3D, and the old version is just as good for that.
I bought the previous edition of the red book because it was written in the summary that it was talking about the vertex and fragment shaders which they didn't.
As you may guess, I was (and still am) quite pissed off by this false advertising, in the newsgroup an author said it was a mistake, a pretty big mistake if you ask me! Have they fixed this "mistake"?
The reviewer mentioned that there is the orange book which is about the shading language. But there is also a white book which is about OpenGL on Windows. http://www.amazon.com/exec/obidos/tg/detail/-/0201 407094/qid=1125797263/sr=1-1/ref=sr_1_1/002-327367 7-6817646?v=glance&s=books
OpenGL Programming for Windows 95 and Windows NT.
These Win32/OpenGL commands should still work under 2000/XP.
So in total there are 5 book on OpenGL in the Addison Wesley series.
- OpenGL Programming Guide (Red)
- OpenGL Reference Manual (Blue)
- OpenGL for X Windows (Green)
- OpenGL for Windows (White)
- OpenGL Shading Language (Orange)
Viva la OpenGL. OpenGL owns DX.
Linux, because a PC is a terrible thing to waste.
I have the read the previous 4 edetions including one in German adn can NOT wait to get my hands on this new edition. I hope it jsut answers all teh questions the other did not. Just like software your book is only as good as its last publish