Sunday, February 3, 2008

Learning OpenGL

I've neglected to learn OpenGL in the past, even though I've really wanted to. I guess when there are a million things you want to learn about, the things you need to immediately learn about take priority.

But now I have to learn it, thanks to a few school projects on the go that will require it, including (most likely) my upcoming thesis.

When I searched for OpenGL tutorials, the first hit was for Video Tutorials Rock. This website is maintained by an MIT computer science student, and was created, as far as I can tell, just for fun! He figured that video tutorials would be easier to learn from, and wasn't too satisfied with the other tutorials online anyway. I really like these tutorials -- check them out!

I hope to also have a look through the course material for a fourth year graphics course at Carleton that I was never able to take due to scheduling issues. Hopefully I can catch up with some of the basic theory.

Once I'm done with these resources, I think I will check out the Simple DirectMedia Layer (SDL) libraries, as they seem to be more standard than, say, GLUT.

If you have any advice as I embark on this graphics journey, please do leave a comment. And with that, I return to learning about animation using OpenGL...


MenTaLguY said...

GLUT actually is sort of the standard. But it's not very nice to use; you're better off with SDL for the cases where their functionality overlaps.

Beyond that, you're best off using the API provided by your toolkit if it has one (GTK has gtkglext, for instance), or, failing that, whatever the native API is.

Gail said...

That's interesting - I have heard that many games (for example) that use OpenGL at all do not use GLUT, though some do. It was actually on this forum post that I saw this, written by the tutorial author (though he did say he "believes"). Nice to know that it is well used after spending some time learning it.

In my first project, I will be using OpenGL and GLUT straight up to visualize the result of some 3D reconstruction from slices I will be doing. Keeping that simple. Not sure what I will be doing for the thesis yet (I plan to write about that later on).

robert said...

This is going to sound dumb, but I find the best thing to learn opengl from is... the opengl specification document.

Yeah, it's pretty terse, but it does actually explain things quite well and you know for sure it won't give you someone's crazy misleading interpretation of how things work, because you are reading the gospel.

And you won't have to wade through someone else's tutorial examples complete with disgusting programming style to see whats going on.

Most of all, it shows how there's nothing to be scared of in opengl as it's all pretty straightforward.

robert said...

Oh and I find the quickest & simplest way to get GL coding is to use Qt.

Subclass QGLWidget with your own paintGL() function, drop it in your app and you're done.

Depends if you're c++-phobic really.

ARBaboon said...

NeHe ( is the best reasource that I have found. I have to second GtkGLExt. Gtk+ is very well designed and GtkGLExt makes it a simple as saying "make this widget use OpenGL." It also provides offline drawing which can be a pain to do cross platform. If you want to do special effects that is all you need. If you want to do complex 3D you are going to want think about a scene graph.

Gail said...

Thanks for the comments, robert and arbaboon.

I definitely don't think looking at the OpenGL doc is a dumb-sounding idea, and will definitely do that eventually. What I'm liking about the video tutorials is that it's easier to focus for the 12 minutes each one runs than it is to stare at documentation the first time. But once that hump is crossed, I will definitely move on to things like the spec. Glad to hear it's actually well documented.

I will also definitely check out those links.

Gregg said...

hi i happened onto your page, another alternative to sdl is sfml which is more up to date, also, checkout for some excellent starter tutorials, as for GTK or GTKGLext, these are far more complex, you should start with sdl and sfml(there are others, you can visit forums and you will find somewhere a list of a lot of free opengl libraries) and get used to opengl drawing, then you can jump into GTK, but that's just my opinion

Ruben Penalva said...
This comment has been removed by the author.
Ruben Penalva said...

I really dont recommend the nehe tutorials to learn opengl. See this link for more info about it:

There are two basic books on opengl that everybody learning opengl must read:
- The red book: "OpenGL Programming Guide"
- The orange book: "OpenGL Shading Language"

Hope this help,
Rubén Penalva

PS: In the previous post the url was not correct displayed, I have modified it.

Bharathan said...


I stumbled upon your blog while searching for Qt + OpenGL + Python tutorials. I am a B.E. student from India and I'm interested in Graphics and visualization. I second the recommendation for Qt + OpenGL. I believe its really powerful, especially for data visualization. I am new to all of this as well and trying to learn OpenGL and DirectX in my spare time.

Good post!!

Gail said...

Hey Bharathan - thanks for stopping by! I actually never got the chance to take some of these recommendations, but now that I'm reminded of them, I definitely should!

Post a Comment

Comments are moderated - please be patient while I approve yours.