Skocz do zawartości

Game Art : Normal Mapy vol2


Rekomendowane odpowiedzi

Napisano

Tutaj zamieszczamy wszystko co jest związane z normalami, dyskusje, tutoriale, videotutoriale.

 

Chciałbym aby wyglądało to inaczej niż wcześniej, po prostu zróbmy jedna dużą bibliotekę linków w pierwszym poście, wcześniej był za duży bałagan w całym wątku różne linki większość z nich nie działała.

 

Wrzucajcie linki zrobimy bazę, niestety po dodaniu linku do bazy posta będę usuwał aby nie robić niepotrzebnego zamieszania.

 

Zbrush 2.0 normal maps - wszystko związane z robieniem normali w Zbursh 2.0 - Zmapperze

 

- http://67.15.36.49/team/Tutorials/future_worker/futureworker_01.asp - Przygotowywanie modelu w 3dsmaxie export do zbrusha i tworzenie normal mapy

- http://209.132.69.82/zbrush/zbrush2/displacement.html - Tworzenie normali w zbrushu

- http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011260

- http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=015376

- http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011757

- http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011894

- http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=4&t=000789

 

 

3d Studio Max normal maps - wszystko związane z robieniem normali/wyświetlaniem w 3dsmax

 

- http://www.poopinmymouth.com/tutorial/normal_workflow_2.htm - Pełen proces przygotowywania i tworzenia normali

- http://www.bencloward.com/resources_shaders.shtml - zestaw Shaderow do 3d studio maxa

- http://www.bencloward.com/resources_tutorials.shtml

 

 

Photoshop normal maps / tools - wszystko związane z robieniem normali w Photoshopie

 

- http://developer.nvidia.com/object/nv_texture_tools.html - plugin niezbędny do tworzenia normali w photoshopie

 

Inne

 

- http://www.iddevnet.com/quake4/ArtReference_CreatingModels - sposób tworzenia normali do gry quake4

- http://www.pinwire.com/article82.html - Troche teorii

- http://unrealtechnology.com/html/technology/ue30.shtml - ciekawe opisy z Unreala 3

- http://developer.nvidia.com/object/melody_home.html - program do tworzenia normali

- http://fabio.policarpo.nom.br/relief/index.htm - Relief Mapping w oparciu o normal mapy

- http://ati.amd.com/developer/sdk/rad...lsPlugIns.html - Dziala jak nvidiowski, ale nie trzeba sie bawic opcjami, odrazu zamienia na normala, warunkiem jest plik w formacie tga. (dodane przez Por@szka)

- http://boards.polycount.net/showflat.php?Cat=0&Number=91531&an=0&page=0#91531 - małe how to o normal mapach

http://boards.polycount.net/showflat...=0&fp art=all - Jak porządnie zrobić normalmapę z fotki:

 

VideoTutoriale:

- http://www.mm.pl/~klicek/proj_norm.rmvb - Videotutorial pokazujący sposób tworzenia normala w zbrushu 2 na podstawie dwóch różnych siatek

  • Like 1
  • Confused 1
  • Odpowiedzi 204
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

A ja mam takie pytanko, nie wiem czy można takie wtrącić tutaj, ale skoro wątek jest o normalu to może podejdzie:p

Jak nie to kasujta:P

 

Mianowicie,

Normal odpowiada za cieniowanie na podstawie mapy z uwzględnieniem wysokości, jednak, nie ma takiej opcji, żeby obiekt rzucał sam na siebie cień.

 

I w tym miejscu pojawia się displace, który sobie z czymś takim radzi.

Terminem pokrewnym, a właściwie sąsiadującym jest parallax lub relief maping.

 

Tu pojawia się mój problem, trochę szukałem już na ten temat, ale jakoś nie mogę tego ogarnąć..

Jak to jest z wyświetlaniem real-time efektu rzucania cienia obiektu potraktowanego displacem (paralaxem czy też reliefem)?

A może wogóle mylę pojęcia..

Jaki sprzęt, jakie shadery, wogóle jak to działa, czy direct9 radzi sobie z czymś takim?

 

