PDA

View Full Version : A Good Learning Resource for OpenGL 3.3



kOrsanX
06-13-2012, 01:22 PM
Hello everybody.

I would like to learn OpenGL. The situation is this: I would like to use either C++ or C# as my language, but I prefer the former as I'm yet fairly new to C#. My current system supports OpenGL 3.3, so that is what I would like to learn.

I had already acquired a book: The OpenGL Superbible 5th Edition (http://www.opengl.org/sdk/docs/books/SuperBible/).

I have never seen such a poorly written, horrible excuse for a book! The examples don't compile, and apparently it's not my fault - I've done my research and many people are having the same problems. Looks like all examples past chapter 9 or so are broken. There are no updated sources either. Almost 1/3 of the book is the OpenGL 3.3 Man Pages, which can be found online for free. But what I really hate about the book is that it's using a wrapper library and all the author does is teach you through this wrapper library - because apparently he is assuming that everybody is too stupid to handle actual OpenGL functions.

Honestly, OpenGL.org should not list this book as a learning resource. You're helping the author scam people out of their money.

I am very eager to learn OpenGL, however I have a hard time finding a good book. I have found this (http://www.arcsynthesis.org/gltut/)online tutorial, apparently 3.3 even, but I'm afraid it mentions it's not really a tutorial on OpenGL.

I would greatly appreciate any pointers :)

Alfonse Reinheart
06-13-2012, 02:01 PM
You're helping the author scam people out of their money.

That's rather harsh. It does (eventually) teach you what goes on behind those wrappers.


I have found this online tutorial, apparently 3.3 even, but I'm afraid it mentions it's not really a tutorial on OpenGL.

Exactly. It's a book on graphics programming that uses OpenGL.

A true OpenGL book would be obligated to cover most if not all OpenGL functions and behaviors. This book is an introduction to graphics programming through OpenGL. As an intro textbook, it won't cover some of the more esoteric stuff, like transform feedback, occlusion culling, and the like.

However, unless you already know 3D graphics programming, and are just looking for how to implement this stuff in OpenGL (for example, if you learned D3D and are looking for something more cross-platform), it's still a book that would be useful to you. After all, what do you really want to know? What functions to put into some order to make something happen on screen? Or why putting those functions in that order causes that particular thing to happen on screen?

thokra
06-13-2012, 03:00 PM
I have never seen such a poorly written, horrible excuse for a book!

And how many books on graphics programming have you read? Since when do examples that don't compile automatically degrade the rest of the book to garbage?


You're helping the author scam people out of their money.

Actually, the 7th revision of the Red Book, which is "The Official Guide to Learning OpenGL" and the lastest revision available, is as expensive and offers a major glance into completely obsolete OpenGL constructs. You decide which investment may be more future proof. However, this is not to say that information in the 7th Red Book which is not dependent on any GL revision isn't valuable.


But what I really hate about the book is that it's using a wrapper library and all the author does is teach you through this wrapper library - because apparently he is assuming that everybody is too stupid to handle actual OpenGL functions.

The authors of the book are experienced in writing, graphics programming and are quite some names in the field of OpenGL so I don't think they would overlook infantilizing their readers. Providing helper libraries is not to constrain the user but to help getting started quickly and don't starve the reader while introducing tons of theory before rendering the first polygon. Also, if you want to implement test objects which are core GL 3.3 compliant yourself without any knowledge of how to do it, go ahead - have fun.

Anyway, in time, I think every experienced GL programmer's primary sources of information are the specifications and the derived online reference pages.

kOrsanX
06-13-2012, 11:59 PM
However, unless you already know 3D graphics programming, and are just looking for how to implement this stuff in OpenGL (for example, if you learned D3D and are looking for something more cross-platform), it's still a book that would be useful to you. After all, what do you really want to know? What functions to put into some order to make something happen on screen? Or why putting those functions in that order causes that particular thing to happen on screen?

This is a very good point, it would probably be very beneficial for me to learn the foundations of it all. Maybe then I can make my way through the superbible as well. Thanks :)


And how many books on graphics programming have you read? Since when do examples that don't compile automatically degrade the rest of the book to garbage?

This is a product, and it is incomplete and faulty. Would you pay for a car if you knew it would fall apart after 9 miles? The broken examples are not the problem, the problem is that the authors don't care enough to fix them. Surely someone who has "quite some name in the field of OpenGL" could fix the mistakes he made in a few source files? While googling I came across a lot of threads where other people too were desperately trying to fix the (apparently butchered) code. My point simply is that we, as paying customers, should not have to do their editorial job. Some of the function calls in the book listings don't even match the source code files. Apart from that, this book is still bad even in it's own right. The fact that they're teaching through their own wrapper is simply a let down. Not to mention the wrapper is almost impossible to port to a compiler like gcc, despite the authors claiming its simple implementation makes it highly portable (seems more like an excuse to have a poorly written wrapper). I'm sorry but there is no way you can defend this book. I'm not saying it doesn't teach you anything at all, however it's like drinking water out of a bottle that's leaking on every side.

