How the fuck do I learn dx12?

How the fuck do I learn dx12?
There is only one book and the Microsoft documentation page which are both shit.

Attached: DirectX12_678x452_678x452.png (678x449, 19K)

Other urls found in this thread:

khronos.org/registry/OpenGL-Refpages/gl4/
lwjgl.org/
youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
youtube.com/channel/UCsyHonfwHi4fLb2lkq0DEAA
twitter.com/SFWRedditVideos

>Using vendor lock-in microshit APIs
You're a terrible programmer.

What's the better option?

edit: There is vulkan and opengl but with vulcan I'm locked and ogl is gay and not state of the art isn't it?

Vulkan or OpenGL
also include software rendering support, even if it runs like shit, it'll make it easier for people in the future to run.

>with vulkan im locked
explain.

I thought it only runs on nvidia cards

>being this retarded
no, not at all. learn to Google. vulkan is a standard and is pretty much universal. the only cards that dont support it are simply too old to.

wow I'm actually retarded.

Does Ogl have that shiny memory management shit that vulkan and dx12 has?

What has the better learning resources?

>what has better learning resources
khronos.org/registry/OpenGL-Refpages/gl4/

>Vulkan offers another key difference to OpenGL with respect to memory allocation. When it comes to managing memory allocations as well as assigning it to individual resources, the OpenGL driver does most of the work for the developer. This allows applications to be developed, tested and deployed very quickly. In Vulkan however, the programmer takes responsibility meaning that many operations that OpenGL orchestrates heuristically can be orchestrated based on an absolute knowledge of the resource lifecycle.

is it still like that or has ogl changed? I need dat memory management

>has ogl changed
if it has, just make your application use an older version.
OpenGL is always backwards compatible, unlike Direct Shit.

If you need to ask, go with OpenGL. Vulkan is a huge pain in the ass in terms of boilerplate, especially for beginners.

Vulkan is MUCH more explicit than OpenGL, especially involving anything memory related.

don't
windows is obsolete and dead
better learn Vulkan and Qt

>Qt
no. it us unacceptable for a 3D application to use any libraries except from OpenGL or Vulkan.
retards like you that like to import lots of shit are why game devs think Linux is hard to work with.

Instead of reinventing wheel learn how to use prebuilt BMW.
lwjgl.org/

It runs on literally everything (windblows, mac, linux, android), its free, opensource and easy enough even for notch (who didnt even know what threads are) to make a game which earned him billions in about 3 years of mediocre work.

In case you want to work in different language, search
>*languge name* 3D engine library / framework
Unity and unreal engine 4 are also big memes todays.

Attached: Screenshot_2019-05-06-15-28-48.png (540x960, 152K)

muh gaymes

>Java
into the trash.

It says right there that it's not higher level than the libraries it wraps.

On technical level that is true. But if you ever seen C barebones code which calls openGL commands, you would know even this "same level wrapping library" is infinitely more pleasant to use and learn than what old school openGL dumpster fire is. It will even enable your favorite IDE to give you contextual help and outright tells you that you cant put into draw buffer triangles without first creating the said buffer and then properly setting the viewpoint.

The fact all the original calls are wrapped with classes which have their own methods makes grasping the concept easy.

And OP looked like he actually wants to learn the basics, not to make quick hgame for patreon money.

>If you need to ask, go with OpenGL. Vulkan is a huge pain in the ass in terms of boilerplate, especially for beginners.

I'm not a total beginner I think Vulkan is just fine. I need to write something new from the ground up. Have to preallocate and shit like that.

I actually meant that I need to manage the memory myself.

Don't bother, it's on the way out anyhow.

I wouldn't bother unless you want to, and honestly believe you can be, a low level game engine graphics programmer.
The modern engines are so fucking optimized it's unlikely any normal human has any chance to figure out how to still improve things.

I think the future for casual graphics programming will be lightweight, but higher level graphics libraries built on top of Vulkan for most things.

OpenGL has changed a lot in its life. When it first came out, it was really, really terrible actually. Couldn't do much, much of the interesting shit was locked behind fucking vendor extensions and the immediate mode meant that CPU and GPU always had to wait for each other.

If you really want to learn OpenGL and whatever tutorial you see mentions glBegin and glEnd, click that shit away and never look back. Eventually, they came to their senses and copied what DirectX was doing.

/thread

By the way OP, before learning graphics programming, if you really want to have any chance at understanding what the fuck anything means and what you're doing, you MUST learn linear algebra. There's no way to understand what all this matrix, vector, determinant and perspective shit is supposed to be.
youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

>java
kys pajeet

dx12 vulkan mantle are all the same thing

you learn one of them you already know the rest

Guys I've learned all that shit, I wrote hlsl shaders and I even wrote my own raytracer I literally studied comp sci

I want to use the Ram better for a very very specific voxel engine that I have in mind. I dont want to optimize what already exists

youtube.com/channel/UCsyHonfwHi4fLb2lkq0DEAA

>Vulkan
Who doesn't love filling in a million structs? It's almost as fun as filing your taxes.

is there a real point in learning this when unity and unreal exist? i mean, that time could be better invested improving other shit, unless you're just making a new 3d engine from scratch

Those engines didn't just appear out of thin air. Someone's got to make and maintain them, so that you actually can invest time doing "other shit".