Last year, I decided I finally wanted to take the plunge into DirectX development. I'd done a little bit of OpenGL programming several years ago, but no graphics development since then. I bought a few DirectX books, worked through several online tutorials, and tried out the Visual Studio project templates and graphics asset tools, but wasn't sure how to put all this information together to write a simple 3D application.
Enter the Visual Studio 3D Starter Kit (or Starter Kit, as I'll refer to it in the rest of this post.) The Starter Kit takes the Visual Studio graphics tools and the templates to the next level with a simple, yet complete application. The Starter Kit ships as source code, so you can read the code, learn from it, and adapt it to use in your own apps.
What’s in the Starter Kit: The centerpiece of the Starter Kit is the VS3DStarter library, which is a header file that contains a bunch of useful code to reduce the amount of time it takes to get a working 3D application. This library includes a Mesh loader to load the .cmo files generated by the Mesh content pipeline. The Mesh loader also has examples of loading shaders and and textures. The Camera class included in this library is a basic 3D camera which should suffice for basic applications.
The Starter Kit also includes an example of using a XAML overlay in a DirectX application (the scoreboard at the top of the screen). One of the 3D models includes bone animation, so you'll find a library for that as well in the Animation.h file. The GameBase class takes care of initializing resources (there's also an example of using Multi-sample Antialiasing (MSAA) which several people have already found to be helpful!).
The Game class is your starting point for adding your unique functionality to your app. In the Starter Kit, we draw a scene and an animated 3D model, and keep count of how many times each model was hit by a tap or a click. While admittedly that's not the most exciting game, one of our Visual C++ developers, Roberto Sonnino, released a Towers of Hanoi sample on Codeplex which uses the Starter Kit as a base for creating a 3D game. It's a great example of how you can use the Starter Kit to take care of the core DirectX code, while you focus on writing your game-specific logic.
Finally, while the first releases of the Starter Kit supported only Windows Store applications, we are excited to announce that the team has just released an update which also supports Windows Phone 8 using a common code base.
How to get the Starter Kit: Are you ready to begin your own DirectX coding adventure? Download the Starter Kit from http://aka.ms/vs3dkit. If you’re using one of the Visual Studio Express 2012 products, you can find platform specific versions of the Starter Kit at http://aka.ms/vs3dkitwin for Windows 8 and at http://aka.ms/vs3dkitphone for Windows Phone 8.
What’s next: In the next few weeks, we'll be posting a complete step by step walkthrough of using the Starter Kit to create a 3D app from scratch. In the meantime, you can watch Channel 9 videos here and here for more information about using the Starter Kit. You can also take a look at our previous blog post about DirectX graphics development to find links to more information about the Visual Studio graphics tools.
If you use the Visual Studio 3D Starter Kit, we'd love to hear about it! Leave us a note in the comments.
I'm unsure if this is the right place to make wishes. Neither msdn.microsoft.com/.../jj819238 nor msdn.microsoft.com/.../jj554680 has any WRL+XAML offering as yet. CX is perhaps too oversimplified for such an offering, but these sessions must have at least one WRL+XAML showcasing things like snapped view and live tiles. This should be without DirectX, as these are new, and combined with DirectX will be too much at once. If its series with one new feature introduced per part, then also gr8!
Thanks for the heads-up on 3D kit for Windows Phone 8.
One suggestion: please allow us to use non-rectangular polygon shapes with Windows.UI.Xaml.UIElement.Clip in Windows Store apps development. This would help us port the fancy controls (like wpfbookcontrol.codeplex.com) in Windows Store and WP8 worlds.
Pardon me but I have another off-topic suggestion; please add the ability to select multiple items in Visual Studio 2012's "Extensions and Updates" dialog (batch update).
@Vipul and @Adeel - Thanks for the suggestions! The best place to submit general suggestions is on the Visual Studio UserVoice site: visualstudio.uservoice.com