close
2fal2

Po stworzeniu mojej ostatniej pracy sporo osób pytało mnie o to, jak uzyskać efekt realistycznie rozchodzących się na wodzie fal. Ten wpis poświecę temu zagadnieniu.

Symulacja

1. Dodajemy dwa obiekty Plane

W pierwszej kolejności dodajemy obiekt plane, który posłuży nam jako powierzchnia naszej wody. Następnie skalujemy go i umieszczamy w odpowiednim miejscu. Musimy pamiętać, by zatwierdzić jego rozmiar i skale (ctrl+a -> Rotation & Scale).  Kiedy to już zrobiliśmy, możemy rozłożyć UV mapę. 

Teraz kopiujemy obiekt i przenosimy na inną warstwę (m). Musimy pamiętać, by obydwa pozostały na tej samej pozycji.

Następnie powracamy do naszego obiektu i w Edit Mode wykonujemy kilkukrotnie operacje Subdivide (zaznaczamy wszystkie wierzchołki ->w -> Subdivide). Im bardziej zagęścimy siatkę, tym symulacja będzie dokładniejsza.

Uzyskamy lepszy efekt, aktywując obiektowi miękkie cieniowanie  (t -> Shading -> Smooth).

2.Ustawiamy modyfikator Wave

Możemy teraz przydzielić naszemu obiektowy modyfikator Wave. Kiedy uruchomimy animacje na osi czasu, zobaczymy, jak całość zaczyna falować.

Zależy nam jednak na tym, by fale rozchodziły się dookoła obiektów, które będziemy wrzucali do naszej “cieczy”. Dlatego wartości: Speed, Width, Height, Narrowness ustawiamy na 0.

3.Uruchamiamy Dynamic Paint

Następnie dodajemy naszemu obiektowi “Dynamic Paint” -> “Canvas”. Dzięki temu będziemy mogli zaznaczać na powierzchni miejsca, dookoła których będą rozchodziły się fale. Musimy pamiętać również o tym, by w ustawieniach “Dynamic Paint” zaznaczyć Surface Type -> Waves. Program musi wiedzieć, do czego ma odnosić się ten modyfikator.

W zakładce Dynamic Paint Advance, możemy spersonalizować ustawienia naszych fal.

4. Dodajemy nowy obiekt

Kolejnym krokiem jest dodanie obiektu, z którym nasze fale będą mogły kolidować — w tym przykładzie użyjemy sfery.

Kiedy mamy już nasz obiekt, dodajemy mu z zakładki fizyki  Dynamic Paint -> Brush.

Teraz po uruchomieniu animacji możemy oglądać pięknie rozchodzące się fale dookoła naszego obiektu. Całość działa na tyle płynnie, że w czasie rzeczywistym możemy go przemieszczać i oglądać zachowanie cieczy.

Wypalanie tekstury

Stworzony przez nas model falującej tafli wody jest bardzo mało wydajny — posiada bardzo wiele krawędzi, co znacząco spowolni czas renderowania. Możemy na podstawie stworzonej przez nas symulacji, wypalić normal mapę.

1. Zatwierdzamy modyfikatory

Zaczynamy od zaakceptowania wszystkich modyfikatorów. Niestety utracimy teraz możliwość dalszego symulowania fal.

2. Tworzymy nowy obraz i nakładamy go na obiekt

Następnie w Image Editor tworzymy nowy obraz, na którym wypalimy naszą normal mapę.

Kiedy to już zrobimy, przenosimy skopiowany wcześniej plane (ten bez zniekształceń) na warstwe, w której obecnie pracujemy i dodajemy mu nowy materiał.

Teraz uruchamiamy node editor tego materiału i powstałą wcześniej  teksturę podłączamy w naszym materiale do shadera Diffuse.

3. Wykonujemy Bake

Mając zaznaczony obiekt przechodzimy do panelu z ustawieniami Bake. Wybieramy tam oczywiście Bake Type -> Normal. Kolejnym ważnym ustawieniem jest zaznaczenie “Selected to Active” aby nasze obiekty zostały wykryte do wypalania.

Teraz zaznaczamy obydwa obiekty. Żeby wypalanie się powiodło, musimy w pierwszej kolejności zaznaczyć obiekt z wybrzuszeniami. W tym momencie nie pozostaje nam nic innego jak kliknąć Bake i cieszyć się wypaloną normal mapą. Efekt możemy zobaczyć w Immage Editor (normal mapa została wypalona na stworzonej przez nas wcześniej teksturze).

Ostatni szlif

Ostatnim działaniem jakie możemy zrobić, to podłączyć naszą normal mapę do plane i cieszyć się z uzyskanych przez nas efektów. Zapraszam do dzielenia się waszymi pracami w komentarzach!

Mateusz Feliks

The author Mateusz Feliks

Założyciel serwisu graphicway.pl. Pasjonat grafiki.

Leave a Response