Ma ktoś coś na ten temat do powiedzenia??

Napisano

Dispalace to nie to samo co paralax.

Paralax jest nadal bardizej oszukancza wersja normala. Moze za wyjatkiem troche bardziej juz rozwinietego step paralaxa. Displace tworzy "geometrie" na podstawie mapy wysokosci. Paralax tylkop mocniej odbija swiatlo, tzn lepiej. Dziala to w ten sposob ze promienie sa kierowane w obiekt ( od strony widza) i na podstawie mapy wysokosci okreslaja jak gleboki(badz plytki) jest obiekt.

Jest to wpelni obslugiwane przez dx9.

Pisalem troche na ten temat w pracy inzynierskiej - gdzies powinna jeszcze byc na forum, tj link :)

Co do samego paralaxa. Ma on wiele nazw, jednakze nie mozna mylic tego z displacement. Jest to technika podobna ale dziala inaczej.

Mam nadzieje ze ci to troche rozjasni ;)

Napisano

No trochę rozjaśniłeś Por@szek:)

Twoją prackę nawet kiedyś przeglądałem ale pewnie jak zwykle nie zwróciłem uwagi na to co trzeba:p

 

A jak jest z rzucaniem cienia obiektu sam na siebie na podstawie mapowania?

Oczywiście w real-time?

Napisano

Albo displace, albo inny obiekt :] Normale nie rzucaja cienia, typowego cienia. Tworza tylko pseudo cien ktory symuluje wysokosc-glebokosc plaszczyzny. Mozesz zasymulowac cien na texturze, albo za pomoca lightmapy ewentualnie innych obiektow. Jednak cien,obrazujacy detal na normalu w zupelnosci wystarcza.

http://graphics.cs.brown.edu/games/SteepParallax/index.html

Tutaj masz przyklad displace. http://www.geomatics.uottawa.ca/INTRO/IMAGES/GLOBAL/displace.jpg

Widac wyraznie ze displace uzywa mapy wysokosci ( czyli takiego bumpa) jako foremki wedlug ktorej uksztaltowuje geometrie ( musi ona byc gesta - wyjatkiem jest vray ktory sam zageszcza siatke) Natomiast cala reszta bazuje na oszukanczym lamaniu odbic. Niestety ale jeszcze dlugo displacement nie bedzie realtime, z tego wzgledu ze wlasnie dziala na metodzie mnozenia mesha.

 

zeet - to co pokazales to normal, a mowa tutaj o pralaxie/steep paralaxie i ew. displace. Natomiast kazdy ma swoj sposob na tworzenie normali. Generalnie do zlozonych bryl jak statki i etc. najlepsze sa high poly + mix greyscale na opacity ew. lighter albo normala z bump. Natomiast do plaskich plaszczyzn jak sciana wystarczy w zupelnosci normal z bump. Do tego ostatniego szczerze polecam narzedzie o dumnej nazwie - CrazyBump. Naprawde swietne narzedzie.

Napisano

Dopisuje się pod Poraszkiem, CrazyBump to świetne narzędzie to płaskich rzeczy typu ściany itp

O samym narzędziu wspominałem kilka postów wcześniej z resztą ;)

Napisano

To jeśli można chciałbym spytać o problem mirrorowanego modelu i nakladajacego sie mapowania. Nie znalazłem żadnych konkretów, niektóre źródła nawet zaprzeczają sobie na wzajem. Podobno niektóre elementy tylko można mirrorować?

Jak to jest w rzeczywistości? Jak najlepiej rozkładać ufałki pod normale?

Jeśli to kwestia silnika, to jakiego mapowania używa większość silników?

Napisano

Kwestia silnika. Musi supportować coś co się nazywa binormalna. Więcej nie powiem, nie jestem koderem. Jeśli engine to supportuje to nie ma żadnych problemów z mirrorowanymi normalami.

Napisano

Ja bym wogóle nie mirrorował bo to tak jakby "wywraca" cieniowanie na lewą stronę... cień jest miejscem zamieniony ze światłem.

 

