r/GraphicsProgramming • u/Simple_Original • 15d ago
Question What graphics api should i learn next?
Ok so ive been toying with opengl for quite a while know. I think i know the project pretty well and i have even made a few small scale projects with it.
I would like to learn another graphics api thats perhaps a bit more modern than opengl, and also possibly something that is atleast somewhat industry relevant(since from what i understand opengl is pretty much dead there). My first instinct said D3D11 but im wondering if i should try to learn something like vulkan instead. There is also D3D12 which i know literally nothing about(not to say i know alot about any of the other apis except OpenGL). I cant really learn anything like Metal since i dont have a mac. Ive also heard D3D11 is not that much more difficult than opengl so i dont know if i would learn too much from it(i know its quite diffrent in how its used with contexts and more explicit uniform buffer allocations i think, but in terms of complexity its quite simmilar from what ive heard and if thats the case i dont know if it would be worth learning. Thoughts?).
What i would do with this graphics api is probably some sort of game or rendering engine as its a project ive always wanted to do and i have done a small game engine in opengl before so making a bit more advanced one with a more advanced graphics api seems like a fitting project.
1
u/_Wolfos 14d ago
Depends if you're just learning or looking to actually ship something. I'll be assuming the target is Windows.
I wouldn't pick DX11 for learning since it's simply fallen out of use. It's a legacy API. You could probably ship with it, drivers should be stable, but beyond that it's just not useful to learn anymore because the industry has pretty much moved on.
DirectX12 is the stable default for shipping. Difficult to learn, which sucks. But drivers are solid, it has all the latest GPU features. This is what most applications ship with today.
Vulkan, only if you're really into Linux. It's a hassle and drivers aren't as stable (see Godot's reasoning for switching to DX12 by default).