If you’re building a 3D application using Windows Presentation Foundation, you’ll find these links handy:
- Firstly, Daniel Lehenbauer shares the trackball implementation that we use internally in almost all of our 3D demos for using the mouse to navigate around a 3D space. To use it, you simply attach an instance of the trackball to the window and add the viewport to the Slaves collection surfaced on the trackball. It’s a nice handy thing to add when you’re importing some 3D geometries into your application.
- Secondly, Pablo Fernicola pointed me to this fantastic tutorial by Mike Hodnick on creating 3D graphics with WPF. It’s not so long as to be daunting, but clearly explained and detailed enough to give you the basics. Make sure you also read his epiphany as he explains why it’s important to build more complex meshes rather than creating model groups of simple meshes. (By the way, if you want a more comprehensive primer of 3D graphics, I can personally recommend this title.)
- Next up, I don’t think I’ve ever linked to this 3D games tutorial on Digital Media Universe’s site. WPF wasn’t built as a 3D games engine, and I don’t think the graphics on this site will give the Halo developers jitters, but they’ve spent some time building up a nice step-by-step tutorial.
- I’ve posted this before, but it was a long while ago. Valentin Iliescu has built an awesome 3D chess game using WPF that demonstrates many key 3D concepts as well as offering a XAML Browser Application (XBAP) in-browser version. He’s just added the source code for his samples, which gives me an excuse to highlight this again.
- Lastly, many of the most impressive demos I’ve seen come from Robert Hogue, who’s been quietly cranking away on new and innovative ways to use WPF from within the darkened cave where he sits in building 10! What I love about his samples is that they often demonstrate concepts that seem on the surface to be hard or impossible in WPF. For example, his mesh morph sample is required viewing for anyone who wants to do shape tweening between 3D models.
Hope some of these help you. If you’re doing something innovative using 3D that I’ve missed, please add a comment below with a link to your site – I’d love to add to my list here!