Mega Code Archive

 
Categories / C# / WPF
 

Directional light

<Window  x:Class="WpfApplication1.Window1"   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Title="" Height="300" Width="300" Loaded="Window1_Loaded">     <Window.Resources>         <MeshGeometry3D x:Key="triangleMesh" Positions="-1,-1,0 1,-1,-2 1,1,0" TriangleIndices="0 1 2" />     </Window.Resources>     <UniformGrid>         <Viewport3D x:Name="vp1">             <Viewport3D.Camera>                 <PerspectiveCamera LookDirection="0,0,-1" Position="0,0,5" />             </Viewport3D.Camera>             <ModelVisual3D>                 <ModelVisual3D.Content>                     <DirectionalLight Direction="-1,-1,-1" Color="White" />                 </ModelVisual3D.Content>             </ModelVisual3D>         </Viewport3D>     </UniformGrid> </Window> //File:Window.xaml.cs using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Media3D; namespace WpfApplication1 {     public partial class Window1 : Window     {         public Window1()         {             InitializeComponent();         }         private void Window1_Loaded(object sender, RoutedEventArgs e)         {             MeshGeometry3D triangleMesh = (MeshGeometry3D)TryFindResource("triangleMesh");             CreateTriangles(vp1, 4, triangleMesh);         }         private void CreateTriangles(Viewport3D viewport3D,int triangleCount, MeshGeometry3D triangleMesh)         {                 ModelVisual3D modelVisual3D = new ModelVisual3D();                 GeometryModel3D geometryModel3D = new GeometryModel3D();                 geometryModel3D.Geometry = triangleMesh;                 geometryModel3D.Material= new DiffuseMaterial(Brushes.Firebrick);                 modelVisual3D.Content = geometryModel3D;                 RotateTransform3D rotateTransform = new RotateTransform3D();                 rotateTransform.Rotation = new AxisAngleRotation3D(new Vector3D(0, 0, -1), 20);                 modelVisual3D.Transform = rotateTransform;                 viewport3D.Children.Add(modelVisual3D);         }     } }