2016-05-23 18 views
2

Ich erstellen und rendern eine Liste mit 20 SpotLight Punkte in HelixViewPort, die bestimmte Positionen haben. Mit einem Timer ändere ich immer die Farbe des SpotLight. Das ViewPort Licht ist eingestellt auf: <helix:DirectionalHeadLight Position="2,3,0" Brightness="0.30"></helix:DirectionalHeadLight>Wie wird ein Material eingestellt, das im Helix Toolkit ViewPort kein Licht reflektiert?

als ich auch eine Liste erstellen und eine Liste von 20 Kugeln SphereVisual3D machen. Die SpotLight s und SphereVisual3D s haben ähnliche Positionen. Dann habe ich ein Material für die Spähren (in diesem Fall Indigo) gesetzt. Siehe Bild:

Abbildung 1: SphereVisual3D Positionen

enter image description here

Abbildung 2: SpotLight Positionen (mit differentcolors pro SpotLight)

enter image description here

ich die Kugeln Material das gleiche behalten will , ohne light von der SpotLights zu reflektieren. ich versuchte, mit allen 3 Arten von Material:

1: sphere.Material = new DiffuseMaterial(new SolidColorBrush(Colors.Indigo));

Abbildung 1.1: Spehres mit DiffuseMaterial und SpotLights enter image description here

2: sphere.Material = new SpecularMaterial(new SolidColorBrush(Colors.Indigo),1);

Abbildung 2.1: Spehres mit SpecularMaterial und SpotLights enter image description here

3: sphere.Material = new EmissiveMaterial(new SolidColorBrush(Colors.Indigo));

Abbildung 3.1: Spehres mit SpecularMaterial und SpotLights enter image description here

Ist es möglich, eine Material zu setzen, die das Licht nicht reflektieren und behält seine Farbe? Gibt es eine Möglichkeit, eine einfarbige Farbe zu setzen?

Antwort

1

Ich glaube nicht, dass Sie dies nur mit dem Material tun können.

schlage ich vor, die SphereVisual3D s von zweidimensionalen Ebenen (Kreise) (zum Beispiel unter Verwendung von MeshBuilder.AddEllipse() in Helix) ausgerichtet in Richtung der Kamera zu ersetzen und eine DiffuseMaterial auf sie verwenden.

Wenn sich die Position oder die Blickrichtung der Kamera ändert, müssen Sie natürlich reagieren und die Ausrichtung der 2d-Elemente entsprechend ändern.