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
Related examples in the same category