Since Opengl is the super set of opengl es , do I need to learn opengl es later on ?

Started by
3 comments, last by Jacky77 9 years, 1 month ago

Hey

Sorry if this question seems stupid , but I searched and I didn't find any result , and I don't want to waste my time learning opengl if I need to learn opengl es later anyways.

My plan is to program games in android " I already know how to program using the sdk provided but I want to develope games "

I found that opengl es is the right choice for me , but my question is , if I learn opengl in c++ and later move to opengl es " java " , do I need to learn opengl es ? or learning opengl is enough ?

Advertisement
For learning purposes, GL would work. You need to be a bit careful, though. Most of the "easy mode" learning tools for OpenGL will focus on the fixed-function stuff that is completely gone in GLES 2/3. Most of the modern "right way" learning tools for OpenGL will focus on features and functionality not present in GLES. Stick to materials that are explicitly for GLES for the most part (like http://www.learnopengles.com/) and you'll be fine. There will be some adjustments necessary when moving to mobile and GLES, but they'll be small if you take this advice.

Sean Middleditch – Game Systems Engineer – Join my team!

OpenGL ES 3/3.1 is a subset of OpenGL 4.0 (actually, I'd need a refresher of what OpenGL 4.0 has that isnt present on OpenGL 3.3). You get most of the "modern" stuff, VAOs, UBOs, FBOs, samplers, etc. Both APIs works the same, bind VAO, add attributes, bind FBO, attach textures, select texture slot, bind texture to it, etc.

On the other hand, OpenGL ES 2 is a mix and match between OpenGL 2 and OpenGL 3, some stuff isn't easily translated.

So, if you start with OpenGL 3.2+ core profile exclusively, you can move easily enough to OpenGL ES 3, and vice versa. For the most part in OpenGL ES 3 you'll find that many functions allow for less ways of shooting your foot (ie, not having 8 different default frontbuffer bindings), which is nice.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

but my question is , if I learn opengl in c++ and later move to opengl es " java "

Why not just use OpenGL ES in C++ on Android? Assuming you already know C++ (you didn’t say you do).
Or if you already know Java, why not just start learning OpenGL ES on Android via Java?

Either way, if your goal is to make games for Android, why aren’t you learning to make games on Android?


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

For learning purposes, GL would work. You need to be a bit careful, though. Most of the "easy mode" learning tools for OpenGL will focus on the fixed-function stuff that is completely gone in GLES 2/3. Most of the modern "right way" learning tools for OpenGL will focus on features and functionality not present in GLES. Stick to materials that are explicitly for GLES for the most part (like http://www.learnopengles.com/) and you'll be fine. There will be some adjustments necessary when moving to mobile and GLES, but they'll be small if you take this advice.

That's what I'm trying to avoid , I don't want to limit myself, but I want when I try to move to OpenGl ES for android I won't need to learn the basics anymore. Like when I tried to learn java " coming from c++ " I didn't need to learn the basics at all , hopefully you got the idea , learning the basics is the hard part in everything. So limiting myself to specific sources to learn is not good for me.

OpenGL ES 3/3.1 is a subset of OpenGL 4.0 (actually, I'd need a refresher of what OpenGL 4.0 has that isnt present on OpenGL 3.3). You get most of the "modern" stuff, VAOs, UBOs, FBOs, samplers, etc. Both APIs works the same, bind VAO, add attributes, bind FBO, attach textures, select texture slot, bind texture to it, etc.

On the other hand, OpenGL ES 2 is a mix and match between OpenGL 2 and OpenGL 3, some stuff isn't easily translated.

So, if you start with OpenGL 3.2+ core profile exclusively, you can move easily enough to OpenGL ES 3, and vice versa. For the most part in OpenGL ES 3 you'll find that many functions allow for less ways of shooting your foot (ie, not having 8 different default frontbuffer bindings), which is nice.

I'm planning on learning OpenGL 4, what worries me as I said is needing to learn the basics again.

but my question is , if I learn opengl in c++ and later move to opengl es " java "

Why not just use OpenGL ES in C++ on Android? Assuming you already know C++ (you didn’t say you do).
Or if you already know Java, why not just start learning OpenGL ES on Android via Java?

Either way, if your goal is to make games for Android, why aren’t you learning to make games on Android?


L. Spiro

I actually want to learn OpenGL to program simple pc games first using c++, and I thought since my goal is to program games on android , why not just learn OpenGL then move to OpenGL ES easily ? I would be killing two birds with one stone, since OpenGL ES is a subset of OpenGL. And I want to use c++ in this case since it wouldn't matter that much to me if I'm programming on pc first, but I like java when it comes to programming on android since dealing with android is already painful enough " when your project gets big and you miss testing a unit " , so not dealing with memory leak in java would be great " at least it won't happen as much as in c++ "

This topic is closed to new replies.

Advertisement