Fastest way to learn dx11 programming


#1

Hello there,

i am watching all the dx11 tutorials right now but i am kind of lost and i think thats because of some big lack of programming knowledge. I have a ton of questions while watching the videos and the only way to answer them is to get to know more of c++ i think.

Do you know some tutorials that point in the right direction (programming dx11 in vvvv) so that i can start with that and not go into the false direction?

greetings,

knoeterich


#2

my 2 cents…
I think there is no ‘fast way’ and it depends on your ‘programming background’
maybe u can start with this book (or something similar)


#3

what in particular do you want to learn? how to use the DX11 nodes better or do you want to code your own DX11 nodes?


#4

https://www.youtube.com/channel/UCa8Vqigdbq5Gam_6dcGdNBw

also
http://www.rastertek.com/tutindex.html


#5

is this suitable for the very beginner in programming?
I think i will check that out.

@tonfilm i want to write my own nodes, or at least be able understand whats inside and be able to acces the code and maybe change it.

@antokhio thanks for those links. i know the vvvvekend workshops but i cant comprehend it alle because of my lack in programming.

so the conclusion is to learn programming in C++ ;)

Thanks for the help,

knoeterich


#6

Nope but If u want to understand the dx11 pipeline is a good book IMHO

Did u take a look to this one https://www.youtube.com/watch?v=J1VyN-QbTzY ?


#7

Check this one https://m.youtube.com/watch?v=6YMb0jtUtfo Should be quite a beginner one with examples


#8

For the beginning just try to understand the relations between

Vertexatttibutes, textures, vertexshader and pixelshader and uniforms.

The constant shader would be enough to keep you bussy for a while.


#9

@antokhio i really missed that one because of the title raymarch i think. this is awesome!

@tekcor thats the thing right now for me. if i want to add some opportunaties in some nodes like adding a different color to each vertex while using the right rasterized and blend modes i am completely lost.
but i think the raymarch, plus some beginner c++ tutorials will help a lot.

thanks :)


#10

Well.
DX11 Wrapper by vux is written in C#, but when you talk about “nodes” you’re probably referring to the shader implementation on the vvvv side which is HLSL.
So forget about C++ for now :)


#11

hups!
so then its C# beginner tutorials :)


#12

you can do pretty cool stuff already readily available nodes in what DX11 can offer in vvvv. You only need to write plugin nodes for very special cases (like binding multiple read/write resources to a shader or implementing a middleware). Mostly you’ll have to write HLSL code which is really simple stuff to do if you know your math/calculus. If you don’t know your math/calculus start with that first on sites like coursera or other active learning sites like that. After the first couple of lessons you only need to familiarise yourself with the “C like syntax”. HLSL is a good starting point on that because it has almost no syntactical decorations and there’s only a single level of intrinsic functions which are all listed and well documented on MSDN. There are also lot of resources on this very website to start from.
For DX11 vvvv plugins there are 5 layers you need to get into: C# or any other .NET language and their ecosystem, vvvv plugin interfaces, node patterns for vux’s DX11 implementation, because vvvv is using the SlimDX abstraction layer for DirectX for .NET that and finally very basic understanding of the Direct3D 11 C API. These can sound intimidating but they individually take one or 2 afternoons to get a hold of them. It’s recommended to write your plugins in C# but if you want to integrate middleware libraries which was intended to be used in C++ you can write plugins in C++/CLI too. Advantage of that is that you can directly work with Direct3D 11 API without any abstraction layer and just instantiate SlimDX and FeralTic wrappers based on resource pointers of the end result.
Have fun! ;)


#13

thanks a lot for the advice!
for my understanding that sounds like a lot of work to dive in ;)
but there seems to be no real shortcut than learning from scratch.

thanks a lot!