Dziś będzie trochę informacji odnośnie światła w scenach 3D w WPF. Światło jest dosyć ważne, gdyż to od niego zależy jak nasz obiekt będzie się prezentował. W WPF dostępnych mamy kilka ich rodzajów:
-
DirectionalLight
-
PointLight
-
SpotLight
-
AmbientLight
Jak ich używać? Światło definiujemy jak element w tagach ModelVisual3D.Content
<ModelVisual3D>
<ModelVisual3D.Content>
<AmbientLight />
ModelVisual3D.Content>
ModelVisual3D>
DirectionalLight
Światło to symuluje źródło światła oddalone tak bardzo, że promienie są praktycznie równoległe.
<DirectionalLight Direction=”-0.612372,-0.5,-0.612372″ Color=”Red” />
W tym przypadku wystarczy zdefiniować kierunek “świecenia” oraz kolor.
PointLight
W tym przypadku definiujemy światło punktowe rozchodzące się we wszystkich kierunkach.
<PointLight ConstantAttenuation=”.1″
LinearAttenuation=”0″
QuadraticAttenuation=”0.0125″
Color=”Red”
Position=”2,2,2″ />
Ponownie pozycję i kolor definiujemy przez właściwości Position oraz Color. Jednak w tym przypadku definiujemy dodatkowo jak bardzo światło ma przygasać wraz z odległością. Dokładny wzór można znaleźć tu. Tak zdefiniowane światło da nam ładny gradient na naszej powierzchni.
SpotLight
Ten typ światła to można powiedzieć typ “lampki”. Skupione w wiązkę światła typu PointLights. Prócz właściwości dostępnych jak przy PointLight mamy dostępne InnerConeAngle oraz OuterConeAngle definiujące odpowiednio wewnętrzny i zewnętrzny kąt rozpraszania naszej wiązki.
AmbientLight
Ostatni typ światła. Stosowany zwykle jako dodatkowe jego źródło. Pozwala utworzyć efekt światła rozproszonego na różnych powierzchniach. Dzięki jego dodaniu uzyskujemy ładniejszy wygląd elementów na naszej scenie poprzez bardziej naturalne jej oświetlenie. W tym przypadku definiujemy tylko kolor.
<AmbientLight Color=”Pink”/>
Na dziś tyle. W następnej części będzie o materiałach, z których są tworzone nasze elementy na scenie 3D. klasie FlowDocument
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl