Advertisement Jump to content
Sign in to follow this  
Angelic Ice

OpenGL Learning a Graphics API

This topic is 794 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello forum!


I'm tending to learn a Graphics API/library. My experience is limited to SFML 2.


OpenGL and Vulcan come to mind. Direct3D is not really in my interest, as it is platform dependent.

Finding tutorials for OpenGL seems to be a struggle on its own, especially when looking for something fresh like 4.5.


There are so many things for OpenGL, some tutorials seem to use libraries that comprehend for features that got removed (GLM for some fixed functions?).

Additionally, there is GLSL that seems to be another language using OpenGL, GLEW and GLFW...

I know that GLSL is used for shaders. SFML's openGL context permits using GLSL to create effects and such.

Could somebody explain what the rest are? I probably need some way to invoke OpenGL into my code.
SFML seems to be able to do that but then again, I want to learn OpenGL and not how SFML uses OpenGL.


Many posts about how-to-learn OpenGL also state that there are no good books or tutorials. Did that change?


About Vulcan, read that it is more low-level than OpenGL. Some say, it might be the future but others say, as OpenGL will continued to be developed, both will co-exist.

I think, it is healthier to first learn OpenGL then? Would my knowledge carry over to Vulcan?


Thanks for taking your time to read my thread : )!



Share this post

Link to post
Share on other sites

Wow, thanks a lot!




OpenGL is a single specification for Windows/Mac/Linux, but in reality it's at least 7 different libraries that all try to behave the same: NVidia Windows, NVidia Linux, AMD Windows, AMD Linux, Intel Windows, Intel Linux, Apple MacOS... In reality, they won't behave the same, so it's important to test your application on all 7 versions of "OpenGL". Apple is the only sane platform where a single party dictates the implementation, instead of it changing with each GPU vendor...


There is no abstraction that does this for me? Probably not, since the behaviour is not predictable?

I know there exists no "write once, run it everywhere", but the idea to manually test whether a GPU interprets my code the same... sounds really harsh. I just got very curious about shaders and all those interesting topics (reflections, lighting, ..) and thought learning a graphics API would be valuable.


I always thought that OpenGL is supported by most modern GPUs and therefore should work the same, haha. Supported seems to be a stretchy term.


Nonetheless, thanks for all these bits of information!

Edited by Angelic Ice

Share this post

Link to post
Share on other sites

I think you are going to find out eventually that 'learning' OpenGL doesn't really gain you anything, and that I mean, its just an API, learning OpenGL in the sense of the word meaning learning the API. The API by itself does not do anything beside provide a mean for HW accelerated rendering. The fundamentals is what you are after, or what I would suggest you learn as those are not tied to any specific API. 'Learning' OpengGL does not teach you lighting, tranforms, shaders and other graphic techniques. OpenGL is just one means to express those techniques, so if that is your goal then I suggest you rethink your approach. Learning the fundamentals will give you more breadth of knowledge, and then when it comes to the application/expression, you'll find that you have more choice in what API to use to achieve your goal, instead of pigeonholing yourself to say I'm just going to learn this one thing.

Share this post

Link to post
Share on other sites
cgrant, yes, you are probably right! I rather want to understand how to express my graphical necessities in general instead of a certain API.
Which of course includes studying those areas.

Let me maybe rephrase my intention: Is there an easy way to display shaders, reflections/lighting, ... so I get that job done of sub-elements (window context, models to test lighting on, ...) and can concentrate on how the logic works?
Maybe as in working in a sandbox? Applying GLSL-ish effects on pre-generated dolls and being able to try myself at providing a rendering procedure of that doll?
An engine could suffice. Though they would deny myself the chance to go onto lower levels. What if I want to implement the rendering for such a generic doll just to learn on how to work with vertices and such in 3D?
Are there any such environments? I somewhat doubt it : /

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!