Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Diffuse Material

<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="800" Loaded="Window1_Loaded">     <Window.Resources>         <MeshGeometry3D       x:Key="triangleMesh"       Positions="-1,-1,0 1,-1,-2 1,1,0"        TriangleIndices="0 1 2" />         <DiffuseMaterial x:Key="diffuseMaterial" Brush="Firebrick" />         <MaterialGroup x:Key="specularMaterial">             <StaticResource ResourceKey="diffuseMaterial" />             <SpecularMaterial          Brush="White"          SpecularPower="5" />         </MaterialGroup>         <MaterialGroup x:Key="emissiveMaterial">             <StaticResource ResourceKey="diffuseMaterial" />             <EmissiveMaterial Color="Yellow" />         </MaterialGroup>     </Window.Resources>     <Viewport3D x:Name="vp1">         <Viewport3D.Camera>            <PerspectiveCamera LookDirection="0,0,-1" Position="0,0,5" />         </Viewport3D.Camera>         <ModelVisual3D>             <ModelVisual3D.Content>                 <PointLight Position="0,-1,2" Color="White" />             </ModelVisual3D.Content>         </ModelVisual3D>     </Viewport3D> </Window> //File:Window.xaml.vb Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Media.Media3D Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Public Sub New()       InitializeComponent()     End Sub     Private Sub Window1_Loaded(sender As Object, e As RoutedEventArgs)       Dim triangleMesh As MeshGeometry3D = DirectCast(TryFindResource("triangleMesh"), MeshGeometry3D)       CreateTriangles(vp1, 4, triangleMesh, DirectCast(TryFindResource("diffuseMaterial"), Material))     End Sub     Private Sub CreateTriangles(viewport3D As Viewport3D, triangleCount As Integer, triangleMesh As MeshGeometry3D, material As Material)       Dim modelVisual3D As New ModelVisual3D()       Dim geometryModel3D As New GeometryModel3D()       geometryModel3D.Geometry = triangleMesh       geometryModel3D.Material = material       modelVisual3D.Content = geometryModel3D       Dim rotateTransform As New RotateTransform3D()       rotateTransform.Rotation = New AxisAngleRotation3D(New Vector3D(0, 0, -1), 90)       modelVisual3D.Transform = rotateTransform       viewport3D.Children.Add(modelVisual3D)     End Sub   End Class End Namespace