mardraq 3d
BLENDER: computer graphics
Teksturowanie gospody
Cz. 4 Tekstura muru pruskiego
W poprzedniej oteksturowaliśmy kamienny mur a teraz zajmiemy się stworzeniem zestawu tekstur- czyli mapy normalnych, tekstury kolorów i specu lar mapy dla muru pruskiego. Zajmiemy się samymi ścianami- belki drewniane są osobnym elementem.
Rozpoczynamy od rozłożenia siatki modelu na rysunku i wypalenia mapy ao z uwzględnieniem otoczenia:
Rozpoczynamy od rozłożenia siatki modelu na rysunku i wypalenia mapy ao z uwzględnieniem otoczenia:

Tworzymy nowy obraz w Gimpie o wymiarach mapy ao i zapisujemy go np. jako sciana_pruska.xcf. Jako kolor pierwszoplanowy wybieramy jakiś beżowo-szary i dajemy Edycja-> Wypełnij kolorem pierwszoplanowym- warstwę nazywamy np. kolor. Teraz Plik->Otwórz jako warstwy i wskazujemy naszą mapę ao, a jej tryb ustawiamy na pokrywanie, a warstwę nazywamy np. ao1. Duplikujemy warstwę kolor i dajemy Filtry-> Szum-> Szum RGB z ustawieniami domyślnymi lub eksperymentujemy. W tym momencie możemy usunąć warstwę kolor i pracować na jej kopii, ale ja wolę zostawić sobie oryginał, tak na wszelki wypadek, więc jedynie wyłączam widoczność warstwy kolor- powinna być na samym dole. Klikamy na ukrytą warstwę kolor i dodajemy nową warstwę, którą wypełnimy kolorem białym i nazwiemy ją np. murek_zarys. Pozostając na warstwie murek_zarys wyłączamy widoczność warstw kopia kolor i ao1, a tak to wygląda w Gimpie na panelu Warstw:

Teraz przygotujemy sobie zarys spoin muru. Moja tekstura ma wymiar 2048x2048 px. Teraz z górnego menu obrazu wybieramy Obraz-> Konfiguruj siatkę i dajemy takie (lub inne ) ustawienia:

Teraz Widok-> Wyświetl siatkę i mamy na naszym obrazku fajną siateczkę. Wzdłuż poziomych linii narzędziem ołówek, z dobraną wielkością pędzla Circle, pomagając sobie naciśnięciem SHIFT rysujemy poziome spoiny. Robimy KLIK na początku, wciskamy SHIFT i ewentualnie CTRL i KLIK na końcu. Rysujemy sobie cegiełki, o tak:

Wchodzimy w Widok i likwidujemy widoczność siatki.
W przyborniku wybieramy narzędzie Zaznaczenie wg kolorów z ustawieniami jak na rysunku. Klikamy na czarną spoinkę i dajemy Zaznaczenie-> Zniekształcenie obwodu z domyślnymi ustawieniami.

Cały czas z widocznym zaznaczeniem dodajemy nową białą warstwę i nazywamy ją murek_zarys1. Teraz Edycja-> Wypełnij kolorem pierwszoplanowym (który powinien być czarny). Wychodzimy z zaznaczenia (Zaznaczenie-> Nic) i naszą poprzednią warstwę (tą z równymi liniami) , czyli murek+_zarys, przesuwamy na sam dół i odhaczmy oczko. Tak jak robiliśmy to w cz.3 skalujemy naszą warstwę murek_zarys1 do rozmiary 256x256 px i tak jak poprzednio: zaznaczamy, kopiujemy i skopiowanym obrazem za pomocą narzędzia Wypełnij deseniem wypełniamy nową warstwę, którą nazwiemy murek. Wykorzystaną warstwę murek_zarys1 przesuwamy na sam dół i ukrywamy jej widoczność. Wracamy do warstwy murek i ustawiamy kolor pierwszoplanowy na jakiś szarawy, a kolor tła na jakiś ceglany. Gradient zostawiamy domyślny (powinien być liniowy w trybie zwykłym). Dajemy Kolory-> Odwzorowania-> Odwzorowanie gradientu i mamy piękny ceglany murek:

Gdyby miał być to tylko mur, to musielibyśmy wcześniej popracować nad nim, tworząc trochę więcej nierówności, ale ten murek będzie tylko widoczny w niewielu miejscach, więc pozostawimy go w takim stanie.
W tym momencie będą nas interesowały jedynie trzy górne warstwy: od dołu warstwa murek, nad nią kopia kolor i na samej górze warstwa ao. Przechodzimy na warstwę kopia kolor PPM i z menu wybieramy Dodaj maskę warstwy. Klikamy na masce, zaznaczając ją (sprawy masek omówiliśmy w cz. 3). Dajmy Filtry-> Renderowanie-> Chmury-> Jednolite chmury z dość gęstym ustawieniem. Następnie dajmy Kolory-> Redukcja kolorów z ustawieniem na 2. Otrzymujemy czarno-biały obraz chmurek. Ręcznie narzędziem Ołówek możemy poprawić miejsca, w których ceglane dziury przenikają się z belkami- tak aby nie było wrażenia sztuczności. Otrzymać możemy taki rezultat:
W tym momencie będą nas interesowały jedynie trzy górne warstwy: od dołu warstwa murek, nad nią kopia kolor i na samej górze warstwa ao. Przechodzimy na warstwę kopia kolor PPM i z menu wybieramy Dodaj maskę warstwy. Klikamy na masce, zaznaczając ją (sprawy masek omówiliśmy w cz. 3). Dajmy Filtry-> Renderowanie-> Chmury-> Jednolite chmury z dość gęstym ustawieniem. Następnie dajmy Kolory-> Redukcja kolorów z ustawieniem na 2. Otrzymujemy czarno-biały obraz chmurek. Ręcznie narzędziem Ołówek możemy poprawić miejsca, w których ceglane dziury przenikają się z belkami- tak aby nie było wrażenia sztuczności. Otrzymać możemy taki rezultat:

Jesteśmy nadal na masce i narzędziem Zaznaczenie według koloru klikamy na czarny obszar. Dodajemy nową warstwę i nazwiemy ją np. rozjaśnienie. Kolor pierwszoplanowy ustawiamy na biały. Ustawiamy narzędzie Ołówek na pędzel Circle 17 i drgania na poziom trochę wyższy niż 1 np. tak:

Przy aktywnym zaznaczeniu przechodzimy na utworzoną warstwę rozjasnienie i dajemy Edycja-> Rysuj wzdłuż zaznaczenia z nastę pującymi ustawieniami:

Dajemy Rysuj a następnie Filtry-> Rozmycie-> Rozmycie Gaussa z promieniem ok. 20. Teraz Zaznaczenie-> Odwróć i wciskamy Delete na klawiaturze i zmieniamy tryb warstwy np. na Miękkie światło. i Filtry-> Rozmycie-> Rozmycie Gaussa z promieniem ok. 20.
Zmieniamy kolor pierwszoplanowy na czarny i pędzel przy narzędziu Ołówek zmniejszamy na Circle 3. Dodajemy nową warstwę o nazwie cien i znowu Edycja-> Rysuj wzdłuż zaznaczenia z wybranym rysowaniem narzędziem Ołówek. Teraz rozmycie Gaussa, ale z promieniem 2 lub 3 px, Zaznaczenie-> Odwróć i klawisz Delete na klawiaturze . Teraz Zaznaczenie-> Nic. Nad warstwą cien dodajmy nową warstwę o nazwie brudek, na której dajemy Filtry-> Renderowanie-> Chmury-> Plazma z odpowiadającymi nam ustawieniami, następnie Kolory-> Desaturacja i zmieniamy tryb warstwy na Wypalanie. Z Kryciem możemy poeksperymentować. Tryb warstwy ao1 (na samej górze) również ustawiamy na wypalanie.
Uwaga!!! Przy odwracaniu zaznaczenia i usuwaniu musimy sami eksperymentować, bo mogłem coś pomieszać. Chodzi o to, że jak narysowaliśmy rozjaśnienie i rozmyliśmy je to musimy usunąć tą część, która jest w środku, a przy cieniowaniu usuwamy tą część, która jest na zewnątrz.

Dajemy Rysuj a następnie Filtry-> Rozmycie-> Rozmycie Gaussa z promieniem ok. 20. Teraz Zaznaczenie-> Odwróć i wciskamy Delete na klawiaturze i zmieniamy tryb warstwy np. na Miękkie światło. i Filtry-> Rozmycie-> Rozmycie Gaussa z promieniem ok. 20.
Zmieniamy kolor pierwszoplanowy na czarny i pędzel przy narzędziu Ołówek zmniejszamy na Circle 3. Dodajemy nową warstwę o nazwie cien i znowu Edycja-> Rysuj wzdłuż zaznaczenia z wybranym rysowaniem narzędziem Ołówek. Teraz rozmycie Gaussa, ale z promieniem 2 lub 3 px, Zaznaczenie-> Odwróć i klawisz Delete na klawiaturze . Teraz Zaznaczenie-> Nic. Nad warstwą cien dodajmy nową warstwę o nazwie brudek, na której dajemy Filtry-> Renderowanie-> Chmury-> Plazma z odpowiadającymi nam ustawieniami, następnie Kolory-> Desaturacja i zmieniamy tryb warstwy na Wypalanie. Z Kryciem możemy poeksperymentować. Tryb warstwy ao1 (na samej górze) również ustawiamy na wypalanie.
Uwaga!!! Przy odwracaniu zaznaczenia i usuwaniu musimy sami eksperymentować, bo mogłem coś pomieszać. Chodzi o to, że jak narysowaliśmy rozjaśnienie i rozmyliśmy je to musimy usunąć tą część, która jest w środku, a przy cieniowaniu usuwamy tą część, która jest na zewnątrz.
Jesteśmy teraz szczęśliwymi posiadaczami pliku z teksturą o kilku warstwach:

Rezultat po nałożeniu tekstury w Blenderze i wyrenderowaniu może być taki:

Wykonaliśmy sobie teksturę koloru dla muru pruskiego i nadszedł czas na mapę normalnych. Mapę zrobimy w Gimpie. Tutaj uwaga techniczna: tworzenie map normalnych w programach 2D ma raczej sens, gdy mamy do czynienia z obiektami, których ściany możemy rozkładać prostokątnie. Jeżeli kształty obiektu są obłe, to po rozłożeniu siatki UV będziemy mieli miejsca większego rozciągania tekstury i wynikiem rysowania np. koła na teksturze w programie 2D będzie elipsa, po nałożeniu tekstury na obiekt.
Otwieramy plik sciana_pruska.xcf i zapisujemy go jako sciana_pruska_nm.xcf. Pozostawiamy jedynie sześć warstw pokazanych na rysunku wyżej i na każdej warstwie zastosujemy Kolory-> Desaturacja. Tak spreparowany plik możemy potraktować jako specu lar mapę, ewentualnie jeszcze jakieś korekty kontrastu i jasności.
Wracamy do wykonywania mapy normalnych, ale zanim cokolwiek uczynimy to trochę teorii tworzenia bump mapy, na podstawie której tworzona jest normal mapa w programach 2D. Jeżeli naszą teksturę Blender będzie odczytywał jako bump mapę to kolor czarny oznacza najniższe miejsce a kolor biały najwyższe. Jeżeli mam murek z warstwą tynku np. grubości 2 cm, pod nim ceglany mur, ze spoinami wgłębionymi też 2 cm w stosunku do cegieł to od najniższego do najwyższego miejsca mamy razem 4 cm. Oznacza nam to, że spoiny powinny być czarne (notacja HSV 0,0,0), cegły w odcieniu szarości w notacji HSV 0,0,50 (w RGB 128,128,128), a tynk powinien być biały (notacja HSV 0,0,100). Uzbrojeni w taką wiedzę będziemy teraz dopasowywać nasze warstwy. Dla ułatwienia wyłączamy widoczność warstw ao1, brudek i cien. Warstwa rozjaśnienie stanowi najwyższy punkt naszej mapy, więc powinna być biała (lub zbliżona do białej) i taka jest, bowiem rysowaliśmy ją białym kolorem. Przechodzimy na sam dół do warstwy murek. Tutaj okazało się, że po Desaturacji cegiełki są ciemniejsze od spoin, a na bump mapie powinno być odwrotnie, więc zastosujemy na tej warstwie Kolory-> Inwersja. Otworzymy narzędzie Kolory-> Jasność i kontrast i zmniejszymy jasność a powiększymy kontrast, tak aby spoiny była jak najbardziej ciemne, ale jeszcze widoczne. Na warstwie kopia kolor zastosujemy to samo narzędzie, ale tylko będzie my rozjaśniać. Musimy sobie teraz odpowiedzieć na pytanie, czy następne warstwy są nam potrzebne do tworzenia bump mapy. Zostawimy dwie warstwy, ale zmienimy im poziom krycia: dla warstw cien i brudek na 5% a warstwę ao1 usuwamy, lub robimy niewidoczną. Zapisujemy sobie nasz plik i zapisujemy go teraz jako np. sciana_pruska_bump.png. Zamykamy plik png (bo jest z warstwami) i otwieramy go ponownie i zapisujemy jako sciana_pruska_nm.png . Teraz stosujemy Filtry-> Odwzorowania-> Normalmap (jeżeli Gimp nie jest standardowo wyposażony w ten plugin to szukamy go w necie i instalujemy) z następującymi ustawieniami:
Otwieramy plik sciana_pruska.xcf i zapisujemy go jako sciana_pruska_nm.xcf. Pozostawiamy jedynie sześć warstw pokazanych na rysunku wyżej i na każdej warstwie zastosujemy Kolory-> Desaturacja. Tak spreparowany plik możemy potraktować jako specu lar mapę, ewentualnie jeszcze jakieś korekty kontrastu i jasności.
Wracamy do wykonywania mapy normalnych, ale zanim cokolwiek uczynimy to trochę teorii tworzenia bump mapy, na podstawie której tworzona jest normal mapa w programach 2D. Jeżeli naszą teksturę Blender będzie odczytywał jako bump mapę to kolor czarny oznacza najniższe miejsce a kolor biały najwyższe. Jeżeli mam murek z warstwą tynku np. grubości 2 cm, pod nim ceglany mur, ze spoinami wgłębionymi też 2 cm w stosunku do cegieł to od najniższego do najwyższego miejsca mamy razem 4 cm. Oznacza nam to, że spoiny powinny być czarne (notacja HSV 0,0,0), cegły w odcieniu szarości w notacji HSV 0,0,50 (w RGB 128,128,128), a tynk powinien być biały (notacja HSV 0,0,100). Uzbrojeni w taką wiedzę będziemy teraz dopasowywać nasze warstwy. Dla ułatwienia wyłączamy widoczność warstw ao1, brudek i cien. Warstwa rozjaśnienie stanowi najwyższy punkt naszej mapy, więc powinna być biała (lub zbliżona do białej) i taka jest, bowiem rysowaliśmy ją białym kolorem. Przechodzimy na sam dół do warstwy murek. Tutaj okazało się, że po Desaturacji cegiełki są ciemniejsze od spoin, a na bump mapie powinno być odwrotnie, więc zastosujemy na tej warstwie Kolory-> Inwersja. Otworzymy narzędzie Kolory-> Jasność i kontrast i zmniejszymy jasność a powiększymy kontrast, tak aby spoiny była jak najbardziej ciemne, ale jeszcze widoczne. Na warstwie kopia kolor zastosujemy to samo narzędzie, ale tylko będzie my rozjaśniać. Musimy sobie teraz odpowiedzieć na pytanie, czy następne warstwy są nam potrzebne do tworzenia bump mapy. Zostawimy dwie warstwy, ale zmienimy im poziom krycia: dla warstw cien i brudek na 5% a warstwę ao1 usuwamy, lub robimy niewidoczną. Zapisujemy sobie nasz plik i zapisujemy go teraz jako np. sciana_pruska_bump.png. Zamykamy plik png (bo jest z warstwami) i otwieramy go ponownie i zapisujemy jako sciana_pruska_nm.png . Teraz stosujemy Filtry-> Odwzorowania-> Normalmap (jeżeli Gimp nie jest standardowo wyposażony w ten plugin to szukamy go w necie i instalujemy) z następującymi ustawieniami:

Nasza normal mapa może wyglądać tak:

W Blenderze nakładamy na model wykonane tekstury i renderujemy:

Zakończenie cz. 4
W tej części nauczyliśmy się wielu operacji na kolorach w Gimpie, a także poznaliśmy zasady tworzenia map normalnych przy pomocy programu 2D.
Następna część poświęcona będzie wykonaniu tekstury gontu.
Stara gospoda
Podziemia: Test BGE
Incorrect integer value: '' for column `mardraqp_3d`.`mardraq3d_wizyty`.`id_wpis` at row 1