Live data from Hacker News

Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

learnopengl.com

11–20 of 148 posts

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#11
post #8

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

OpenGL is not obsolete and is totally fine for many use cases. Vulkan is way too complicated and cumbersome for many. Even if OpenGL doesn't get new features what exists now will continue to work for decades.

The problem with OpenGL isn't so much that its programming model is outdated, but that it is an incredibly confusing and (in many places) just plain badly designed API (just look at VAOs, it's hard to come up with a more broken and useless feature - some of the problems have been salvaged on more recent OpenGL versions, but those are not portable to macOS or GLES3.x).

Another (related) problem is that the many sediment layers that have accumulated over nearly three decades are not clearly separated (and Vulkan is starting to suffer from the same problem btw, there's always at least five different ways to do the same thing, three of which are outdated or not recommended to be used on specific GPU architectures, and the other two have complicated relationships and interdependencies with other redundant or optional features, it's apparently some sort of Khronos curse to always create the biggest possible mess when it comes to 3D APIs).

On Windows (maybe even on Linux via Proton), starting with D3D11 makes a lot more sense, or on macOS with Metal v1. Both APIs are 'close enough' to modern 3D APIs to carry a lot of the knowledge over, but without being too low-level like Vulkan or D3D12, WebGPU running in browsers is also a good choice (even though it inherits some bad design decisions from Vulkan 1.0 when it comes to resource bindings, and is in some places actually slower than WebGL2).

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#12
post #9

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

It's so much easier than Vulkan or writing shaders and the performance is more than good enough for a lot of applications. I wonder if somebody has written a adapter layer to write old OpenGL and translate it on the fly to Vulkan?

Mesa has Zink which translates OpenGL to Vulkan. AFAIK Asahi uses it because they only wrote a native Vulkan driver for the hardware, no native OpenGL driver.

Apple themselves also don't ship a native OpenGL driver anymore, only a layer that translates OpenGL to Metal.

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#14

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

OpenGL works fine, I'm using it in my hobby game engine (shaders, not the old fixed-function OpenGL)

it also will run just fine on windows or Linux using Proton with no issues

if I had to learn Vulkan from scratch instead, that would have been a whole different animal...

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#15
post #8

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

OpenGL is not obsolete and is totally fine for many use cases. Vulkan is way too complicated and cumbersome for many. Even if OpenGL doesn't get new features what exists now will continue to work for decades.

I do agree Vulkan is too cumbersome, but OpenGL is definitely obsolete.

The OpenGL API with its binding-based approach is also very confusing for beginners, but the replacement Direct State Access API came too late (after Apple already decided they would deprecate OpenGL, so it never got supported on macOS).

And the fact that the GLSL parser and compiler are part of the driver means there are tons of hardware-specific bugs and miscompilations. Intel integrated drivers on Windows are notorious for being especially buggy.

All of those make OpenGL a pretty poor target for learning. Personally, I would recommend WebGPU to people who want to get into graphics programming. It's very similar to DirectX/Metal, and like a more streamlined Vulkan. The WGPU implementation of WebGPU has a C API, which also has C++ headers, and a native Rust API. And you can also use WebGPU in your browser from JavaScript, if you don't know any native languages.

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#16
post #9

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

It's so much easier than Vulkan or writing shaders and the performance is more than good enough for a lot of applications. I wonder if somebody has written a adapter layer to write old OpenGL and translate it on the fly to Vulkan?

> write old OpenGL and translate it on the fly to Vulkan

Apple's OpenGL on macOS and iOS has been a shim over Metal for a very long time. The feature set is stuck somewhere between GL 3.x and 4.1 though (e.g. no compute shaders), but not for technical reasons.

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#17

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

In 2026: Yes yes, please please learn this if you're beginning computer graphics. This is basically the One and Only Holy Bible of graphics programming, and dealing with a slightly outdated and weird API doesn't make it worse even a teeny bit. You will never get the same quality of fundamental education material from any of the other tutorials (especially Vulkan ones, since most of them assume you already know the basics and delve straight into writing thousands of lines of code that doesn't even perform better than OpenGL). You need to first learn the really basic things like homogeneous coordinates, matrix transforms, vertex and fragment shaders, various shading models like Phong and PBR, multi-pass rendering, etc, before actually diving into lower-level details where you want to optimize things.

Vulkan and DX12 are currently flawed APIs that are unnecessarily complex and doesn't even match the performance characteristics of current-gen hardware (see the titular post: https://www.sebastianaaltonen.com/blog/no-graphics-api) - if you want to really learn the low-level details you should start diving into something like CUDA or get into graphics driver development (start by reading Mesa open source driver code - which you will then learn why Vulkan is flawed)

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#18
post #15
post #8

Earlier quoted context omitted.

OpenGL is not obsolete and is totally fine for many use cases. Vulkan is way too complicated and cumbersome for many. Even if OpenGL doesn't get new features what exists now will continue to work for decades.

I do agree Vulkan is too cumbersome, but OpenGL is definitely obsolete. The OpenGL API with its binding-based approach is also very confusing for beginners, but the replacement Direct State Access API came too late (after Apple already decided they would deprecate OpenGL, so it never got supported on macOS). And the fact that the GLSL parser and compiler are part of the driver means there are tons of hardware-specifi…

What is the current status of WebGPU support in browsers? I tried to get into it a while ago go, when the writing was already on the wall for WebGL. But WebGPU just wasn't there yet, so I had to stick with WebGL.

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#19

The old primitive API was the best. Who invented the new shader API? They ruined my life.

If you want to use glBegin() / glEnd() - like immediate API with modern OpenGL, I reecommend using a library called RLGL (https://github.com/raysan5/raylib/blob/master/src/rlgl.h), from Raylib. You'll feel straight at home!

Re: Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

#20
post #9

In 2026: Please don't learn this; it's obsolete. Learn Vulkan (Or another modern API; or how to build engines on top of them; or how to write shaders; or how to do GPU compute using CUDA etc)

It's so much easier than Vulkan or writing shaders and the performance is more than good enough for a lot of applications. I wonder if somebody has written a adapter layer to write old OpenGL and translate it on the fly to Vulkan?

> It's so much easier than Vulkan or writing shaders

Even if you use OpenGL you still need to write shaders.

Post reply on HN