Sign in to follow this  
retsgorf297

Opengl ?.x and what Tutorial


Recommended Posts

retsgorf297    124

I have just started reading NeHe's tutorial (OpenGL 1.x) and have now been told that it is old and that I should learn a newer version.  I am ok with it being harder. What version should I learn?  I am guessing it would be the newest (4.4 - I think).  My computer does support OpenGL 4 (OS: OS X 10.9 Mavericks).  Even though I am programming using Objective-C with the Cocoa API, I know C++ and WinAPI, so I can easily translated it.  Next, What is a good tutorial for the version of OpenGL that you said for the first question?.

 

Thank you very much,

retsgorf

Edited by retsgorf297

Share this post


Link to post
Share on other sites
KaiserJohan    2317

http://www.arcsynthesis.org/gltut/Basics/Basics.html is the best source of modern OpenGL 3.x+ tutorials I've seen. Very informative and goes into great detail at everything. 

 

There are more 3.x tutorials than 4.x tutorials and also 4.x is not supported on all that many hardware, I believe any Intel laptops only support up to 3.1 or 3.2 last time I checked. 

OpenGL 3.3 is a good aim, it was released at the same time as OpenGL 4.0 too I believe and the differences is that OpenGL 3.3 is more widely supported.

Edited by KaiserJohan

Share this post


Link to post
Share on other sites
retsgorf297    124

I know mine supports up to 4.1.  What's the difference between 3.x and 4.x.  And, Won't 4.x kinda be the future of it, until 5.x, etc..  If it would be, then wouldn't it be better to learn it?

Share this post


Link to post
Share on other sites
satanir    1452

See Wikipedia for a list of changes.

If you no DX, then OGL equivalents are roughly:

OGL 3.1 => DX9.0c

OGL3.2 => DX10

OGL3.3 => DX10.1 (but no compute shaders)

OGL4.0 => DX11. No UAVs, no CS

OGL4.4 => DX11.1

Again, very rough comparison.

 

Unlike the move from DX9 to DX10 - which was a major API change - OGL versions are incremental. There are a few deprecated features from version to version, but that shouldn't be a concern for you.

 

Given all that, it doesn't really matter were to start, as long version>=3.0. Make sure you learn the programmable pipeline and not the fixed-function pipeline(shaders good, glBegin()/glEnd() bad!).

 

There are some very good tutorials here.

Share this post


Link to post
Share on other sites
Carducci    172

Ok, Thanks.  And a quick question, Why is everyone voting for 3.x?  I would think that 4.x would be better since it is newer.

 

I think because opengl 3.x introduced the programmable pipeline. Opengl 4.x just added a bunch features. If you understand opengl 3.x it is very easy to transition to opengl 4.x. So it is important that you learn the programmable pipeline and not the fixed pipeline of opengl < 3.x.

Share this post


Link to post
Share on other sites
retsgorf297    124

@Carducci  Yeah, I get that.  But, since 4.x just adds more features, wouldn't it be better to learn those a long with it, instead of learning something older so you can switch to the newer one easier?

Share this post


Link to post
Share on other sites
retsgorf297    124

Ok, I have narrowed it down to two questions.  Since I like the poll feature on this site, I am adding another question.  I will have it up soon.

 

Thanks,

retsgorf

Share this post


Link to post
Share on other sites
TheChubu    9452

Think it like this:

 

Don't think of whatever is available today. OpenGL 4.3 or OpenGL 4.4? Yeah, only a handful of cards, no point in learning it right? Well not exactly...

 

The process of learning isn't instantaneous, and, for example, advanced global illumination techniques isn't something you're going to code next month precisely. What I mean is that by the time you get to learn, know and use effectively say, OpenGL 4 features, probably there will be many cards supporting it on the market.

 

And in the case that you do get to be a great OpenGL coder that knows how to use all the advanced features of OpenGL 4+ and still its uncommon in the market, it is very likely that with that knowledge you could knock off an OpenGL 3 port without a sweat.

 

Don't decide stuff like this from a "right now" perspective (this is specially true dealing with rapid evolving technology!), try to think with a bit of foresight.

 

My 2 cents.

Share this post


Link to post
Share on other sites
satanir    1452

Let me reiterate what I said - as long as it's programmable pipeline, it doesn't matter which API version you choose.

Let's say you decide to start with OGL 4.4.

The first tutorial will probably be on how to create a glContext, same for all API>3.0.

The second tutorial will be about clearing the screen. Same for all API>3.0.

The 10th tutorial will probably be some kind of cube with simple shaders. Same for all API>3.0.

 

It's going to be at least 50 tutorials before you get to OGL 4.0 features. It's like asking 'should I start with DX10 or DX11'? which is irrelevant question.

You should start at the beginning - which is the same for every GL version > 3.0.

Share this post


Link to post
Share on other sites
Carducci    172

@Carducci  Yeah, I get that.  But, since 4.x just adds more features, wouldn't it be better to learn those a long with it, instead of learning something older so you can switch to the newer one easier?

 

The basics of opengl 3.x and 4.x are the same if you use the programmable pipeline. The features are nice, but if you are beginning with opengl you aren't going to use them in while. It is more important that you learn the basics of the programmable pipeline. If you understand this it is very easy to switch to a newer opengl version with feature you want to learn.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this