Introduction to RotoDraw3D DirectX 12
by Jeff Kubitz, hot3dx
I first started my trek into DirectX 12 C++ on March 18th, 2018
Github.com/hot3dx/RotoDraw3D-DirectX-12
RotoDraw3D DirectX 12
choose two colors
I had not developed software for a long time. I did not know anything about it. I had programmed from DirectX 4 to 9 but had to stop. I had a number programs published but life got real hard. Life did not just get hard, it became impossible.
Before I could do this I had to build a house, more like a hut, design an electrical system off grid and...it took a long time. But I am getting there.
Choose Two Textures
These are the two defaults
This was the first 3D program I made long ago so I thought I would start here because it was the easiest. Draw one line, choose a texture, press a button and save. A symmetrical object was created and one saved it.
It was a freehand drawing concept and...DirectX 12 is a tad bit harder. There is lot more code because it is far more precise.
Choose your Settings
There are defaults. Draw a line
The nice part is because there is so much complexity, there is also numerous options and many, many styles of choice.
Fortunately, on Github I found a Microsoft Developer named, Chuck Walbourn and he made the DirectXToolkit, or the DXTK for DirectX 11 and DirectX 12 along with a cornucopia of samples and tool programs.
What he had was not what I wanted but his brillance led me in the right direction.
I made the DirectXToolkitXaml12
My application, Rotodraw3D DirectX 12, hooks to the DirectXToolkitXaml12 library. There are other examples as well and all are free.
The program is not done but it is usable and there are two ways to save an object.
Shortly, the object will also be saved as a wavefront .obj file and all left to do for that is publish it to github but it will be a few more days.// added 3/17/2021 useful in the visual studio 2019 3D Modeller. Textures must be saved in the same folder as the .obj and .mtl file
I plan to add more file types, like collada, sdkmesh, cmo, vbo, and many others like hard coded h/cpp file writers for objects.
Press 'Set Points' and Save
Or hit New/Clear and draw something else :)
Requirements
You can make it for free with Visual Studio 2019 C++. The community version.
I am using C/C++ 17, Windows 10, 20H2, build 19041, tools 142
Two nuget packages are required:
- Microsoft.UI.Xaml 2.5.0
- WinPixEventRuntime 1.0.201209001
You should have 8 GB of RAM, Windows 10, and Massive free hard drive space. Visual Studio 2019 takes tremondous space.
It is a github project but since I never ran a project on github before, I really have not stepped into running the project, yet.
The objects are compatible with my graphics engine and Chuck Walbourn's. or will be soon!
So, if you're into this my motto is: whatever works and always make your own!
In the next post, I will list the components necessary to add to Visual Studio 2019 Community to build the program, RotoDraw3D DirectX 12 and load the solution from Github.
RotoDraw3D DirectX 12 uses a complicated Microsoft Xaml Graphical User interface - If you want or need to learn Xaml GUI's it is a good example but not all the way finished yet! Getting close!
RotoDraw3D DirectX 12 is multi-threaded and has excellent threading examples throughout.