I periodically run into queries for tools for modelling 3D content for use with XAML. Here are some notable resources to consider:
- Xaml Exporter for Blender
- Zam3D Modeller
- Maya to XAML converter
- Viewer 3DS 3DS to XAML Converter
- OBJ to XAML support in Expression Blend (Mini Cube Walkthrough)
In addition, there are a number of libraries for generating 3D primitive content such as planes, spheres, cubes, etc in circulation on various community sites. Creating a 3D content library is a good way to test your knowledge of 3D, but if re-inventing the wheel isn’t your thing, Charles Petzold has scoped out some quality content in this space:
I would recommend getting conversant with using both modelling tools and generating content via code. Some cursory considerations to ponder when considering how to represent 3D content:
- Ease of Representation – If you want to represent a bunch of cubes/spheres with different textures in each case, you’d probably be crazy to try create and texture those separately in a modelling tool. Likewise, representing shapes from the naturual world, like animals, from primitive 3D shapes could quickly get to be painful.
- Binary/Data file size – For instance, a high resolution sphere can be represented on disk much more cheaply with the algorithm, than the corresponding mesh.
- Load time – Trade-off of disk time vs potentially non-trivial generating algorithms
- Texturing – Which approach allows you to texture your content satisfactorily – Can you represent multiple material “layers” in an effective way, do you want to utilize techniques such as level of detail rendering, etc… Specialized 3D tools are targeted to the work of “skinnning” the texture coordinates complex models.
- Flexibility – For instance, if you want to do techniques such as “Level of Detail” rendering, a generated content approach can provide you more flexibility than modelled content. Modellers/Artists *love* it when you ask them to turn their 300k poly masterpiece into 80 triangles. This usually translates to running mesh simplification tools on existing models, or just hack out some workflow tool to perform that work in batches, followed by some fine tuning at the end. In this context, generating the appropriate mesh complexity at run time is preferable to at design time.
I’m happy to hear from customers working on their WPF apps! Let me know if you have any questions, feedback or comments. Thanks!