There are many direct3d bases out there that you can learn from, although, hear me out, if you don't understand the code that has been written, learn the fundamentals to actually get there, until you fully understand it. There's no point using code or whatever you have compiled that you don't understand yourself (and I'm saying you have to understand every line; blatantly). You should definitely move onto reversing after this or assembly if you wish, both are relevant to each anyway.