OpenGL : Where start?

Started by
7 comments, last by KittyPlaysViolin 11 years, 4 months ago
Once I've mastered SDL, I think is time to go forward and go for some 3D applications to learn more. I choosed OpenGL to study, but I really don't know how to begin...

What are the basics of OpenGL? How can I improve my skills to start programming small 3D Games?
Advertisement
Maybe you could start with the NeHe Tutorials: http://nehe.gamedev.net/

or maybe this one is more up to date.. http://www.opengl-tutorial.org/
I strongly recommend learning modern, shader-driven OpenGL. The vast majority of OpenGL resources on the net cover the classic, fixed-function pipeline, but there are a few good tutorials out there to help get you off the ground. I really like the Learning Modern 3D Graphics Programming tutorial by Jason McKesson. I've been around OpenGL for years, but only recently got into the modern stuff. And that's what I used. And I know a few newcomers to OpenGL who found it useful.

You might also find the 5th edition of the OpenGL Superbible useful to start with. I first learned OpenGL from the 2nd edition some years ago (still have it on my shelf). I picked up the Kindle version of the 5th edition earlier this year to help me along with the tutorial above. I think it's perfect for beginners. The author shields you from the nitty-gritty details of shaders for the first few chapters via a utility library he put together. I think it's a great way to get started with the concepts and without getting bogged down by the technical details. But he gets into the shaders around Chapter 6.

Once you're comfortable with simple OpenGL stuff, another book you might find useful is the 6th edition of Edward Angel's Interactive Computer Graphics book. It teaches some graphics theory and algorithms specifically using shader-based OpenGL.

All 3 of these books together should go a long way toward getting you where you want to be. Of course, there are other great books out there that any graphics programmer should have on his shelf, but these are good to get started.

EDIT: fixed the links.

I strongly recommend learning modern, shader-driven OpenGL. The vast majority of OpenGL resources on the net cover the classic, fixed-function pipeline, but there are a few good tutorials out there to help get you off the ground. I really like the Learning Modern 3D Graphics Programming tutorial by Jason McKesson. I've been around OpenGL for years, but only recently got into the modern stuff. And that's what I used. And I know a few newcomers to OpenGL who found it useful.

You might also find the 5th edition of the OpenGL Superbible useful to start with. I first learned OpenGL from the 2nd edition some years ago (still have it on my shelf). I picked up the Kindle version of the 5th edition earlier this year to help me along with the tutorial above. I think it's perfect for beginners. The author shields you from the nitty-gritty details of shaders for the first few chapters via a utility library he put together. I think it's a great way to get started with the concepts and without getting bogged down by the technical details. But he gets into the shaders around Chapter 6.

Once you're comfortable with simple OpenGL stuff, another book you might find useful is the 6th edition of Edward Angel's Interactive Computer Graphics book. It teaches some graphics theory and algorithms specifically using shader-based OpenGL.

All 3 of these books together should go a long way toward getting you where you want to be. Of course, there are other great books out there that any graphics programmer should have on his shelf, but these are good to get started.

EDIT: fixed the links.


I echo http://www.arcsynthesis.org/gltut, it is the best and most in-depth OpenGL tutorial you could ever ask for.
Do you have any advices about algorithms that I probably will need to use when start on 3D? Or ideas of small games that I should make to put my skills on prove?
I'd suggest going through the tutorials first before setting your sights on a game project, it's quite alot you need to setup and understand if you want to work on this low level.

Do you have any advices about algorithms that I probably will need to use when start on 3D? Or ideas of small games that I should make to put my skills on prove?


I wouldn't worry about games yet. Becoming proficient at 3D graphics programming is an iterative process. There's a lot of learn and understand, especially so with shader programming, since you have to implement a number of algorithms yourself that were once handled by the driver. My advice is to follow the tutorial I linked above step by step, making sure you understand each step before you move on to the next. Enhance that with the OpenGL Superbible. Eventually, you'll move from rendering an untextured triangle to composing scenes full of moving objects. That's the point at which you might want to consider making a game. A great first game to make I think would be a 3D version of asteroids. If you can do that, you'll know you've understood the basics.
Thanks for the advices.
I hate to jump into this thread so late, but I found myself in a similar situation to the OP. My programming knowledge mostly consists of Java and some minimal C++ and Python(only enough to read and understand very basic code). I tried to start with LWJGL but found myself lost as I could not find any tutorials on LWJGL, and the scarce few that I found only taught the deprecated fixed function pipeline.

I also wish to jump into OpenGL, but all the tutorials I have found(including the ones suggested above) are in C/C++. So I was wondering, is there an alternative here, or do I just have to bite the bullet and learn C++? And if so to what extent?

-Adrian

This topic is closed to new replies.

Advertisement