Als ich mit der 3D-Unterstützung der WPF herumspielte, wollte ich verschiedene Optionen für die Materialtypen der 3D-Objekte ausprobieren, also erstellte ich zunächst eine einfache Szene mit einem Dreieck (das gut gerendert wird):
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera Position="-2,2,2" LookDirection="2,-2,-2" UpDirection="0,1,0" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="White" Direction="-1,-1,-1" />
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="-1,0,0 0,1,0 1,0,0" TriangleIndices="0,2,1" />
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Yellow" />
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
Aber es scheint, dass das Dreieck nicht mehr gerendert wird, wenn ich die GeometryModel3D.Material zu einem anderen Material wie geändert
<SpecularMaterial Brush="Yellow" Color="Yellow" SpecularPower="24" />
または
<EmissiveMaterial Brush="Yellow" ></EmissiveMaterial>
Warum ist das so? Sollte ich verschiedene Lichter für die spiegelnden oder emittierenden Materialien verwenden, um zu funktionieren?