Chapter 17. 3D Graphics

WPF applications can incorporate three-dimensional content. A data visualization application might use this to produce a 3D plot of a field of values. A shopping application could offer a 3D model of a product in order to give potential customers a better idea of what the item looks like. WPF provides a simple mechanism for integrating such 3D content into your application.

Note that if you wish to fully exploit your graphics card's 3D capabilities, WPF is unlikely to be the best choice of technology. The main benefits WPF offers in 3D are ease of use and the ability to integrate 3D content anywhere in a WPF application. The performance cannot compete with lower-level APIs such as DirectX and OpenGL, and you should continue to use these if your application has very demanding 3D requirements. But if you wish to incorporate fairly simple models into an otherwise two-dimensional application, WPF's 3D features make this easy.

This chapter is not an introduction to 3D graphics in general, or the mathematics behind it. We will focus just on how WPF does 3D graphics.[113]

3D Content in a 2D World

WPF is essentially a two-dimensional technology. The panel-based layout system knows how to arrange 2D elements onto a 2D screen. Likewise, the flow document system knows how to flow text onto a two-dimensional page. So how does 3D content fit into this world?

The Viewport3D element bridges the gap between 2D and 3D. As far as the WPF layout system is concerned, Viewport3D

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.