Advertisement

OpenGL ES 2.0 rant

Started by October 29, 2013 05:17 PM
17 comments, last by LNK2005 11 years ago
In the old C/C++ days, I thought I had a pretty good handle on OpenGL. Even wrote a few working games with some semi-advanced effects.
Much later I learned ES 1.0 for Android, which was a relatively smooth transition. Sure, some pieces are missing, but it's basically the same. Understanding Java thread concurrency is a pain, but doable.
Now, I'm reading about ES 2.0 and can't for the life of me understand a single damned thing. Even something as basic as positioning the camera is now a complete and utter mystery. OpenGL used to be soft, friendly, intuitive. Now it's morphed into its own evil, uncanny twin; almost familiar, but subtly and fundamentally twisted.
Am I just stupid? Or are the API designers sadists?

The switch came with moving to the programmable pipeline. Newer versions of normal OpenGL and Direct3D have gone the same way. If you want to use all the newest features and write using the fastest code paths you'll have to get used to it I'm afraid. For the 'missing' APIs, things like setting up a projection matrix, there are plenty examples of how to do it online - just write or grab a function to do it. You'll have to get used to some proper 3D maths for the GLSL shaders you write though - the basic stuff is pretty simple and again there are lots of examples about.
Advertisement

An easier transition for you might be to begin learning this stuff with desktop GL, which allows you to mix-n-match "old style" with "new style" (porting an existing program might be a good exercise). Longer term you'll want to switch over to a fully shader-based approach of course (and once it clicks with you you won't want to go back) but sticking with ES for the purposes of this change is kind of in at the deep end; it's an all-or-nothing change.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

I know about the change and the reasons for it; I just hate having to relearn stuff that have worked perfectly well for the last couple of decades. Makes me wonder. What is stable in life? Can we really trust in anything?

The pipeline change gives me the same feeling as if someone declared 2+2=5, and that there are very good, pragmatic reasons to do so.

Sorry, still in rant mode;-)


An easier transition for you might be to begin learning this stuff with desktop GL

Definitely. There are a lot of materials on the subject. There are some good, in-depth tutorials here.


allows you to mix-n-match "old style" with "new style"

I strongly vote against mix-n-match. You need to know FF and programmable pipeline pretty good in order to get to them play well together. Not recommended for a beginner.

I know about the change and the reasons for it; I just hate having to relearn stuff that have worked perfectly well for the last couple of decades. Makes me wonder. What is stable in life? Can we really trust in anything?

The pipeline change gives me the same feeling as if someone declared 2+2=5, and that there are very good, pragmatic reasons to do so.

Sorry, still in rant mode;-)

Man oh man, everybody switched to programmable pipeline almost a decade ago. Didn't you get the invite?laugh.png

I can relate to your frustration, but trust me - this change is really for the best. It's going to make you way better in graphics then you are now.

Advertisement

desktop GL seems to be good advice, I'll check it out. Thanks.

Man oh man, everybody switched to programmable pipeline almost a decade ago. Didn't you get the invite?laugh.png

Got the invite, but kept sending "let me get back to you" replies until Android forced the issue.

Oh well. Conservatism isn't what it used to bedry.png

Have no idea why I don't see vote buttons, but thumbs up from me!

Definitely. There are a lot of materials on the subject. There are some good, in-depth tutorials here.

Good tutorial. Thanks.

This topic is closed to new replies.

Advertisement