GI, FG oraz HDRI w Mayi z zastosowaniem Mental Ray 1.5 for Maya


Oryginalny tytuł: Global Illumination in Maya (with MentalRay 1.5)
Autor oryginału: Toni Bratincevic
-
tbratinc@foi.hr - http://www.3dluvr.com/intercepto
Tłumaczenie: Przemysław 'HeavY' Orłowski

 

Wstęp

Dzisiaj prawie wszystkie liczące się programy do grafiki 3D w jakiś sposób mają dołączoną obsługę GI. Standardowego renderera Mayi nie wspomaga jednak jakikolwiek rodzaj GI i wielu ludzi nie może się z tym pogodzić, dlatego AW zdecydowało się w wspomóc Mayę jednym z najbardziej zaawansowanych rendererów na dzień dzisiejszy czyli Mental Ray'em. Jeśli ktoś z was używał wcześniej XSI, wie jak potężny jest Mental Ray. Jedną z najbardziej interesujących cech Mental Ray'a zintegrowanego z Mayą jest to iż potrafi on obliczyć dodatkowe światło rozprzestrzeniające się po scenie, co jest inaczej nazywane globalną iluminacją (GI).
W tym tutorialu będę próbował opisać jak stworzyć sceny wykorzystujące Globalną Iluminację. W tym tutorialu jest sporo obrazków więc jeśli wszystkiego co napisałem nie zrozumiesz odrazu, obrazki powinny wyjaśnić wszystko.
Mental Ray posiada dwa sposoby obliczania dodatkowych świateł rozprzestrzeniających się po scenie, jednym jest Globall Illumination a drugim Final Gather. W pewnych sytuacjach możesz używać jednego z tych rozwiązań ale najlepsze efekty uzyskuje się dzieki połączeniu obu technik. Global Illumination polega na wystrzelaniu ze światła fotonów i śledzeniu ich rozkładu w scenie. To jest szybkie rozwiązanie i dzięki niemu możemy uzyskać dobre dodatkowe oświetlenie sceny ale nie jest ono tak dokładne jak byśmy tego chcieli. I dlatego musisz łączyć pierwszy sposób z Final Gather'ingiem. Cel Final Gather'ingu jest taki jak w przypadku Global Illumination ale sposób podejścia do procesu całkiem inny. Final Gather'ing jest wyliczany na podstawie punku widoczności i nie jest on wyliczany na podstawie źródła światła tak jak Global Illumination. Gdy pierwsze promienie uderzą w dany punkt na obiekcie, Final Gather jest aktywowany i tworzy dodatkowe promienie w scenie zbierające informacje o kolorze dookoła punku dla którego chcemy wyliczyć kolor.
W tym tutorialu będziemy używać dwóch rodzajów scen dla których będziemy tworzyć GI oraz FG. Kilka pierwszych scen reprezentować będzie sceny pokojowe,domowe a drugi typ scen to sceny plenerowe, czyli sceny na wolnym powietrzu. Dla pierwszej sceny domowej przejdziemy wszystko krok po kroku, a przy pozostałych scenach wypunktujemy satysfakcjonujące nas wartości do stworzenia GI oraz FG. Dla scen plenerowych pokażę jak FG może być używany dalej lecz już w połączeniu z HDRI przy oświetlaniu sceny.
Pierwsze czego potrzebujesz to ściągnąć Mental Ray'a ze strony AW. Po zainstalowaniu go, uruchom Mayę i przejdź do Window -> Setting/Prefferences -> Plug-in Manager by sprawdzić czy Mayatomr jest załadowany. Jeśli nie to zaznacz Loaded. Jeśli chcesz używać Mental Ray'a na codzień to zaznacz Auto Load. Po tym wszystkim przejdź do interfejsu Rendering i ustaw Mental Ray'a jako standardowy renderer - Rendering -> Render Using -> mental ray.


Scena Domowa 1

Na początku potrzebujesz stworzyć scenę która będzie używana jako przykładowa scena domowa. Stwórz prosty sześcian Create > Polygon Primitives > Box. Potem przeskaluj go w osi Z i zwiększ podział powierzchni na 6 4 10, powinieneś uzyskać sześcian podobny do sześciana na rys.1.

Teraz aby zwiększyć złożoność obiektu wytłoczymy jego wszystkie faces poza tymi które znajdują się na przodzie. Przejdź do menu Polygons > Tool Options i sprawdź czy opcja Keep Faces Together jest niezaznaczona. Jesli jest niezaznaczona zaznacz poligony jak na rys.2.

Teraz przejdź do Edit Polygons > Extrude Face i za pomocą tego polecenia oraz manipulatora stwórz obiekt podobny do tego na rys.3.

Teraz obróć widok w oknie tak abyś widział nie wytłoczony przód obiektu. Zaznacz 8 środkowych faces na tej stronie obiektu i usuń je. Teraz obiekt powinien mieć dziurę tak jak na rys.4

Teraz musimy stworzyć światło typu spot light Create > Lights > SpotLight. Światło zostało stworzone w środku sceny więc trzeba go przesunąć, przeskalować i obrócić tak aby było ustawione jak na rys.5.

Zmień wyświetlanie w oknie na Shaded, i obróć kamerę tak aby była w środku obiektu, tak jak na rys.6.

Teraz przejdź do Attribute editor przy zaznaczonym świetle aby zmienić kilka opcji. Na początek zmień Decay Rate na Quadratic. Ja używam Quadratic Decay Rate w wielu przypadkach aby uzyskać jak najbardziej realistyczne efekty. Możesz również zostawić Decay Rate bez zmian i poeksperymentować trochę. Więc jeżeli zmieniłeś DR na Quadratic ustaw Intensity na około 120.
W zakładce Shadow > Raytrace Shadow Attributes zaznacz Use Raytrace Shadows to spowoduje tworzenie ostrych cieni typu Raytraced Shadows. Potem możesz użyć Area light dla uzyskania bardziej realistycznych cieni.
Następną sprawą którą powinniśmy się zająć to stworzenie shadera typu Lambert i przypisania go do naszego obiektu. Gdy przypiszesz już szader do obiektu zmnień jego kolor na jakiś pomarańczowy odcień.
Teraz czas przejść do ustawiania GI... Są dwie zakładki które będą nas interesować jedna znajduje sie w Attribute Editor światła a druga w Mental Ray Rendering Globals > Options . Pierwszą rzeczą jaką zrobimy będzie zmiana kilku opcji w ustawieniach światła dzięki temu nasze świato będzie emitować fotony. W tym celu zaznacz jedyne światło typu spotlight w scenie i napiśniej CTRL + A. Pojawi się okno Attribute Editor przejdź do zakładki MentalRay > Caustic and Global Illumination i włącz Emit Photons. Gdy to zrobisz część opcji poniżej stanie się dostępnych. Jak widzisz są tam trzy parametry Energy, Exponent, Physical. Energy i Exponent są podobnymi opcjami ... są używanie one do obniżania i podnoszenia ogólnej jasności efektu GI w scenie.
Jeżeli zrenderowałbyś teraz swoją scenę uzyskał byś taki sam efekt jaki uzyskasz bez całej zabawy w GI. Dlaczego? Ponieważ musimy włączyć GI w ustawieniach globalnych Mental Ray'a. Przejdź do Window > Rendering Editors > Render Globals (mental ray). Gdy okno sie otworzy przejdź do zakładki Quality i naciśnij przycisk z szachownicą leżący po prawej stronie opcji Render Quality. Teraz przejdziesz do innego menu o nazwie mentalrayOptions1. W tym właśnie menu włączymy GI. Aby to zrobić przejdź do zakładki Caustics/Global Illumination i włącz opcję Global Illum, to włącza liczenie GI w scenie. Stwórzmy teraz przykładowy obrazek na któreym zobaczymy co się stanie jeśli włączymy GI. Pierwszy obrazek pokazuje Rendering bez GI drugi już zrenderowany przy użyciu GI.


Bez GI


GI

Jak widzisz jest już duża ilość dodatkowego światła w scenie, ale jedynym problemem jest to iż nie uzyskaliśmy satysfakcjonującej nas jakości renderingu. Zapamiętaj po ustawieniu GI możemy użyć Final Gather'ingu dla uzyskania lepszej iluminacji. Do wyregulowania GI służą wcześniej zauważone przez ciebie najprawdopodobniej opcje w AE (Attribute Editor) światła i MentalRay Globals > mentalrayOptions1. Opcje w ustawieniach światła służą do kontroli ilości fotonów oraz jasności efektu GI w scenie, zaś opcje w MentalRay Globals są używane do wyregulowania samego efektu GI, np jak wiele fotonów będzie skupione i przemieszane w punkcie x kiedy renderer będzie wyliczał iluminację, lub jak duży ma być obszar z którego fotony będą "zbierane". To wszystko będzie demonstrowane potem.
Aby wyregulować GI na początku zmnienimy pewne opcje w AE światła. Więc naciśnij CTRL + A i przejdź do opcji Caustic and Global Illumination. Jak widzisz parametr Global Illum Photons jest już teraz dostępny. Ta opcja mówi rendererowi jak wiele fotonów GI ma być "wystrzelonych" w scenę. Im więcej fotonów użyjesz tym lepsza jakość ale czas renderingu również dłuższy. Naszym celem jest uzyskanie satysfakcjonująco szybkiego rozwiązania dla GI dlatego nie będziemy używać zbyt wielu fotonów. Gdy patrzysz sie wyrenderowanej scenie, zobaczysz że jasność sceny przy włączonym GI jest wygórowana. A przecież nie chcemy tego ponieważ gdy włączymy jeszcze Final Gather który wprowadza dodatkowe oświetlenie do sceny obraz stanie się zbyt jasny. Aby zmnienić wpływ GI na scenę zwiększymy wartość Exponent do wartości 3.5. Aby pokazać ci jak parametry Exponent oraz Energy wpływają na scenę stworzyłem kilka obrazków.


Energy 8000
Exponent 2

Energy 8000
Exponent 2

Energy 8000
Exponent 3

Energy 8000
Exponent 3.5

Energy 2000
Exponent 2

Energy 4000
Exponent 2

Energy 6000
Exponent 2

Energy 10 000
Exponent 2

 


Jak możesz zauważyć zabawa wartościami Exponent i Energy daje podobne efekty. Więc które rozwiązanie z powyższych może być najlepsze ? Obrazek o parametrach Energy 8000 and Exponent 3.5. Jest za ciemny ? Tak to prawda, ale pamiętaj że FG podnosi jasność sceny. Jeżeli chcielibyśmy używać tylko GI pomijając FG wtedy prawdopodobnie wybralibyśmy Energy 8000 i Exponent 3 albo coś około tych wartości. Ale teraz ustaw parametr Exponent na 2.8 by lepiej widzieć jak GI wpływa na scenę, a potem kiedy skończymy konfigurować GI zmienimy spowrotem na 3.5.
Prawdopodobnie zadajesz sobie pytanie, co się stanie gdy zwiększę ilość fotonów w scenie. Poniżej są obrazki.


Energy 8000
Exponent 3
Glob Ill Photons 1000

Energy 8000
Exponent 3
Glob Ill Photons 10000

Energy 8000
Exponent 3
Glob Ill Photons 100000

Energy 8000
Exponent 3
Glob Ill Photons 1000000

 


Pierwszy obrazek jak widać nie posiada wystarczająco dużo fotonów, więc jest prawdopodobnie nieużyteczny. Drugi i trzeci dają zadowalające rezultaty i wyliczanie fotonów nie zabierało zbyt wiele czasu. Ostatni wydaję sie być najlepszy jakościowo ale zabiera za dużo czasu na wyliczenia w stosunku do wcześniejszych. Który z nich powinniśmy użyć ? Ten który zawiera się pomiędzy drugim a trzecim czyli trzeba ustawić ilość fotonów GI na wartość ok 50000. A oto co otrzymaliśmy.


Energy 8000
Exponent 3
Glob Ill Photons 50000


Teraz trochę o szumie widocznym na obrazku. Aby pozbyć się nieprzyjemnego szumu przejdź do RenderGlobals (MentalRay) > mentalrayOptions1. Teraz będziemy troszeczkę się bawić parametrami Global Illum Accuracy i Global Illum Radius i zobaczymy jak one wpływają na obrazek. Co robi parametr Global Illum Accuracy ? Mówi on rendererowi ile fotonów zbierze się z otaczającej przestrzeni kiedy bedzie liczona intensywność GI i punkcie który cieniujemy. Drugi parametr określa jak duża jest przestrzeń z której fotony są zbierane. Obrazki jak zwykle powiedzą więcej niż słowa.


Global Illum Accuracy 1
Global Illum Radius 0

Global Illum Accuracy 50
Global Illum Radius 0

Global Illum Accuracy 100
Global Illum Radius 0

Global Illum Accuracy 300
Global Illum Radius 0

Global Illum Accuracy 100
Global Illum Radius 0

Global Illum Accuracy 100
Global Illum Radius 0.1

Global Illum Accuracy 100
Global Illum Radius 0.2

Global Illum Accuracy 100
Global Illum Radius 0.5

 


Na pierwszym obrazku widzisz wiele plamek w scenie. To są właśnie fotony. Jeżeli Global Illum Accuracy wynosi 1 intensywność fotonów nie jest łączona razem. Dlatego jest tak wiele plamek na obrazku. Jeżeli zwiększysz wartość Global Illum Accuracy, więcej fotonów będzie się skupiać razem i mieszać dając uśrednioną wartość. To jest właśnie sytuacja na obrazkach 2, 3 i 4. Możesz równiez zauważyć że zwiększanie watrości Global Illum Accuracy powyżej 100 nie daje większego efektu więc możesz pozostawić tą wartość.


Teraz jeżeli Global Illum Radius pozostawisz jako 0 renderer automatycznie ustawi wartość jaką będzie uważał za najlepszą. Tak jest w przypadku pierwszego obrazka w 3 wierszu. Ale to nie jest najlepsze rozwiązanie w naszej sytuacji, więc będziemy musieli ustawić to sami. Zwiększając poziom Global Illum Radius iluminacja staje się coraz bardziej właściwa dla sceny. W ostatnim obrazku z Global Illum Accuracy 100 i Global Illum Radius 0.5 uzyskujemy najprawdopodobniej najlepsze wyniki. Poziom szumu na odpowiednim poziomie i każda część obrazka jest oświetlona wystarczająco. Dlatego właśnie powinniśmy wżywać tych ustawień.


To jest koniec częsci dotyczącej ustawień GI. Teraz jest czas na to by wprowadzić Final Gather'ing i podnieść jakość iluminacji. Ale wcześniej wróć do AE światła i ustaw Exponent na 3.5.
Przejdź do mentalrayOptions1 w RenderGlobals (MentalRay), przejdź do sekcji Final Gather i włącz Final Gather. Są tam trzy bardzo ważne parametry Final Gather Rays, Min Radius and Max Radius. Jako domyślne ustawienie tych parametrów jest przyjęte 1000 0 0. Wszystkie trzy parametry mają ogromny wpływ na szybkość renderingu. FG Rays jest liczbą promieni w scenie szacujących wartość Final Gather'ingu. Większa ilość promieni podnosi jakość ale i znacznie obniża szybkość renderingu. Max i Min Radius informują renderer w jakim promieniu w cieniowanego punktu mają być zbierane informacje o otaczającym świetle. Jeżeli ich wartości śą równie 0 to renderer wtedy sam szacuje wartości dla nich obu. Ale w tym przypadku my ustawimy je sami. Zobacz na kilka obrazków gdzie zmieniano te rzy parametry.


Czas 1m 36s
Final Gather Rays 100

Czas 2m 17s
Final Gather Rays 200

Czas 2m 57s
Final Gather Rays 300

Czas 3m 24s
Final Gather Rays 400

Czas 1m 27s
Final Gather Rays 100
Mix Radius 0.01
Max Radius 1

Czas 0m 51s
Final Gather Rays 100
Mix Radius 0.05
Max Radius 1

Czas 0m 31s
Final Gather Rays 100
Mix Radius 0.1
Max Radius 1

Czas 0m 21s
Final Gather Rays 100
Mix Radius 0.5
Max Radius 1

Czas 1m 21s
Final Gather Rays 100
Mix Radius 0.1
Max Radius 0.1

Czas 0m 41s
Final Gather Rays 100
Mix Radius 0.1
Max Radius 0.2

Czas 0m 32s
Final Gather Rays 100
Mix Radius 0.1
Max Radius 0.5

Czas 0m 31s
Final Gather Rays 100
Mix Radius 0.1
Max Radius 1

 


Jak pewenie zauważyłeś więcej promieni FG wystrzelonych w scenę zwalnia rendering ale podnosi jakość końcową. I jeżeli Min i Max Radius jest zwiększany to czas renderingu skraca się. Dla osiągnięcia najlepszej jakości/szybkości musisz znaleźć najbardziej odpowiednie ustawienia.Patrząc na obrazki powyżej możesz oszacować jak ustawić ilość promieni, możesz ustawić ich ok 300. Kiedy będziemy zwiększać ilość FG Rays prędkość renderingu będzie spadać, więc trzeba ją będzie skompensować parametrami Max i Min Radius dla których zmienimy wartości np na Min 0.25 i Max 1. Teraz jeśli zrenderujesz obrazek powinieneś otrzymać coś takiego.


Czas 0m 50s
Final Gather Rays 300
Mix Radius 0.2
Max Radius 1


Wygląda to dobrze i rendering był też stosunkowo szybki... więc osiągnelismy swój cel. Na koniec przejdź do mentalrayOptions1 do zakładki Sampling Quality i ustaw parametr Max Samples na 2 i włącz Jitter. Następnie przejdź do RenderGlobals (Maya Software) i zwiększ rozdzielczość do 800 600. To wszystko naciśnij Render i pozwól Mentalowi czynić jego powinność.


Jeżeli chcesz podnieść realizm sceny możesz użyć area Light zamiast spot Light. To daje bardziej zblurowane i bardziej realistyczne cienie. Aby to zrobić przejdź do AE swiatła i poniżej MentalRay > AreaLight włącz Area Light. Ten obrazek został wyrenderowany bez Area Light.


Czas 4m 41s
Rozdzielczość 640 x 480 - Max Samples 2 + Jitter
Final Gather Rays 250
Mix Radius 0.25
Max Radius 1


Scena domowa 2

Do tej pory przechodziliśmy krok po kroku przez pierwszą część tego tutoriala, tym razem przejdziemy trochę szybciej. Nasza następna scena będzie trochę inna od pierwszej, ale również będzie sceną domową. Zerknij poniżej na geometrię i ustawienie świateł.



 

POBIERZ SCENĘ

Jak widzisz są tam dwa światła i dwa otwory którymi światło wpada do środka. Geometria jest prosta ale rozkładanie się światła będzie trochę bardziej skomplikowane niż w scenie pierwszej. Teraz trochę o swiatłach. To po lewej stronie jest określone za pomocą paramertów: Color 1 0.708 0.326 Intensity 800 Decay Rate Quadric, a drugie światło po prawej stronie: Color 0.486 0.829 1 Intensity 500 Decay Raye Quadric.
OK więc zabierajmy sie do roboty i przetestujmy pewne ustawienia GI. Przypiszemy GI dla obu świateł. Poniżej są obrazki przedstawiające ustawienia GI dla lewego światła potem dla prawego a następnie dla obu.


Światło lewe
Energy 8000
Exponent 1.1
Global Illumination Photons 20 000


Światło prawe
Energy 8000
Exponent 1.3
Global Illumination Photons 20 000


Oba światła

 


Na obrazku z prawej strony widać jednak jakiś szum. Aby polepszyć trochę efekt GI przejdź do mentalrayOptions1 i zmnień Global Illum Accuracy na 100 a Global Illum Radius na 5. To wygładzi GI i jeżeli to wyrenderujesz uzyskasz coś takiego.


Global Illum Accuracy 100
Global Illum Radius 5


Wygląda to dobrze więc teraz zajmiemy się konfiguracją FG. Jak już wcześniej przeczytałeś opcje FG znajdują się w RenderGlobals (MentalRay) > mentalrayOptions1 w zakładce Final Gather. Jeżeli pozostawisz wartości domyślne uzyskasz efekt jaki jest widoczny na pierwszym rysunku poniżej.


Czas 6m 54s
Final Gather Rays 1000
Mix Radius 0
Max Radius 0

Czas 1m 33s
Final Gather Rays 100
Mix Radius 0
Max Radius 0

Czas 1m 55s
Final Gather Rays 250
Mix Radius 0.1
Max Radius 5

Czas 1m 12s
Final Gather Rays 180
Mix Radius 0.3
Max Radius 5


Pierwszy jest najprawdopodobniej najbardziej dokładnym rendringiem ponieważ paramety Rays wynisi 1000 ale przez to również rendering jest bardzo wolny. Drugi wykorzystuje dziesięć razy mniej promieni od pierwszego, dlatego w scenie widzimy plamy. Dla 2 pierwszych obrazków pozostawiłem paramtry Min i Max na poziomie 0 więc renderer sam je ustawiał. W kolejnych 2 renderingach dalej się trochę bawiłem wartością Rays i zmieniłem wartości Min i Max. Jak możesz zauważyć na trzecim obrazku zwiększyłem wartość Min aby wygładzić efekt FG, ale nie za dużo, ponieważ są tam gdzieniegdzie jeszcze plamy na ścianach i skrzynkach. Naszym celem jest uzyskanie podobnej iluminacji jak na pierwszym obrazku ale ze zmniejszonym czasem renderingu. Czwarty obrazek jest chyba tym czego potrzebujemy. Szybkość renderingu jest zbliżona do pozostałych a i efekt iluminacji w scenie wygląda całkiem nieźle. Jest tam co prawda kilka niedociągnięć w niektórych obszarach więc jeżeli przeszkadza co to, to możesz kontynuować udoskonalanie rozświatlania sceny.
Zerknij poniżej na wyrenderowany w wyższej rozdzielczości obrazek.


Czas 4m 0s
Rozdzielczość 640 x 480 - Max Samples 2 + Jitter
Final Gather Rays 180
Mix Radius 0.3
Max Radius 5

 


Scena plenerowa

W takich scenach istnieją dwa główne źródła światła, niebo - niebieskie światło i słońce - jasno żółte światło. Słońce może być zasymulowne jako pojedyncze źródło światła a światło nieba jako ogromna kula dookoła sceny. Ale jak ta kula może oświetlać obiekty ? Taki trik moża uzyskać dzięki algorytmowi FG, i kula z przypisanym szaderem poprostu "świeci". Jak stworzyć ten efekt zobaczysz potem. W niektórych sytuacjach użycie samego FG wystarcza do oświetlenia sceny. Problemy przychodzą dopiero wtedy gdy niektóre partie sceny nie są kierunkowo oświetlone przez słońce lub niebo. Wadą FG przyrównując do rozwiązań globalnej iluminacji w innych rendererach jest to że nie można ustawić maxymalnej energii dla promieni FG w scenie. I przez to musimy posługiwać się fotonami używanymi przy wyliczeniach GI.
Więc zabierajmy się do pracy. W naszej scenie użyjemy prostego modelu który jest przedstawiony poniżej.


POBIERZ SCENĘ

Zanim zabierzemy się za pracę ze światłem słonecznym, powinniśmy stworzyć dwie kule otaczające świątynię. Wewnętrzna kula będzie niewidoczna dla użytkownika i posłuży jako źródło oświetlenia a druga kula będzie widoczna i nie będzie dawać żadnego efektu oświetlania sceny. Więc stwórzmy pierwszą kulę i przeskalujmy ją na 40 40 40. Otwórz Hypershade'a w jakimś oknie i stwórz szader Lambert, przypisz go do kuli którą właśnie zrobiłeś. Przejdź do Edytora Atrybutów tego szadera i ustaw Diffuse na 0 a Incadescence na kolor nieba. Ja użyłem R 0.269 G 0.38 B 0.537. Możesz nawet zmienić nazwę tego szadera na coś w rodzaju Kula_wewnętrzna. Kiedy to zrobisz przejdź do okna widokowego i zaznacz tą kulę, otwórz Edytor Atrybutów i przejdź do nurbsSphereShape1, otwórz zakładkę Render Stats i wyłącz Cast Shadow, Receive Shadow, Primary Visibility, Visible in Refraction i Visible in Reflection. To ukryje twoją kulę i kiedy włączysz FG, renderer będzie używał jej jako źródła światła.
Po tym jak stworzyłeś pierwszą sferę nadszedł czas na drugą, stwórz ją i przeskaluj na 41 41 41. Teraz również stwórz następny szader Lambert i przypisz go do nowej kuli. W Edytorze Atrybutów zmnień wartości Diffuse i Color szadera na 0, a Incadescence ustaw taki jaki chcesz. Ta sfera będzie widziana podczas renderingu ale nie będzie dawała żadnych efektów świetlnych. Dlaczego robie to wszystko na dwóch kulach jeżeli mogę to zrobić na jednej? Poniweaż jeżeli robisz wszystko tak jak dotychczas masz większą kontrolę nad ilością wyemitowanego oświetlenia przez niebo do sceny (pierwsza sfera) oraz kontrolę nad wyglądem nieba na renderingu (druga sfera). Jeżeli wynrenderowałbyś teraz scenę zobaczyłbyś coś takiego.


Bez FG i GI


Więc jak zmusić naszą pierwszą sferę do tego by była źródłem światła? Rozwiązanie tkwi w zastosowaniu Final Gather'ingu. Tak jak to jest również wspomniane wcześniej przejdź do RenderGlobals(MentalRay) i zakładki Quality i kliknij na przycisku z szachownicą znajdującym się obok Render Quality. Kiedy mentalrayOptions1 się otworzy przejdź do zakładki Final Gather i włącz Final Gather. Aby mieć szybki podgląd tego co do tej pory zrobiliśmy ustaw Final Gather Rays na 100 i zrenderuj scenę.


Efekt SKYLIGHT używając Final Gather


Teraz już wiesz jak stworzone niebo odziaływuje na scenę. I to jest właściwie koniec tworzenia światła z nieba.
Następnym krokiem jest stworzenie światła słonecznego. Aby to zrobić stwórz światło typu Spotlight. Prawdopodobnie zapytasz dlaczego nie użyjemy światła typu Directional które tworzy oświetlenie podobne do światła słonecznego. Używamy światła Spotlight dlatego że światło Directional nie może być używane do obliczania GI. I dlatego musimy przesunąć to światło daleko od modelu aby uderzające model promienie były prawie równoległe.
Teraz gdy masz już stworzone to światło przesuń je poza świątynię, gdzieś w pobliżu krawędzi sfery wewnętrznej ( X 18.6 Y 23.23 Z 15.58), i skieruj światło na świątynię. Teraz przejdź do Edytora Atrybutów światła i ustaw jego kolor na jasno pomarańczowy (R 1 G 0.87 B 0.57) i ustaw Intensity na 0.75. Zmień również Cone Angle na 90 i w zakładce Shadow > Raytrace Shadow Attributes włącz Use Raytrace Shadow. Teraz jeśli wyrenderujesz scenę zobaczysz coś takiego.


Efekty SKYLIGHT i SUNLIGHT przy FG


Wygląda ok, ale trzeba jeszcze podkręcić FG ale tym zajmiemy sie później. Teraz przypomnij sobie jak mówiłem że nie możemy zwiększyć energii promieniom FG tak jak można to uczynić w innych rendererach. I skutkiem tego jest wada na rysunku powyżej, przestrzeń wewnątrz świątyni nie jest oświetlona a powinna jeśli przyjrzysz się kilku realnym przykładom. I dlatego potrzebujemy pomocy GI.


Aby ustawić GI przejdź do Edytora Atrybutów światła i w zakładce mental ray > Caustics and Global Illumination włącz Global Illum. Gdy skończysz możesz zrobić testowy render. Zobaczysz że po włączeniu GI nie będzie większych zmian w oświetleniu ciemnej przestrzeni w scenie. Jest tak ponieważ GI jest zbyt ciemne w tym przypadku, i aby było ono bardziej widoczne w Edytorze Atrybutów światła zmniejsz wartość parametru Exponent na 1.6 i wyrenderuj scenę.


FG oraz GI


I to jest to czego chcemy! Teraz kiedy mamy ustawione FG i GI naszą ostatnią modyfikacją będzie dopieszczenie wartości parametrów w obu metodach. Kiedy pierwszą część tego tutoriala przechodziliśmy krok po kroku, to tym razem podam wam jakich wartości powinniście użyć. Pierwszą rzeczą jaką powinniście zrobić to zwiekszyć wartość Global Illum Photons do 50000, Global Illum Accuracy na 250 i Global Illum Radius na 3. To troche zwolni rendering ale uzyskamy wysoką jakość iluminacji. Dla Final Gather'ingu ustaw Final Gather Rays na 250, Min Radius na 0.75 a Max Radius na 8.


Kiedy używamy pojedynczego światła typu Spotlight do symulacji światła słonecznego, tworzy ono zbyt ostre cienie co nie jest zbyt realistyczne, i dlatego użyjemy mentalowego Area Light. Przejdź do Edytora Atrybutów światła potem do zakładki mentalray > Area Light i włącz Area Light i ustaw jego typ na Sphere. W opcjach samplowania możesz zwiększyć jakość cieni jeśli chcesz, ale możemy je zostawić teraz tak jak są. Jeśli przełączysz się do trybu wyświetlania siatkowego w oknie widokowym zauważysz sferę dookoła światła ta sfera reprezentuje rozmiar Area Light. Jest ona teraz trochę za mała więc przeskalujmy ją na 2 2 2. To wszystko, teraz możemy wyrenderować końcowy obrazek w wysokiej rozdzielczości.


Końcowy rendering
Czas 4min 5sec przy rozdzielczości 480x360

 


Używanie obrazów HDRI

Na koniec będziemy się zajmować wykorzystaniem obrazów HDRI w renderingu. Zakładam że wiesz co to są obrazy HDRI (skrót od High Dynamic Range Image). Jeśli nie wiesz odwiedź http://www.debevec.org/. Final Gather'ing jest naszą kluczową metodą renderingu gdy chcemy wykorzystać obrazy HDRI. W tej metodzie nie używamy świateł i jedyne oświetlnie sceny pochodzi z otaczającej scenę sfery do której jest przypisany obraz HDRI. FG zbiera wszystkie informacje z obrazu HDRI i oświetla scenę.


Na początek pobierz kilka obrazów HDRI. Kilka jest tutaj http://www.debevec.org/Probes/. Do tego tutoriala użyjemy obrazów The Uffizi Gallery, Florence z podanej strony więc proszę ściągnijcie je. Pobierzcie również mały program o nazwie HDRShop z http://www.debevec.org/HDRShop/.


Teraz możemy zabrać się do pracy. Uruchom HDRShop i otwórz obraz .hdr jaki ściągnąłeś. Ponieważ obraz HDR jest mapą kątową, a chcemy ją przypisać do kuli, przekształcimy ją na Latitude/Longitude Map. Aby tego dokonać przejdź do Image > Panorama > Panoramic Transformations. Po lewej stronie gdzie jest ustawione żródło pliku ustaw Format na Light Probe a po prawej stronie ustaw Format na Latitude/Longitude i naciśnij OK. Po pewnym czasie wyskoczy nowe okno ze stworzoną mapą. Klikij Save As i wybierz format Radiance HDR i zapisz plik.
Maya nie wspiera wyświetlania obrazów HDR w oknach widokowych jeśli jakiś z nich przypiszesz do obiektu.
Przełącz się do Mayi i załaduj prostą scenę którą stworzyłem.

POBIERZ SCENĘ

Jeśli przeglądniesz scenę zauważysz że do wszystkich obiektów jest przypisany szader Blinn. Jest tak ponieważ szader Lambert nie może odbijać otoczenia, a właśnie tego chcemy - pięknego renderingu z wykorzystaniem HDRI który powstaje również dzięki odbijaniu otoczenia przez obiekty. Zauważysz również że jest jedno światło w scenie którego Intensity jest równe 0. Jest ono potrzebne ponieważ gdy nie mamy żadnego światła w scenie renderer sam tworzy jedno światło a tego przecież nie chcemy. Teraz stwórz kulę do której przypiszemy obraz HDR. Przeskaluj sferę na 20 20 20. Gdy to zrobisz stwórz jeden materiał Labmert i przypisz do sfery. Przejdź do Edytora Atrybutów tego szadera i wprowadź kilka zmian. Kliknij na 'szachownicy' obok parametru Ambient Color i w zakładce 2D Textures kliknij na File. Kiedy otworzy się okno z ustawieniami pliku, kliknij na ikonce folderu znajdującej się po prawej stronie Image Name i wybierz obraz .hdr jaki zapisałeś wcześnej. Również w Hypershade przyłącz output color z pliku do kanału color szadera Lambert. Obraz jest zmapowany na sferę ale nie jest zmapowany prawidłowo. Przejdź do węzła place2DTexture tego obrazu i ustaw Rotate Frame na 90. Teraz Obraz jest zmapowany poprawnie. Zgodnie z tym czego dowiedziałeś się wcześnej włącz Final Gather'ing. Przed testowym renderingiem ustaw jeszcze FG Rays na 100 aby rendering był szybszy. Twój rendering będzie najprawdopodobniej wyglądał tak.


Czas 0 min 59 sec
Finalgather Rays 100
Min Radius 0
Max Radius 0


Nieźle ale gdzieniegdzie są jeszcze jakieś plamy, musimy więc trochę 'podkręcić' FG. Ponieważ chcemy wykorzystać tylko FG bez GI, 100 promieni nie będzie wystarczające, więc ustawimy większą wartość, może około 300-400. Ja użyłem 350 w tym przypadku.


Czas 1 min 37 sec
Finalgather Rays 350
Min Radius 0
Max Radius 0


Jest tutaj dużo mniej plam niż w poprzednim przypadku, czas renderingu nie wzrósł bardzo. Aby wygładzić obraz jeszcze bardziej zwiększymy FG Rays na 500 i ustawimy Min Radius na 0.3 a Max Radius na 8. Oto rezultat.


Czas 1 min 22 sec
Finalgather Rays 500
Min Radius 0.3
Max Radius 8


Jest on lepszy niż ostatni. Jednak obraz jest trochę za ciemny, więc zwiększymy rozświetlenie sceny. Aby to zrobić przejdźmy do Hypershade, zaznaczmy węzeł File przyłączony do naszego szadera Lambert i kliknijmy na nim dwa razy aby wejść do Edytora Atrybutów tego węzła. Otwórz zakładkę Color Balance i kliknij na prostokącie z kolorem przy parametrze Color Gain. Kiedy pojawi się okno Color Chose ustaw V na 1.7 i kliknij Accept. To zwiększy jasność obrazu HDRI i oświetlenia sceny. Czasem obrazy HDRI używane do oświetlania sceny mogą być za ciemne, więc jeśli to będzie miało miejsce zwiększ ich jasność wedle swojego uznania. A oto końcowy rendering.


Czas 5min 15 sec
Rozdzielczość 480x360 przy Max Samples 2
Final Gather Rays 500
Min Radius 0.3
Max Radius 8


I to jest koniec :-) Mam nadzieję że mój tutorial wam pomógł. Jeśli macie jakieś sugestie lub pytania piszcie do mnie na adres tbratinc@foi.hr

 

18 stycznia 2003

Tutorial przetłumaczony dla: www.maya3d.users.pl