It depends on which API you want to use:
In WPF, you can do it like this:
<Viewport3D> <Viewport3D.Camera> <PerspectiveCamera Position="-40,40,40" LookDirection="40,-40,-40 " UpDirection="0,0,1" /> </Viewport3D.Camera> <ModelVisual3D> <ModelVisual3D.Content> <Model3DGroup> <DirectionalLight Color="White" Direction="-1,-1,-3" /> <GeometryModel3D> <Model3DGroup.Transform> <RotateTransform3D> <RotateTransform3D.Rotation> <AxisAngleRotation3D x:Name="rotation" Axis="0 0 1" Angle="45" /> </RotateTransform3D.Rotation> </RotateTransform3D> </Model3DGroup.Transform> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="0,0,0 10,0,0 10,10,0 0,10,0 0,0,10 10,0,10 10,10,10 0,10,10" TriangleIndices="0 1 3 1 2 3 0 4 3 4 7 3 4 6 7 4 5 6 0 4 1 1 4 5 1 2 6 6 5 1 2 3 7 7 6 2"/> </GeometryModel3D.Geometry> <GeometryModel3D.Material> <DiffuseMaterial Brush="Red"/> </GeometryModel3D.Material> </GeometryModel3D> </Model3DGroup> </ModelVisual3D.Content> </ModelVisual3D> </Viewport3D>
Or in codebehind C #:
this.rotation.Angle = 90;
If you use XNA, you should use soemthing like Matrix.CreateRotationY and apply this instance of ModelMesh to you.
Of course, there are tons of third-party engines and apis that you could use. An interesting choice might be SlimDX , which is a thin shell around Direct3D, sort of like Managed DirectX.
source share