Usando 3D Tools for the WPF
<Window x:Class="_3DTooslDemo.Window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:_3DTools;assembly=3DTools"
Title="WPF 3D Tools Demo" Height="300" Width="600">
<Window.Resources>
<MeshGeometry3D x:Key="3dMesh"
Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0"
TextureCoordinates="0,0 0,1 1,1 1,0"
TriangleIndices="0 1 2 0 2 3"/>
<RotateTransform3D x:Key="3dTransform">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="45" Axis="0 1 1" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
<Grid Background="White" x:Key="3dMaterial">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0">Demo WPF 3D Tools</TextBlock>
<Slider Grid.Row="1" />
<Button Grid.Row="2" Width="60" Height="25">Aceptar</Button>
</Grid>
</Window.Resources>
<Grid>
<local:TrackballDecorator>
<local:Interactive3DDecorator>
<Viewport3D Width="450" Height="225">
<Viewport3D.Camera>
<PerspectiveCamera Position="0, 0, 4" FieldOfView="75" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="White" Direction="0,0,-1" />
</ModelVisual3D.Content>
</ModelVisual3D>
<local:InteractiveVisual3D
Transform="{StaticResource 3dTransform}"
Geometry="{StaticResource 3dMesh}"
Visual="{StaticResource 3dMaterial}" />
</Viewport3D>
</local:Interactive3DDecorator>
</local:TrackballDecorator>
</Grid>
</Window>
Como verán el código es muy simple, lo primero que hice fue crear un Resource y dentro de este cree un Mesh, una transformación y para finalizar dentro de una Grid coloque algunos elementos, vean que tanto el Mesh, la transformación y la Grid están identificados por una x:Key para cada uno de ellos.
El siguiente paso es crear un Viewport3D donde mostrar los elementos que están dentro de la Grid, si pueden apreciar el Viewport3D está decorado por TrackballDecorator e Interactive3DDecorator, el primero nos permite mover por el espacio al Mesh y hacer zoom en el utilizando el mouse, el segundo decorador es el encargado de integrar los elementos 2D en el Viewport3D.
El resto del código es muy intuitivo, vean que lo único novedoso es la instrucción InteractiveVisual3D la cual tiene especificada que transformación, Mesh y “Material” se va a utilizar.
El ejemplo terminado se ve de esta manera.
Pero también con estas herramientas es muy fácil tomar una aplicación existente y con mínimos cambios actualizarla para que aproveche estas nuevas características, que es lo que hice con el ejemplo del Poor’s Man Media Center.
A continuación les dejo algunos links de interés.
Download 3D Tools for the Windows Presentation Foundation
Channel 9 – Daniel Lehenbauer and Kurt Berglund: Interactive 2D controls on WPF 3D Surfaces


Buenas!!he tratado de seguir tu ejemplo y no me funciona, en la línea 10 del código, "TriangleIndices="0 1 2 0 2 3" />", me da el error siguiente:Warning 2 The ‘TriangleIndices’ attribute is invalid – The value ’0 1 2 0 2 3′ is invalid according to its datatype ‘http://schemas.microsoft.com/winfx/2006/xaml/presentation:frlrfSystemWindowsMediaInt32CollectionClassTopic’ – The Pattern constraint failed.Y luego, en la línea 28, en el tag "<Grid><local:TrackballDecorator>", me da que grid tiene un elemento hijo no valido, en este caso TrackBallDecorator..Alguna indicación?grácias!
Acabo de hacer un copy and paste del codigo en un proyecto nuevo y funciono correctamente, lo que te aconsejaría es que verificaras que este hecha la referencia a 3DTools.dll y el namespace este declarado de la siguiente manera
xmlns:local="clr-namespace:_3DTools;assembly=3DTools"
Hola buen día, tengo una aplicación hecha en Visual Basic
2005 pero no utilizo Código XAML, existe alguna otra forma de utilizar 3D Tools,
sin tener que volver a escribir el código en XAML
Lamentablemente no, ya que estas herramientas están desarrolladas específicamente para ser utilizadas con WPF.
Hi how is the israeli Channel 2 is on your cube ?