3

特定の位置を持つ 20 個のSpotLightポイントを含むリストを作成してレンダリングします。Helix ViewPortタイマーでいつもの色を変えていSpotLightます。ViewPortライトは次 のように設定されています。<helix:DirectionalHeadLight Position="2,3,0" Brightness="0.30"></helix:DirectionalHeadLight>

また、リストを作成し、20 個の球体のリストをレンダリングしますSphereVisual3DSpotLightとのSphereVisual3D位置は似ています。球体のマテリアルを設定するよりも (この場合はインディゴ)。写真を参照してください:

図 1:SphereVisual3D位置

ここに画像の説明を入力

図 2:SpotLight位置 ( ごとに異なる色を使用SpotLight)

ここに画像の説明を入力

からMaterial反射することなく、球を同じに保ちたい。の3種類すべてで試しました:lightSpotLightsMaterial

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

図 1.1: と を持つDiffuseMaterial球体SpotLights ここに画像の説明を入力

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

図 2.1: と を持つSpecularMaterial球体SpotLights ここに画像の説明を入力

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

図 3.1: と を持つSpecularMaterial球体SpotLights ここに画像の説明を入力

Material光を反射せず、そのままの色に設定することはできますか?無地の色を設定する可能性はありますか?

4

1 に答える 1

1

素材だけではできないと思います。

s をカメラに向いSphereVisual3Dた 2 次元平面 (円) (たとえば Helix で使用)に置き換え、それらに a を使用することをお勧めします。MeshBuilder.AddEllipse()DiffuseMaterial

もちろん、カメラの位置や視線の方向が変わると、それに応じて 2D 要素の向きを変更する必要があります。

于 2017-01-19T12:32:23.020 に答える