988 Szczegóły obsługi programów 15.9 Użycie prostego obrazu nieba (Sky Texture) Efekt Sky Texture to w Cycles programowo generowana panorama bezchmurnego nieba. Wstawia się ją do schematu w Node Editor, poleceniem Add Texture Sky Texture. Należy ją dołączyć do wejścia Color shadera Background. Rysunek 15.9.1 przedstawia ją w trybie Preetham (to nazwa algorytmu): Algorytm: Preetham Tu przyłącz teksturę Położenie słońca Zamglenie Alternatywny rozkład obrazu Zawsze łącz ten węzeł z shaderem Background Rysunek 15.9.1 Użycie węzła Sky Tekture w schemacie otoczenia (World) Rysunek 15.9.2 przedstawia obraz tekstury, uzyskany na powierzchni kulistej sondy (por. str. 991). Górna część otoczenia ma błękitny kolor nieba. Nieco powyżej linii horyzontu ta barwa płynnie przechodzi w jakiś pastelowy, jednolity kolor. Większość scen rozgrywa się na ziemi, i w takich zastosowaniach większej części tej dolnej półsfery po prostu nie widać. Dla ujęć w locie horyzont tej panoramy znajduje się zbyt wysoko (Rysunek 15.9.3): Obraz światła Sun Spód samolotu ma jednolity kolor Rysunek 15.9.2 Podgląd z użyciem sondy Rysunek 15.9.3 Model w otoczeniu wykreowanym przez Sky Texture Na błękitnym niebie Sky Texture znajduje się (domyślnie w zenicie) rozjaśnienie, odpowiadające słońcu (Rysunek 15.9.4a). Położeniem tego rozjaśnienia możesz sterować za pomocą kulki, umieszczonej w węźle. Wystarczy ją złapać LPM i przeciągnąć, aby przesunąć to rozjaśnienie ponad odbity przez powierzchnię sondy obraz słońca (obiektu typu Sun Rysunek 15.9.4b): Roznajśnienie: a) w zenicie b) przesu- Roznajśnienie: nięte na słońce Obraz słońca Obraz słońca Obróć tę kulkę ( LPM ) Rysunek 15.9.4 Dopasowanie najjaśniejszego miejsca nieba do aktualnej pozycji słońca Lepiej zawsze mieć te dwa źródła światła odpowiednio zsynchronizowane.
Rozdział 15 Blender edytor materiałów (Cycles) 989 Drugi parametr tekstury Turbidity służy do sterowania efektem, określanym jako zamglenie. Domyślna wartość wynosi 2.2 (por. Rysunek 15.9.1). Gdy ją zwiększysz, górna półsfera ulegnie rozjaśnieniu a dolna pociemnieje. Obszar odpowiadający położeniu słońca stanie się większy i bielszy (Rysunek 15.9.5). Jaśniejsze niebo Silniejsze rozjaśnienie Większe zamglenie Rysunek 15.9.5 Działanie parametru Turbidity Wpływ zmiany tego parametru na połyskliwą ( aluminiową ) powierzchnię modelu pokazuje Rysunek 15.9.6. Domyślne Turbidity = 2.2 odpowiada warunkom czystego nieba (Rysunek 15.9.6a). a Jednocześnie zbyt wysokie położenie horyzontu podstawia za modelem i w odbiciach na powierzchniach bocznych za dużo pastelowej barwy dolnej półsfery. Takie zabarwienie może mieć samolot oświetlony promieniami wschodzącego/zachodzącego słońca. (Oczywiście, trzeba by tu jeszcze zmienić barwę źródła światła Sun z białej na pomarańczową). Turbidity = 2.2 Przy zwiększonym zamgleniu (Turbidity = 5.0) powierzchnia modelu staje się jaśniejsza, a barwy mniej zróżnicowane. Dolna półsfera stała się nieco ciemniejsza, ale nie zmieniło to specjalnie odcienia odbijanego przez dół i boki naszego testowego samolotu (Rysunek 15.9.6b). b Turbidity = 5.0 Aby obniżyć linię horyzontu Sky Texture, wykorzystaj węzeł Vector Mapping (por. str. 993). Tylko wtedy można uzyskać ujecie z boku na tle błękitnego nieba (Rysunek 15.9.7): Rysunek 15.9.6 Wpływ zmiany parametru Turbidity na wygląd modelu (Background:Strength = 0.6) Turbidity = 2.2 Jednolity błękit otoczenia sprawia, że powierzchnia aluminium wygląda jak błękitny plastik! (por. Rysunek 15.9.3). Rysunek 15.9.7 Przykładowe ujęcie modelu z boku, po obniżeniu linii horyzontu (tryb Preetham) Copyright Witold Jaworski, 2009-2013.
990 Szczegóły obsługi programów Gdy przełączysz się na alternatywny obraz nieba (Hosek/Wilkie) w węźle Sky Texture pojawi się dodatkowy parametr (Ground Albedo Rysunek 15.9.8): Algorytm: Hosek/Wilkie Dodatkowy parametr: intensywność odbicia światła przez dolną hemisferę Ten rodzaj tekstury wymaga jaśniejszego shadera Rysunek 15.9.8 Użycie węzła Sky Tekture w trybie Hosek/Wilkie To współczynnik odbicia światła prez ziemię czyli dolną półsferę panoramy. enie tej wartości rozjaśnia nieco panoramę (por Rysunek 15.9.9), choć i tak algorytm Hosek/Wilkie tworzy ciemniejszy obraz od algorytmu Preetham (por Rysunek 15.9.9a) i Rysunek 15.9.2): a W trybie Hosek/Wilkie niebo jest ciemniejsze b enie albedo podłoża rozjaśnia całą sferę Ground Albedo: 0.3 Ground Albedo: 0.8 Rysunek 15.9.9 Wpływ parametru Ground Albedo na panoramę Sky Tekture Rysunek 15.9.10 przedstawia test naszego modelu w tej drugiej odmianie panoramy Sky Texture: Rysunek 15.9.10 Przykładowe ujęcie modelu z boku, po obniżeniu linii horyzontu (tryb Hosek/Wilkie) Wydaje się, że niebo stworzone za pomocą algorytmu Hosek/Wilkie jest bardziej niebieskie od nieba wygenerowanego za pomocą metody Preethama. W dokumentacji Blendera podano także, że Hosek/Wilkie lepiej się nadaje do scen zachodu lub wschodu słońca.
Rozdział 15 Blender edytor materiałów (Cycles) 993 15.11 Transformacja współrzędnych (Mapping) Węzeł Mapping dodaje się w Node Editor poleceniem Add Vector Mapping. Służy do modyfikacji danych typu Vector. Dane tego typu są zazwyczaj używane do ustalenia sposobu wyświetlania rozkładanych na powierzchniach obiektów obrazów (tekstur), oraz panoram otoczenia. Ten węzeł to typowy konwerter, wstawiany pomiędzy źródło i odbiorcę danych. Rysunek 15.11.1 przedstawia przykład użycia: Konwerter współrzędnych Używam trybu Point Źródło danych o geometrii Odbiorca danych o geometrii: panorama Sky Texture Rysunek 15.11.1 Typowe połączenie węzła Mapping Źródłem danych geometrycznych jest tu węzeł Geometry, odbiorcą panorama Sky Texture. Kontrolki węzła Mapping służą do transformacji współrzędnych dostarczanych na wejściu. Ustawienia węzła przedstawionego przez Rysunek 15.11.1 nie zmieniają jeszcze niczego przesunięcie (Location) i obrót (Rotation) są zerowe. W tym stanie linia horyzontu Sky Texture jest w okolicy równika tak jak pokazuje sonda (Rysunek 15.11.2a): Czarna dziura Horyzont się obniżył Rysunek 15.11.2 Zastosowanie węzła Mapping do obniżenia linii horyzontu panoramy otoczenia Aby przesunąć horyzont w dół, zwiększ do 0.5 (Rysunek 15.11.2b). Horyzont się przesunął, ale pojawił się niespodziewany efekt uboczny: czarna dziura w zenicie (Rysunek 15.11.2c)! (Obraz panoramy jest za krótki i po przesunięciu już nie sięga do końca sfery). Aby ją zlikwidować, zmniejsz Scale:Z z 1.0 do 0.5 (Rysunek 15.11.3b). Panorama rozciągnie się w obydwu kierunkach, z jednej strony docierając z powrotem do zenitu, a z drugiej jeszcze bardziej obniżając linię horyzontu (Rysunek 15.11.3c): Czarna dziura znikła Zmniejsz Scale:Z Horyzont jest jeszcze niżej Rysunek 15.11.3 Korygowanie efektu czarnej dziury Copyright Witold Jaworski, 2009-2013.
994 Szczegóły obsługi programów Węzeł Mapping ma wiele trybów działania: Texture, Point, Vector, Normal. To rozróżnienie wprowadzono stosunkowo niedawno, w Blenderze 2.69. Wcześniej węzeł działał tak, jakby był zawsze ustawiony w trybie Point (czyli traktował podane współrzędne jakby opisywały położenie punktu w przestrzeni). Wszystkie przykłady w tej książce powstawały we wcześniejszych wersjach Blendera 2.6. Dlatego węzły Mapping, które wykorzystuję w schematach materiałów, działają w trybie Point. Tryb Texture jest odwrotnością trybu Point (w zamyśle twórców ma służyć do transformacji obrazu tekstury, a nie jej współrzędnych). Jeżeli np. zastosujesz go do transformacji którą pokazuje Rysunek 15.11.2a) (por. Rysunek 15.11.4b) uzyskasz czarną dziurę u dołu, a nie u góry panoramy (Rysunek 15.11.4c): Węzeł działa w trybie Texture Czarna dziura jest teraz na dole! Rysunek 15.11.4 Efektu czarnej dziury na panoramie (tryb Texture) Aby uzyskać ją u góry, musisz przesunąć teksturę do dołu (wprowadzając ujemną = -0.5), oraz zwiększyć, a nie zmniejszyć jej skalę (Scale:Z = 1.5). Ilustruje to Rysunek 15.11.5: Zmniejsz Horyzont przesunął się do dołu Scale:Z Czarna dziura znikła! Rysunek 15.11.5 Korygowanie efektu czarnej dziury (tryb Texture) Tryb Vector ma służyć do transformacji wektorów stąd w tym trybie ignorowane są wszelkie zmiany położenia (Location). (Wektory można tylko obracać i skalować). Tryb Normal ma służyć do transformacji wektorów o jednostkowej długości, stąd w tym trybie ignorowane są wszelkie zmiany położenia (Location) i skali (Scale). (Wektory jednostkowe można tylko obracać)