thokra
06-14-2012, 12:40 AM
The broken examples are not the problem, the problem is that the authors don't care enough to fix them.

Did anyone try to notify Richard Wright about broken codesamples? Did you try?


Apart from that, this book is still bad even in it's own right. The fact that they're teaching through their own wrapper is simply a let down.

Using a wrapper library has nothing to do with the quality of the information in the book.


Not to mention the wrapper is almost impossible to port to a compiler like gcc, despite the authors claiming its simple implementation makes it highly portable (seems more like an excuse to have a poorly written wrapper).

Again, a problem that should be seperate criticism and not be misused to slam over 1000 pages without any mercy.


I'm sorry but there is no way you can defend this book.

Yes I can. I'll see for myself if your complaining about code samples is valid by downloading the code from here (http://www.starstonesoftware.com/OpenGL/) and trying to get it to run. We'll see.

kOrsanX
06-14-2012, 04:22 AM
Did anyone try to notify Richard Wright about broken codesamples? Did you try?
Ask these reviewers. (http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/product-reviews/0321712617/ref=cm_cr_dp_hist_one/192-6796636-0635161?ie=UTF8&filterBy=addOneStar&showViewpoints=0) It would be impossible for the authors to be unaware of this for 2 years now.



Using a wrapper library has nothing to do with the quality of the information in the book.
It has something to do with hiding the useful information behind a layer. We need goodput.




Again, a problem that should be seperate criticism and not be misused to slam over 1000 pages without any mercy.
~600.



Yes I can. I'll see for myself if your complaining about code samples is valid by downloading the code from here (http://www.starstonesoftware.com/OpenGL/) and trying to get it to run. We'll see.
http://www.opengl.org/discussion_boards/showthread.php/171890-OpenGL-Superbible-5th-edition-example-woes

Look, I'm not here to bash your favorite book, and I'm not operating on hearsay or an individual problem. Others are having problems with this book as well. Feel free to try and help, I would love that. If you do manage to compile all examples with no error, then I'm sure many people would be very grateful if you share the fixed code.

thokra
06-14-2012, 04:37 AM
~600.

I cited my favorite online store which states 1008 pages.


Look, I'm not here to bash your favorite book[..]

It isn't. I just feel that the book isn't treated fairly.


Feel free to try and help, I would love that. If you do manage to compile all examples with no error, then I'm sure many people would be very grateful if you share the fixed code.

As soon as I get home from work, I'll use the SVN version of the examples and check it out.

Kopelrativ
06-15-2012, 06:34 AM
In some ways, the criticism of the superbible is correct. Using wrapper libraries has two disadvantages: It makes it harder for beginners to "see through", and it makes it harder to copy the source code as you either will have to use the same wrapper library or create one of your own with similar functionality.

I read the book, from start to end, and I learned a lot from it. Possible, it is not the first thing you should read. In my case, I didn't download or try to compile any source. The important thing I learned was the functionality that is possible, and the general way of using it. From that, it was fairly easy to adapt in your own application.

Janika
06-15-2012, 11:20 AM
I've not tried the code samples in the book, as I usually write my own while learning. However, I consider the OpenGL Superbible is way better than the OpenGL old testament AKA "the red book." :)

kOrsanX
06-16-2012, 05:16 AM
the OpenGL old testament AKA "the red book."
lol nice one


As soon as I get home from work, I'll use the SVN version of the examples and check it out.
thokra did you have any success?

thokra
06-16-2012, 08:13 AM
thokra did you have any success?

Yep. Pulled the source from SVN and looked at it first. After being horrified by the overall organization of the code, VS solutions and projects and so forth, I simply pulled freeglut and the sources out into a new folder and set up my own solution and projects. I did that for a few chapters and they all compiled, linked and ran fine. One thing I don't understand is that the authos didn't simply use the preprocessor define _WIN32 which is set automatically by the MSVC compiler. Instead, they used WIN32 which has to be explicitly defined. A slight gotcha, but nothing serious. Overall, the sources seem to compile fine although you have to fidget around a bit to get it working but GLTools and all the chapters I tried worked. All the troubles can be easily solved by creating one comprehensive solution and individual projects.

As it stands now, it's simply a mess - but an organizational one that still has nothing to do with OpenGL or the SuperBible textbook. The mere necessity is to know some C++ and the ability to use Visual Studio. For Linux, creating a CMake project manually isn't that big a deal for the standard Linux developer.