Jump to content

  • Log In with Google      Sign In   
  • Create Account

OpenGL learning methodology


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 martinradev   Members   -  Reputation: 157

Like
0Likes
Like

Posted 28 July 2014 - 03:38 AM

Hello,

 

I started recently to learn OpenGL. However, I find it a bit confusing at the beginning to start learning it in right way due to many tutorials being deprecated and new ones not being as good as they could actually be.

 

I will explain the path I have chosen so far and I hope I get some feedback.

 

Here is how I started.

- https://www.youtube.com/watch?v=FhQBsV-zdqI&list=PLBl6D3wTfGysAPFL0rvDo4NBqhBQsOxkR . I started with these tutorials. I believe they could be quite deprecated, but it seems they are quite fine explained for beginners.

- Latest edition of the red book

 

Meanwhile I will embark on some project just to use what I have learned so far.

 

So, my question is whether I should really start with something deprecated and probably not done in the right way or I should just go with the latest version of the red book?

 

How have you started? What do you think is important?

 

Greetings,

Martin


Edited by martinradev, 28 July 2014 - 03:38 AM.


Sponsor:

#2 TheChubu   Crossbones+   -  Reputation: 4757

Like
3Likes
Like

Posted 28 July 2014 - 03:59 AM

I say: Go with shaders. Fixed function pipeline OpenGL is pretty darn old, shaders are nice, you can do cool stuff with them. "Modern" OpenGL is nicer to use too (ie, OpenGL 3 and up).

 

How have you started?

I started with OpenGL 3.3, basically with barely any knowledge about C++ (or OOP in general) and a kinda basic idea on linear algebra (linear systems, basic transformations). So I just banged my head against it again and again until stuff started to make sense. Wouldn't you know it, after a while you start to Google around for stuff you want to make yourself instead of reading some tutorial that says what you have to do.

 

I started here http://www.arcsynthesis.org/gltut/ reading it again and again until the concepts started to sink in. I'm not a big fan of C++ so I didn't invested much time programming at first, rather I poked at the example sources. After a while I was getting the hang of it so I started implementing things in my language of choice, and started to build up from there. First project was drawing a triangle to screen, second project was drawing an entire heightmap to screen with a flying camera, then added directional lighting and basic "stick to the ground" navigation, then I had a break from graphics and now I'm back at it trying things I haven't done before (deferred renderer, other kinds of lighting, texturing, specular, etc).

 

At least in my case I didn't needed a full book to start with, nor for a long time. That online book I linked was enough to get started. Right now I do have a 5th edition Red Book when I need to look for specific things, since now at least I have an idea on what to look for. For many things I've also asked here in the chat, various knowledgeable people log in from time to time and its excellent when you need fast "yes" or "no" questions answered (which otherwise lead you to a lengthy revision of an entire chapter on the subject if you looked at a book just to find that one thing you're trying to do).

 

What do you think is important?

Jumping straight to what you want to do. If you have a clear goal on what you want to do, half the time the "step by step" procedures to learning something can get tedious. Some might tell you "Oh, you first start with fixed function to get your feet wet, then you can see a little of 2D graphics, then you can start with 3D graphics, then you can move on to shaders, then..." And so on.

 

If you're determined to do one of those things specifically, jump right at it, otherwise you might lose interest in the whole thing along the longer road.

 

EDIT: Oh and learning with video tutorials is slow as snails. Reading is more cost effective, in my case at least.


Edited by TheChubu, 28 July 2014 - 04:08 AM.

"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


#3 JoeyDewd   Members   -  Reputation: 610

Like
1Likes
Like

Posted 28 July 2014 - 05:30 AM

I'd suggest against learning the deprecated functionality first before learning modern OpenGL if modern OpenGL is your end-goal. The deprecated functionality doesn't translate too well to modern OpenGL concepts so most of your time learning the old OpenGL would be wasted. Learning old OpenGL is nowadays only useful if you're targeting low-end platforms, but even those are getting more scarce.

 

Learning modern OpenGL also has the advantage that you need to understand good concepts of graphics programming before actually being able to draw cool stuff, which makes you a better graphics programmer in the end.

 

Regarding decent modern OpenGL tutorials, I think there are a few good online tutorials out there that will at least get you started in the right direction before embarking into more 'reference-like' books. One of the good online tutorials is Arcsynthesis as TheChubu mentioned. You can check one of my previous posts to see a (relatively small) list of good modern OpenGL tutorials nowadays where some might suit your needs more than others.


Edited by JoeyDewd, 28 July 2014 - 05:42 AM.


#4 martinradev   Members   -  Reputation: 157

Like
0Likes
Like

Posted 28 July 2014 - 03:56 PM

Unfortunately, it seems the newest version is 3.0 in my case. I am using the Intel HD Graphics 3000 and Ubuntu as OS. Is this a huge drawback?



#5 TheChubu   Crossbones+   -  Reputation: 4757

Like
0Likes
Like

Posted 28 July 2014 - 05:17 PM


Unfortunately, it seems the newest version is 3.0 in my case. I am using the Intel HD Graphics 3000 and Ubuntu as OS. Is this a huge drawback?
Hm, Intel drivers on Linux are open source, developed by Intel itself. That team works on Mesa, which is an open source driver stack for Linux. Now, as far as I know, Mesa currently has all of OpenGL 3.3 implemented and they're working on OpenGL 4 features, I'm not sure for HD 2000, but HD 3000 should support all of OpenGL 3.3 in Linux.

 

Probably after an update (or in a newer Ubuntu release) you should have OpenGL 3.3 compatibility.


"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


#6 3TATUK2   Members   -  Reputation: 730

Like
1Likes
Like

Posted 28 July 2014 - 05:57 PM

http://www.arcsynthesis.org/gltut/
http://ogldev.atspace.co.uk/
http://www.opengl-tutorial.org/
http://lazyfoo.net/tutorials/OpenGL/
http://open.gl/
http://antongerdelan.net/opengl/
http://www.mbsoftworks.sk/index.php?page=tutorials&series=1
http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/
http://www.ozone3d.net/tutorials/



#7 martinradev   Members   -  Reputation: 157

Like
0Likes
Like

Posted 29 July 2014 - 03:06 PM

No, I use the latest dev version of Mesa and the opengl version is 3.0. I am stuck with it.






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