Best way to learn opengl?

The title is self explanatory. I just finished up with learning the win32 API and I now want to find out some good learning resources for openGL (if possible, something slightly oriented toward Windows and C++).

I want to learn about the most modern versions of openGL. This means that I do not want to learn OpenGL through glAux or glut.

The problem is that it is pretty hard to find such a tutorial/book.

I had high hopes for the superbible till i found out that it is geared towards glut.

NeHe’s tutorials are now so out of date that I am scared that I will not be learning OpenGL the right way by going through them.

The most promising tutorial so far is falloutsoftware.com. However, the guy keeps referencing to his downloadable ‘base code’. The only problem is that there is no download link (that I could find) or a contact email on his site. If you know where i can download this base code please tell me.

Thanks in advance…
The Cheap Guest

I had high hopes for the superbible till i found out that it is geared towards glut.

GLUT is used for creating and managing a window. It has nothing to do with using OpenGL, nor does it inhibit the ability to learn it. Learning OpenGL is about using the OpenGL API, not about creating windows and processing messages. So getting that stuff out of the way is a good thing.

In general, most cross-platform “learning OpenGL” materials will use some kind of library to handle the grunt-work of creating and managing the window.

You can find plenty of tutorial material linked from the OpenGL wiki, including my own (linked in my signature).

GLUT is used for creating and managing a window. It has nothing to do with using OpenGL, nor does it inhibit the ability to learn it. Learning OpenGL is about using the OpenGL API, not about creating windows and processing messages. So getting that stuff out of the way is a good thing.

Thats true, but now that GLUT is outdated what would be the better option?

Thats true, but now that GLUT is outdated what would be the better option?

I keep forgetting that old GLUT exists. When I talk about GLUT, what I really mean is FreeGLUT. Which is still functional and everything. And is also compatible with old GLUT, so you can compile old applications against FreeGLUT.

Thanks for your quick replies.

I am not interested in using a utility toolkit such as GLUT (or FreeGLUT) to create a window. I know how to program the Win32 API. Are there any tutorials/books which completely omit GLUT usage and use the Win32 API instead?

The reason why i don’t want to use something like GLUT is that I am interested in creating my own gaming engine which includes these commands.

Are there any tutorials/books which completely omit GLUT usage and use the Win32 API instead?

The principle strength of OpenGL is that it is cross-platform. Because of this, and the fact that OpenGL has plenty of non-Windows users, most teaching materials are OS-agnostic. They use GLUT, SDL, GLFW, or some other toolkit to abstract the platform-specific stuff away.

Also, see below.

The reason why i don’t want to use something like GLUT is that I am interested in creating my own gaming engine which includes these commands.

I thought you said you wanted to learn OpenGL?

Properly teaching something to a person is as much about not talking about irrelevant material as talking about the right things. Good teaching materials focus on their specific subject and do as little as possible to stray from that subject.

Using OpenGL is about learning how to use the OpenGL API to do graphical rendering. OpenGL is cross-platform; the API itself doesn’t change (outside of extensions, but even those are cross-platform). The OpenGL parts of a Win32-based project will look no different from the OpenGL parts of a GLUT or SDL-based application.

In short: there’s no reason you couldn’t learn to use OpenGL with materials that do not use Win32, and then use that knowledge in your own Win32-based projects. Unless you’re just looking to copy-and-paste code (and even then, it’s not exactly difficult to filter out any GLUT-isms). Which I don’t recommend.

Thanks for your interest. I think i will start out with GLFW, since it is still being supported.