Specular 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> <!-- Specular Material --> <Viewport3D x:Name="vp1" Grid.Column="1"> <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