Superbible 5th Edition vs a Free Tutorial ?

Hello, I hope you’re all doing well. :slight_smile:

I decided to start learning OpenGL 3.3, as this is the highest version my current system supports. I have been looking for good sources and learning material, but I’m a little stumped here. After some research I learned that the OpenGL Superbible is a highly recommended book for beginners, but I also found a very nice looking free tutorial here:

My question is, which should I prefer? I would very much appreciate a hint as to which one is better for a beginner to learn OpenGL 3.3. I am not sure because I have some impressions of both, but as a complete beginner I can’t tell which would be more useful for me.

I will write my impressions of both as best as I can.

So I got the 5th edition, and it’s plain bad. :confused:
Of course I can’t judge it entirely since I just began, but the code organization is messy, the examples do not work and the book is using a wrapper library. Didn’t this book have an editor at all? After much googling I found solutions for building some of the example programs (thanks to a few threads here also), so that’s fine. Though, I’m not so happy about doing the authors job and fixing his bugs. I can live with all that, but the biggest con about the book is the wrapper library. The book is fixated and almost focused on their own wrapper, constantly reminding the reader how hard and tedious this and that task would be if not for their library, and how the reader would be just helpless without it. I feel like I’ve learned very little so far, and the things I have learned are not even useful for me because I only know how to do them by depending on the wrapper library (which by the way looks like it was written by a C++ novice). I’m not sure about this book.

As for the online tutorial. It looks very clean, new and well written. From the few pages I’ve read it explains the concepts in a clear and to the point manner. I have downloaded the source code for the examples and everything compiles and runs perfectly out of the box. My only concern is that it is not complete yet, and the available material seems fairly limited. The pdf version of it has around 300 pages, whereas the Superbible has around a 1000. So a concern is detail and completeness.

I’ll be very grateful if someone can give me an advice here, thanks.

The Superbible includes a copy of the OpenGL specification, which adds a lot of pages.

I think one of the reasons that the Superbible is using the wrapper library is that older versions of the book was based on the immediate mode. When the new version was planned, they either had to restructure the whole book, or use a wrapper library that made it possible to reuse the same set of examples. That way, they simulate the flow structure in the immediate mode. But I don’t like it either.

Still, I like the superbible for the advanced topics, where you don’t care for “minor” things like how the shader is managed or how VAO:s are used.

Well… you have both. You’ve already purchased the Superbible. And as you point out, the tutorials are free online. So… just read them both.

But if you want a comparative analysis of the two, here you go. In the interests of full disclosure, I’m the author of the tutorial you’re talking about. So take this with a grain of salt.

The biggest difference between the Superbible and my tutorials is this: the Superbible teaches you OpenGL. Mine doesn’t.

I know that sounds silly, since the tutorials use OpenGL and I spend plenty of time on OpenGL subjects. But when I’m finished, there will still be plenty of facets of OpenGL that I don’t cover. Occlusion queries, timer queries, array textures probably, etc.

What my tutorials cover is graphics programming. It covers topics of interest for actually making graphics. I cover position transforms in detail. I cover lighting, lighting models, High Definition Range rendering, gamma correction and its importance in actually rendering what you want, etc.

The Superbible spends about 15 pages on lighting, covering basic diffuse, specular, and the like. By comparison, my tutorials spend over one hundred pages covering lighting, the math behind it, and various subjects related to it. And that’s just from the section called “Illumination”; everything after that continues to add to lighting, such as upcoming sections on bump mapping and such.

That’s not to say that the Superbible is wrong. But it is pointed in a different direction. It’s interested in covering all of the stuff that OpenGL does. I’m interested in teaching you how to be a graphics programmer. And graphics programmers deal with lighting a lot. They deal with positioning a lot. They deal with textures a lot. And so on. So I spend a lot more time on graphics theory than the Superbible.

So I would like to think the difference is this. If you finish the Superbible, you’ll have a better mastery of OpenGL than if you read my tutorials. But you’ll know more about actually doing useful stuff in graphics if you read my tutorials.

Which is more important to you?

The Superbible includes a copy of the OpenGL specification, which adds a lot of pages.

Wow, I just checked the table of contents online, and it would have been only ~ 661 pages without the man pages. That’s ~30% of the book devoted to something you can find much more easily and searchably online. That’s sad.

Thanks for the replies!

I think I understand what you both mean now. So it would be best for me to use both sources.

That your tutorial teaches Graphics Programming in general is a good thing actually, as a beginner I’m sure I will benefit greatly from it, and using the Superbible I will try to refine my OpenGL knowledge.

Learning something in detail is very important to me, and the two sources should complement each other. Covering all of OpenGLs functions in detail isn’t useful if I’m confused by the theory and purpose of it, and the same goes the other way around.

That is sad, and with the bad service you get from the rest of it, I feel a little bad for buying it. But it has it’s good sides too, considering it covers OpenGL thoroughly.

While I’m at it, let me thank you for writing that quality tutorial and providing it for free. :slight_smile: