Jump to content

  • Log In with Google      Sign In   
  • Create Account


OpenGL Learning Resources


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 jackdbunny   Members   -  Reputation: 122

Like
0Likes
Like

Posted 31 January 2011 - 06:04 PM

So, entering into my last year of my degree program, I decided I'd like to finally get around to working on some game development (comp sci major). I'd done a lot with DirectX 7 a long time ago, but I never completed a project. I decide to start small with a 2d Tetris clone. I found some tutorials and got the game about half complete or so. I show my friend (who has completed several games) what I've got and he's happy for me. He then adds, "But you're using all the deprecated stuff." My immediate reaction was, "Huh?" He explained to me about OpenGL immediate mode and how new things were done in OpenGL 3.xx and 4.xx and they seemed more in line from what I remember about DirectX. I resolved that I would go and learn the new way to do things and.. I hit a brick wall.

First of all, how do you even know what's deprecated?

Second of all, I can't seem to find any tutorials that are usable for OpenGL 3 or 4. The few that I have found are so full of game framework stuff and extraneous code that it's difficult to wade through it all. Of course, I can wade through the documentation on opengl.org, but I was really hoping to find something to get me going a little quicker than that. I have seen numerous recommendations that people start with 2.0 and then migrate to other versions, but I have seen just as many recommendations that condemn these suggestions and say that it will only teach bad habits.

Of course, I don't have to use the newest API for a 2D Tetris game, but my goal was to learn using this game and then move up to something more difficult. Can someone please offer some guidance in the way of suggesting a tutorial or book that is at least somewhat up to date? My frustrations have forced me into contemplating going back towards a DirectX route. At least there seems to be a plethora of DirectX 11 tutorials. Any help would be greatly appreciated.

Sponsor:

#2 karwosts   Members   -  Reputation: 840

Like
0Likes
Like

Posted 31 January 2011 - 06:11 PM

If you want to see what's deprecated, the reference card is a quick place to check:

http://www.khronos.org/files/opengl4-quick-reference-card.pdf

Any functions that are in blue are deprecated.

There's really not that much you need to know to be up to date, basically all boils down to:

1) Don't use the fixed pipeline for anything
2) Handle your own matrices
3) Use generic vertex attributes/uniforms with shaders
4) Don't use built-in lighting commands

Just following those rules will get you 95% up to date with modern opengl. Picking out any one of those items I'm sure you can find tutorials, so it's not too difficult.
My Projects:
Portfolio Map for Android - Free Visual Portfolio Tracker
Electron Flux for Android - Free Puzzle/Logic Game

#3 V-man   Members   -  Reputation: 797

Like
0Likes
Like

Posted 31 January 2011 - 07:45 PM

People who write tutorials are people who do it in their spare time and have a website. I imagine there aren't many such people.
Personally, I contribute to the Wiki in my spare time.

First of all, how do you even know what's deprecated?

karwosts answered that.

Also, you make a forward context (not backward compatible context).
See some tutorials here http://www.opengl.org/wiki/Tutorials

It is possible to use GL 2.0 while and avoid deprecated stuff. If one day you decide to more to GL 3.3 or GL 4.0, it becomes much easier. You would just add VAO support and change the shader code a little.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);

#4 jackdbunny   Members   -  Reputation: 122

Like
0Likes
Like

Posted 31 January 2011 - 07:54 PM

Thanks very much for the replies.
I didn't mean to sound ungrateful to those that write the tutorials, I was just a bit frustrated at the time. I'd also accept recommendations on books, but I forgot to mention that.

I will do some research in those specific topics and look at the list of deprecated methods. Thanks very much!

#5 GothSeiDank   Members   -  Reputation: 156

Like
1Likes
Like

Posted 02 February 2011 - 06:55 PM

I am having the same issue currently. However, I found this:
http://www.arcsynthesis.org/gltut/

This is a really cool tutorial regarding OpenGL 3.X.
Worth a read. Although I did not manage yet to get my ortho matrices working.
If you say "pls", because it is shorter than "please", I will say "no", because it is shorter than "yes"
http://nightlight2d.de/

#6 playstation   Members   -  Reputation: 146

Like
0Likes
Like

Posted 03 February 2011 - 05:14 PM

I am in the same position as you. Just started with OpenGL and want to learn GLSL. 2.0 is still great but immediate mode for rendering is no longer used and for cool graphic effects shader GLSL is a must. Mainting the martices on your own :confused: vertex array and VBO are used now. I am also looking for some great tutorial on these, books.

What about these books are they good with examples code explained ? Orange book GLSL in particular
http://www.opengl.or...hading_language

I am having the same issue currently. However, I found this:
http://www.arcsynthesis.org/gltut/

This is a really cool tutorial regarding OpenGL 3.X.
Worth a read. Although I did not manage yet to get my ortho matrices working.



Thanks for the link :) I will have a go at it

#7 GothSeiDank   Members   -  Reputation: 156

Like
0Likes
Like

Posted 03 February 2011 - 05:21 PM

Everything works now for me.
Was a good read so far. I am not finished with that tutorial.
But if you like to see the difference between my Code with OGL 2.0 and now, see this link:
http://code.google.com/p/nightlighttv/source/diff?spec=svn43&r=43&format=side&path=/NightLight/trunk/NightLightDLL/NLQuad.cpp&old_path=/NightLight/trunk/NightLightDLL/NLQuad.cpp&old=41

However, the architecture of that code is still somewhat archaic and I will change the whole thing the next days to make it more batchfriendly.
If you say "pls", because it is shorter than "please", I will say "no", because it is shorter than "yes"
http://nightlight2d.de/




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS