Każdy grafik 3D musiał kiedyś zacząć. Jedni podnoszą skill szybciej (nie ja), inni wolniej (to akurat ja). Ale zdecydowana większość popełnia dokładnie te same błędy. A ja to już w szczególności, więc piszę z własnego doświadczenia.
Żadna bryła nie jest idealnie kanciasta. Każda ma mniejsze lub większe zaokrąglenie krawędzi. Wydaje się, że tego nie widać, ale to nieprawda. Bevele na krawędziach robią naprawdę dużą robotę. Przyjrzyjcie się dokładnie, każdy przedmiot w domu ma lekkie rozświetlenie na krawędzi, gdzie światło odbicia się prosto w stronę oka obserwatora. Przy braku beveli stojące obok siebie obiekty „na styk” zlewają się w całość, co w świecie realnym nigdy nie zachodzi. Zawsze widać miejsce styku. W programie trzeba to wymusić i można to zrobić na dwa sposoby.
Ręcznie, ingerując w siatkę albo przy pomocy modyfikatora. Tu może się pojawić sieczka w miejscach zbytniej komplikacji siatki, no i fizyczne zwiększenie elementów wpłynie na czas renderowania. Ale efekt jest zdecydowanie lepszy i mamy nad tym większą kontrolę.
Przy pomocy węzła Bevel w materiale. Jest to wygodniejsze w użyciu i nie wpływa fizycznie na siatkę tylko same wektory normalnych, ale efekt jest mniej spektakularny i z bliska „widać”, że coś jest nie tak. Nadaje się raczej do częściowi ukrytych elementów i to, gdy parzy się na nie „na wprost”. Dokładnie jak w przypadku tekstur, gdzie nierówności symuluje się przy pomocy mapy normalnych.
Poniżej widać różnice w podkreśleniu krawędzi.
A przynajmniej tak to wygląda, bo poza różnymi kolorami całość wygląda bardzo sztucznie. Nawet nie plastikowo tylko płasko i komputerowo, aż oczy bolą. A przecież nawet podstawowy węzeł Principled BDSF ma tak dużo ustawień, że w wielu przypadkach wystarczy do prostych scen, zwłaszcza produktowych, gdzie render powinien być „idealny”, ale jednak nie sztuczny.
Ja sam lubię prostotę i rzadko używam skomplikowanych materiałów (preferuję też proceduralne i bitmapowych używam, gdy już się nie da inaczej). Nie ogarniam też zabrudzeń i niedoskonałości, więc nie uderzam w realizm. Ale jednak w miarę prosto da się uzyskać poprawny rozkład światła, którym można oszukać oko.
Początkujących uszczegóławianie sceny (czy nawet modelu) przerasta. Mnie często też, bo jestem zbyt niecierpliwy i czasami wypuszczam model niedokończony i wracam do niego po jakimś czasie, kiedy mnie najdzie, że można coś dodać.
Im więcej szczegółów, załamań, wcięć i innych drobiazgów, tym bardziej finezyjnie rozkłada się światło, a odbicia są bardziej realistyczne. Zwłaszcza z odbiciami jest problem i dlatego często do oświetlania stosuje się mapy HDR, ale znacznie spowalniają renderowanie i generują duży szum, przez co trzeba albo zwiększać ilość sampli albo odszumiać, co potrafi mocno zepsuć rendering.
Poniżej dla kontrastu usunąłem jeszcze zdjęcie drzew za oknem. Bardzo pusta i depresyjna scena.
Wiele lat temu, jeszcze na silniku Internal było to sporym problemem, bo nie istniały inne światła niż punktowe. Nawet jeśli lampa była typu spot, to stożek był tylko symulowany, ale źródło było punktowe. Nie istniało też coś takiego jak Ambient Occlusion i trzeba to było symulować. Silniki Yafray i obecny Cycles bardzo dobrze rozpraszają światło, a domyślnie wstawiane lampy mają domyślnie sporą średnicę. Dzięki materiałom typu emiter można świecić dowolną bryłą, do tła przypisać mapę HDR czy bardzo fajną teksturę Sky Texture (czasami oświetlam nią prostą scenę i to w zupełności wystarczy).
Wciąż jednak widuję grafiki z płaskim światłem, wyglądające jak z dawnego Internala i prawdę mówiąc, nie wiem, z czego to wynika.
Poniżej widać różnicę między twardym i miękkim światłem.
W świecie realnym w dzień mamy jedno słońce (na oko punktowe, ale to zmyłka, bo faktycznie świeci całe niebo). Cycles jeszcze nie symuluje idealnie fizyki światła (rozproszenie, odbicia, wyciek kolorów), ale robi to całkiem znośnie. Często jedna trzeba scenę dodatkowo doświetlać lampami, które nie mają odpowiednika w rzeczywistości, zwłaszcza zbyt ciemne miejsca. Sam wciąż mam awersję do dodatkowych źródeł światła, bo trudno nad nimi zapanować.
Do prostych obiektów można używać świateł Tri-lights. Są to zwykłe lampy typu area analogiczne do studyjnych lamp z softboxami. Trzeba tylko je odpowiednio dostosować do sceny. Ja zbliżam maksymalnie do obiektu tak, żeby były tuż za obszarem „widzenia” kamery.
Może tego nie widać, ale tu naprawdę są 3 źródła światła.
W poniższym renderze stoiska w ogóle nie użyłem lamp, całe oświetlenie to materiał emitera. Jest go dużo, więc scena jest całkiem dobrze doświetlona.
Obecnie to się nazywa Fast GI Approximation. Przyznaję, że długi czas sam byłem wielkim fanem tego rozwiązania, bo myślałem, że dobrze symuluje rzeczywistość. Aż w końcu, podczas problemów z kuchnią dowiedziałem się, że wprost przeciwnie. Owszem, znacząco przyspiesza renderowanie i rozświetla zbyt ciemne zakątki sceny, ale wykonuje bardzo uproszczone obliczenia i w efekcie całość wygląda płasko. Podpowiedziano mi, że lepiej zwiększyć ilość odbić światła, albo dodać kolejne źródła.
Ambient Occlusion można używać przy prostych i niekoniecznie realistycznych modelach (niweluje ostre cienie), ale przy skomplikowanych scenach typu interior już niekoniecznie.
Dla odmiany możemy potrzebować zwiększenia kontrastu, zwłaszcza w metalowych materiałach. Do tego można użyć węzła AO, ale też z umiarem, bo nie jest zbyt realistyczny. Można nim dodać cienie na łączeniu obiektów, np. styku ścian.
Poniżej widać, że z powodu Ambient Occlusion tam, gdzie powinny być cienie, robi się nagle jasno. Pamiętam, że kilka dni głowiłem się, dlaczego tak się dzieje i nie wpadłem na najprostsze - ta funkcja jest po prostu do dupy. Na pewno nie sprawdza się w interiorach.
Oczywiście to nie wystarczy, żeby sceny były genialne. Przez to, że program nie symuluje idealnie świata, trzeba znać jego niedoskonałości i umieć im zapobiegać. Ale do tego potrzebne jest doświadczenie, które nabywamy wraz z kolejnymi pracami. Ja sam widzę u siebie znaczny progress w stosunku do tego, co robiłem jeszcze miesiąc temu. Ale wciąż mi daleko do poziomu, jaki chcę osiągnąć.