upvote
> If you're looking for fundamental material, the last thing you want is learning a very (not slightly) outdated and weird API.

I've never seen a more detailed tutorial than LearnOpenGL that actually goes through the concepts of graphics programming thoroughly and actually make things other than just "learn how to use the API". That alone should be enough to cement the site's longevity.

> And OpneGL is worse

It's never late to learn Vulkan / DX12 after learning learnopengl.com! The value of learnopengl.com isn't in the APIs, it's about learning the basic concepts of graphics programming. If you start learning with Vulkan without any prerequisite knowledge, you'll be bogged in low-level details from the start that isn't really related with learning the actual fundamentals. (And you'll probably have to unlearn Vulkan and DX12 again once a new API has surfaced)

reply
> It's never late to learn Vulkan / DX12 after learning learnopengl.com!

Why would you do that? Why would you want to learn an API for graphics cards from the 90s instead of an API for the graphics card from the 2010s?

> The value of learnopengl.com isn't in the APIs, it's about learning the basic concepts of graphics programming.

Then you should learn concepts of graphics programming that isn't defined with code snippets like

    #version 330 core
    struct Material {
?

> And you'll probably have to unlearn Vulkan and DX12 again once a new API has surfaced

Strange. You "have to unlearn a newer API when an even newer one has surfaced, but you should learn this ancient API anyway".

Edit. See also another comment: https://news.ycombinator.com/item?id=49027094

reply
Have you actually read the linked site beyond its name? The site is about fundamentals. Yes, it contains OpenGL code, but what it covers is the fundamentals of real time graphics, not just OpenGL API.
reply
> Have you actually read the linked site beyond its name? The site is about fundamentals.

Is it? All the fundamentals are tied to how it's done in OpenGL with somewhat sparse explanations in between. And many "fundamentals" are literally something like

    #version 330 core
    struct Material {
reply
Yes, it is. Most articles there are practically API-agnostic. Just because the code examples happen to be written with OpenGL it doesn't mean it's about OpenGL.

https://learnopengl.com/PBR/Lighting

Even the code snippets start with "#version 330", if you implement these in another tech stack (say vulkan+slang) the relevant shader code would look very similar. It's quite strange to me that you think just because of "#version 330" it's not about fundamentals, tbh.

reply
It's not just because of that. Everything is steeped in OpenGL API. All the "fundamentals" are about OpenGL.

Another link floated to the top of HN discussion just now, and every sibgle link there is better than these "fundamentals": https://news.ycombinator.com/item?id=49022038 E.g. "Computer Graphics from Scratch" https://gabrielgambetta.com/computer-graphics-from-scratch/ or Mathematics for Computer Graphics https://www.amazon.co.uk/Mathematics-Computer-Graphics-John-...

reply
Here's the Vulkan version of that:

    #version 450
    struct Material {
Despite the name, GLSL is still used all over the place in Vulkan pipelines. The site teaches you the shader approach (rather than the fixed function pipeline of the 90s) which is what the "modern" Vulkan stack uses too.
reply
That was the absolute minimal example of where "fundamentals" immediately devolve into a very specific code targeting a very specific API. See also sibling comment: https://news.ycombinator.com/item?id=49027094
reply
> And OpneGL is worse

I disagree. OpenGL is truly bad, but there is no API in this world as bad as Vulkan.

reply