Tu masz taki schemat:

5342c152a476d1b6.jpg

Jeśli zrobisz mirror względem jednej z osi to cień namalowany na kanale np GREEN ci się odwróci.

 

Chyba że tak jak empeck napisał silnik "wie o co biega".

Z drugiej strony ja też nie bardzo wiem jak silnik sobie po prostu tak wie którą cześć modelu uwględnić jako binormal, skoro jest nakładające się mapowanie...

Napisano

Ja też nie wiem jak to działa, ale działa :D Przetestowane nie raz. Zresztą, już Doom3 supportował normale na flipniętych ufałkach. Wydaje mi się, że teraz nie jest to jakiś problem w silniczkach, ale oczywiście lepiej się upewnić.

Napisano

Empeck ma racje, silnik flipuje binormalne czyli odpowiednio kolor (green) odpowiadajacy za działanie swiatla jezeli się nie myle :) niestety w silnik rowniez się nie zagłebiałem :D

Napisano

Heh mam takie lamerskie pytanko ale mnie to strasznie dręczy. Wiem że normale służą do wyświetlania w czasie rzeczywistym wypukłości bo się dość szybko przelicza ale czy jeszcze jakieś inne zastosowanie? Game art to podstawa ale daje to coś w still'ach lub animkach? Porównywałem zwykłego bumpa z normalem i nie zauważyłem różnicy w wyglądzie jak i w szybkości no więc chcę mieć tą 100% pewność.

Napisano

Sobie pomachaj swiatlem nad jakims obiektem z normalem i z bumpem przy wlaczonej funksji directx9. Zobaczysz roznice. W stillach nie widac roznicy miedzy bumpa a normal zato widac ja w animkach albo w realtime.

Napisano

z tego co kiedys czytalem i o ile nie popierniczylem czegos to pierwotnie normale wymyslili do wykoprzystania w filmach bo dawalo lepszy efekt niz zwykły bump

Napisano

Dzięki Bro, nie zaglądałem na jego stronę od czasu tutoriala z włosami. Nie czaję jedynie tego sposobu na wyłączanie kanałów przy nakładaniu i mnożeniu warstw. Próbowałem i wychodzi mi jakaś kupa :) Muszę to obczaić dokładniej.

Napisano

Cześć .

Robię mini opis czym są noramlmapy do szkoły .

Prosiłbym o sprawdzenie tego czy jest ok .

 

Brakuje mi fotek z modelem hig i low poly > ktoś musiałby wyrazić zgodę na publikację. Potrzebowałbym też jakiegoś rysunku przedstawiającego rzucenia tych 3 rodzajów światła na powierzchnię .

 

 

 

Normalmap

Normalmapa , mapa wysokości – specjalnie przygotowana tekstura dzięki której silnik graficzny jest w stanie wywołać złudzenie większej złożoności obiektu. Na podstawie normalmapy na obiekcie generowane są cienie , dzięki temu obserwatorowi może się wydawać że płaska powierzchnia jest pofałdowana , posiada fakturę ; odbywa się to bez zwiększenia liczby trójkątów . Oszczędza to zasoby systemowe i pozwala wyświetlić dość realistycznie wyglądający obiekt. Mapa normalnych to 24 bitowa tekstura , generacja jej następuje poprzez oświetlenie obiektu 3 źródłami światła : dla osi x światło czerwone , y- zielone , z-niebieskie . Na każdy kolor przypada 8 bitów co daje maksymalnie 255 wartości dla danego koloru ; wartości mniejsze niż 127 są traktowane jako ujemne.

Tak w skrócie wygląda przygotowanie normalmapy w programie do grafiki 3D . Lecz wykorzystuje się wtedy dwa modele hig-poly i low-poly . Hig-poly to bardzo szczegółowy model zawierający wszelkie nierówności na obiekcie : przetłoczenia , nity , małe detale .Używa się go do wygenerowania normalmapy która później zostanie nałożona na obiekt mniej szczegółowy low-poly.

