Przesunięty przez: Fooler Wto 27 Lip, 2010 13:22 |
Tagi tematu: do, map, modelu, poradnikdodawanie, wypuklosci
|
| Autor |
Wiadomość
|
browar231
Grafik


Dołączył: 14 Lut 2010 Posty: 3884 Skąd: Gościmiec/fabryka NH
|
Wysłany: Wto 27 Lip, 2010 11:24 • 1 post w temacie
|
|
|
Tak na wstępie małe wytłumaczenie - mapy wypukłości są to dodatki do tekstury które gra używa do symulacji faktury płaskich powierzchni, poprzez odpowiednie cieniowanie. Widziałem nawet jak jedna osoba do modelu ludzkiej twarzy liczącego ponad 40 tysięcy poligonów dorobiła mapę wypukłości i zmniejszyła liczbę poligonów do ~400 zachowując taki sam kształt jak przy 40 tysiącach.
A teraz przejdźmy do rzeczy.
Do wykonania mapy wypukłości potrzebujemy programu GIMP oraz wtyczki Normalmap
W poradniku jako przykład posłuży mi kostka siana z prasy NH BB980 (strawMod).
Tak wygląda przed.
Uruchamiamy GIMP z wtyczką, otwieramy teksturę.
Następnie bierzemy opcję desaturacji (zamiana kolorów na czarno-biały).
Wybieramy w okienku jedną z trzech opcji (jasność, jaskrawość lub średni), najczęściej średni, jednak czasem dwie inne, chodzi o to, żeby na starcie uzyskać jak największy kontrast.
Jeśli mimo to obraz jest bardzo jednolity używamy opcji 'Kolory/Jasność i Kontrast'.
Teraz używamy wtyczki Normalmap.
Ukaże się nam takie okienko.
Po naciśnięciu 3D Preview mamy okienko podglądowe, ruszając myszką z wciśniętym lewym przyciskiem myszy obracamy obiekt przykładowy, a z prawym - przybliżamy i oddalamy. Wybierając Object Type zmieniamy obiekt przykładowy (od góry płaska powierzchnia, sześcian, kula, torus i dzbanek). Filter oznacza rodzaj algorytmu który oblicza wypukłości (na ogół 4 sample, z innymi możecie poeksperymentować, różnicę zresztą widać w podglądzie). Minimum Z sam nie wiem, ale chyba do minimalnej wysokości, jeszcze nigdy nie używałem tej opcji. Scale to skala z jaką ma wytworzyć wypukłości, im większa skala tym większa różnica między najwyższym a najniższym punktem wypukłości. Skala MOŻE być ujemna, przydaje się kiedy mamy czarne płytki z białą fugą. Zasada jest taka, że jaśniejsze piksele są wyżej od ciemniejszych, a w takim przypadku przy dodatniej skali biała fuga będzie wystawać ponad czarne płytki.
Kiedy wszystko gotowe naciskamy OK.
I otrzymujemy mapę wypukłości.
Teraz wybieramy koniecznie Zapisz jako
Do nazwy dopisujemy '_normal', z 'HayBale.png' otrzymujemy 'HayBale_normal.png'.
Zwiększamy stopień kompresji do 9 aby wszystko zajmowało mniej na dysku.
I mamy mapę wypukłości mamy gotową, teraz trzeba ją zaaplikować do modelu.
Otwieramy plik 'i3d' notatnikiem.
Mamy takie okienko.
Zaznaczamy całą linijkę z teksturą do której dodawaliśmy mapę wypukłości i kopiujemy ją.
Wklejamy tą linijkę niżej i do wartości "fileId" dodajemy dwie dziewiątki aby łatwo było zmieniać to potem w 'materials' i nigdy się nie powtórzyło (w mapach liczba 'fileId' rzadko przekracza 400). Było '2' jest '99', gdyby było '21' to mielibyśmy '9921' itd.
Ważne jest, żeby zmodyfikować ścieżkę do mapy wypukłości dodając odpowiednią nazwę pliku do niej.
Potem szukamy wszystkie 'materials' zawierające poniżej identyczne 'fileId' co nasza tekstura.
Potem dopisujemy niżej linijkę z 'fileId' mapy wypukłości, o tyle proste że pokazanym wyżej sposobem dodajemy tylko '99' do 'fileId' tekstury zamiast zapamiętywać dużą ilość cyfr przy bardziej skomplikowanych modelach.
Potem naciskamy CTRL+F i wpisujemy 'Scene'. Potwierdzamy naciskając "Znajdź następny".
Otrzymujemy listę wszystkich obiektów w "Scenegraph'.
Szukamy wszystkich obiektów przy których w 'materialIds' znajduje się ID naszego 'material'. UWAGA! przy bardziej złożonych obiektach może to wyglądać tak 'materialIds="1, 55, 22, 30" ', i jeśli choć jedna z tych liczb to nasz 'material' musimy (no dobra, musu nie ma, ale efekt końcowy będzie bardzo marny) do danego obiektu zaaplikować mapę wypukłości.
W linijce tego obiektu szukamy wartości 'shapeId'.
Znowu używamy funkcji CTRL+F. Wpisujemy całą linijkę 'shapeId="jakieś_tam_Id" ' jak na obrazku niżej. KONIECZNIE wybieramy 'Kierunek' 'W GÓRĘ'.
Przenosi nas do linijek z kształtem naszego obiektu oraz jego kilku właściwościami.
Poniżej linijki z naszym 'shapeId' jest taka linijka.
Dopisujemy na jej końcu przed znakiem '>' tangent="true" oczywiście pamiętając o odstępie spacji między poprzednią wartością, po dopisaniu całość powinna wyglądać tak
UWAGA! Krok z szukaniem 'shapeId' i dopisywaniem 'tangent...blablabla' wykonujemy dla każdego obiektu w przedziale 'Scene' który miał w 'materialIds' ID naszego 'materials' (do którego dodawaliśmy mapę wypukłości).
Jak już wszystko zrobiliśmy zapisujemy zmiany.
A oto efekt końcowy
Pewnie zauważyliście, że trochę efekt nie taki.
Już spieszę z wytłumaczeniem. W przypadku tej beli tekstura zamiast być rozciągnięta na całości jest powtórzona kilka razy w zależności jak zrobione i z którego boku. Oczywiście ma to swoje plusy bo tekstura mniej rozciągnięta to bardziej szczegółowa, ale może wywoływać takie oto anomalie. ALE może, nie musi.
-----------------------------------------------------------------------------------------------------------
Poradnik z innego forum, autor to Koper.
|
_________________ [url]about:blank[/url] |
Ten użytkownik dostał za ten post 1 piw/piwa |
|
|
|
 |
|
|
 |
|
|
|
|