Jednak jeśli nie dysponujemy modelem bardziej szczegółowym to normalmapę musimy wykonać sami. W tym celu musimy zmodyfikować teksturę którą stworzyliśmy dla naszego obiektu . Nowa tekstura będzie w skali szarości (przy czym im bielszy pixel tym wyżej się znajdzie ) zaznaczamy na niej odpowiednie obszary obiektu które będą wyżej albo niżej.

25120887xl2.th.jpg

Tekstura , mapa wysokości dla programu CrazyBump , mapa normali wygenerowana przez CrazyBump .

 

 

44633021dg0.th.jpg

1.Czysty obiekt bez tekstury i normalmapy

2.Obiekt z teksturą

3.Obiekt z normalmapą

4.Obiekt z teksturą i normalmapą

Napisano

Hm, nie oświetla się trzema źródłami światła, czerwonym, zielonym i niebieskim, lecz te kolory, a właściwie kanały tych trzech kolorów zawartych w bitmapie odpowiadają odpowiednio za mapowanie cieniowania pixela wględem danej osi.

 

Używa się trzech kanałow by zmieścić 3 mapy w jednej texturze.

Możesz dorzucić jeszcze heightmapę w kanale alpha, co będzie odpowiadać za paralax.

 

Normal mapa jest mapą cieniowania pixela (pixel shader), działa to tak, że mapa na podstawie skali 0-255 dla danego kanału (czyli dla danej osi) modyfikuje odpowiednio cieniowanie pixela biorąc pod uwagę kąt padania światła i kierunek wektora normalnej danego trójkąta.

 

Kanał red odpowiada za cieniowanie od lewej do prawej (x), kanał green za cieniowanie z góry do dołu (y), blue odpowiada za oś (z) czyli cieniowanie głębokości. (druga strona wątku).

Napisano

Witam... Mam taki mały problemik... Albowiem jak wczytać normal mapę w Maxie po uprzednim zapisaniem jej w formacie .DDS*? ;> Gdy próbuję taką teksturę wczytać to wyskakuje mi Unknown Error...

Napisano

x normal tworzy dosc plaskie mapki, aby to poprawic:

 

-zrob trzy kopie normala

-pierwsza, zrob Blura (powiedzmy o sile 4.0)

-druga, tez blur (ale slabszy, np 2.0)

-teraz w blending mode bierzemy "overlay" i wylaczamy niebieski kanal (jak dwa razy klikniesz na warstwe wyskoczy ci bleending options i tam masz RGB odznacz B)

-mape mozna ewentualnie jeszcze "wzmocnic" dodajac kolejne layer-y

Napisano

albo blender :)

-ładujesz na zmapowanego plane'a zdjęcie;

-ustawiasz NO RGB i ustalasz żeby była to mapa displacement

-zagęszczasz siatę,

-tworzysz drugiego planea i wypalasz normalke

 

voila!!! :)

Napisano

Mam takie pytanko mianowicie przeczytałem tu wszystko, ale ciągle mnie zastanawia fakt tworzenia modeli hi poly po to, by tylko uzyskać norma na obiekt low. Jaki jest w tym sens logiczny ? Czy w rzeczywistości firmy zajmujące się tworzeniem gier komputerowych takich jak np call of duty i innych, też najpierw tracą cenny czas na mozolne wykonanie modeli hi po to, by tylko uzyskać normala ? Czy to jest w ogóle konieczność, nie można tego właśnie uzyskać za pomocą wypalenia zwykłej texturki ?

 

Pyt. nr 2 - jak to jest spostrzegane w świecie game artu a dokładniej chodzi mi o prace do portfolio a normale ? Czy jest sens bawienia się w normale ?

Napisano

z normal z hi... jest piekniejszy. to tak jak z porankiem, gdy swieci slonce jest lepiej, gdy nie... mniej lepiej. Ale i to i to jest poranek...

 

tak, Ci od call of duty i innych traca czas na mozolne wykonanie hp. (przy okazji dostana w bonusie ambienta i cavity chyba... czy jakos ...

nie, nie jest to koniecznosc, tak mozna uzyskac z diffa normala.

 

2. a no jest tak postrzegane ze zazwyczaj jest 'looking for character artist , next gen project' a next gen = normale i tona innych mapek.

Tak, jest sens.*

 

*. Nie zawsze, Torchlight chociazby wpisz w gogolach. Zalezy od firmy i projektu...

Napisano

Nie jest to strata czasu, a kwestia podniesienia jakości modeli. Ze zdjęcia często nie wyciągniesz tylu informacji co z modelu hi-poly z którego "pieczesz" normalmapy. Np normal mapa z tekstury/zdjęcia nie będzie posiadać informacji, ze w tym i tym miejscu powierzchnia się nagle zaokrągla. Poza tym jak sculptujesz to się nie martwisz ze siata ma 4miliony poly i ze w tym miejscu jest za gęsta. Później na jej bazie robisz sobie retopologie i łatwiej taką siatkę low zoptymalizować.

Napisano

Pisze tutaj bo bardziej odpowiedniego nie znalazłem :) mam taki problem , mam normal mape z fotki zrobioną i jedną wypaloną high-poly :) teraz pytanie jak połonczyc te dwie normale ? czym jak jak. Będe wdzieczny za pomoc i informacje :) pozdrawiam.

Napisano

Najlepiej w CrazyBump. Jeśli nie masz do niego dostępu to w Photoshopie, kanały green i red w overlay, blue w multiply. Zwróć tylko uwagę, czy normale (red i green) mają taki sam zwrot.

Gość Marioza
Napisano

mozesz tez pyknąc na szybko 2d normala na tego z hp na overaly lub soft light w ps zalezy co to i do czego potrzebne, fakt faktem ta metoda pododuje ze ten normal z hp torche sie spłaszcza, w crazy bumpie jest dobry mixer i nie powoduje takiego czegos, lub ręczna metoda ta o ktorej pisał empeck

Napisano

Sposób który ja zasugerowałem to nie jest prosty overlay. Rozbijasz obie mapy na osobne kanały RGB, następnie odpowiednio bierzesz kanał R z obu łączonych ze sobą normali, mieszasz w trybie overlay. To samo robisz z kanałem G. Kanał B łączysz przez multiply. Otrzymujesz trzy osobne kanały które z powrotem łączysz w docelową normalmapę. Do tego polecam normalizację w plugu NVidii do Photoshopa.

 

Trzeba tylko zwrócić uwagę, czy kanały R i G mają ten sam zwrot, rózne programy różnie to generują, może się okazać, że docelowo detail który miał być wypukły zrobił się wklęsły.

  • Like 1
Napisano (edytowane)

Kurcze, Empeck masz chyba subskrypcje na ten watek :) Ja napisałem swój post, potem zajrzałem na poprzednia stronę i stwierdziłem ze ten sposób z multiply sensowniejszy wiec usunąłem post :D Swoja droga mądre rzeczy piszą na tej stronie + skrypt

Generalnie tak mi głupio ze aż dam Ci "+" :D(i tak Ci się należy za całokształt :p)

ps. skrypt działa bez zastrzeżeń, wygląda to na prawdę blisko temu co robi CrazyBump (wystarczy go odpalić na pliku z normalem pod spodem i detalem na wierzchu, a po skończonych obliczeniach ukryć warstwę detalu)

Edytowane przez Konras
Napisano (edytowane)

Hoho ale trzasnelem rysunek :D

Chcialem tutaj pokazac jak pozorie plaska powierzchnia detalu moze snieksztalcic wektory bazowej normalmapy.

bgza0k.jpg

Zeby wszystko dzialalo jak nalezy, nalezaloby wyobrazmy sobie, ze detal to textura, ktora mapujemy bazowa normalmape, wypluklosci sie nakladaja i vektory sa takie same, teraz kazde odchylenie dopiero mozna brac pod uwage. To tak samo jak z modyfikacja normalnych modelu low poly przez texture normalnych. Agh namieszalem troche. Niemniej jednak zwykly overlay nie dziala ladnie :D

Edytowane przez Konras

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności