7.0. Tekstury – pipeline

Istnieje wiele podejść do kwestii teksturowania, w zależności od narzuconego procesu produkcji (pipeline). Można stosować:

  • tekstury dedykowane,
  • mieszanie materiałów wg maski lub vertex coloru (blending),
  • globalne materiały (generic textures) ustawianie przez ID materiału,
  • materiały bazowe i decals lub
  • generowanie materiału-koloru (cartoon) jedynie w instancji

A także dziesiątki innych metod…

Przyjęta metoda teksturowania w dużej mierze determinuje sposób tworzenia siatki UV.

Rozkładanie siatki UV omówię na przykładzie tradycyjnego teksturowania, gdyż broń jest na tyle istotna, że często posiada dedykowane tekstury. Takie podejście jest również najbardziej rozbudowane, dlatego świetnie nadaje się do przedstawienia. Doświadczenie, zdobyte w ten sposób zaowocuje i ułatwi podejmowanie decyzji przy innych procesach produkcyjnych (zwykle mniej skomplikowanych).

Pracę rozpoczynamy od rozcięcia broni na wyspy o takim samym aspect ratio. Wszystkie wyspy powinny być tak rozcięte, aby szwy były niewidoczne w kadrze.

Czytaj więcej

7.1. Mirror

Aby zaoszczędzić miejsce na UV, jak najwięcej powinno być odbite (mirror). Jednak należy unikać „motylków” na UV, szczególnie widocznych z rzutu FPP (dotyczy to głównie elementów takich jak celowniki, cyngle, góra broni)

Wszystkie elementy widoczne w FPP (np. celownik, góra drewienka, obręcze luf) posiadają unikatowe UV ‒ nie są odbite lustrzanie „na motylka”

Najlepiej, gdyby prawa strona, która jest niewidoczna w kamerze, została całkowicie odbita.

Prawa strona jest prawie w całości odbita

Czytaj więcej

7.2. Hierarchia ważności

Sugerując się hierarchią ważności, którą określiliśmy w modelu lowpoly, należy odpowiednio przeskalować UV island tak, aby odpowiadały „zapotrzebowaniu” na rozdzielczość. Im bliżej kamery, tym większa skala na UV.

Po rozcięciu i rozłożeniu wysp, tak aby aspect ratio UV było proporcjonalnie (takie samo dla całego modelu), przystępuje się do ich przeskalowania. Mnożniki skali zwykle wyglądają w następujący sposób:

  • 1.2 – elementy znajdujące się bliżej gracza (celowniki, optyk, tył broni przy samej kamerze;
  • 1.1 – pozostałe elementy znajdujące się blisko kamery;
  • 1.0 – korpus broni, magazynki;
  • 0.8 – lufa, przód broni.
  • 0.6 – elementy poza kamerą

Metodą, pozwalającą upewnić się, że wszystkie fragment mają odpowiednią skalę, jest sprawdzanie skali szachownicy UV checker w kadrze. Jeśli elementy mają podobne zagęszczenie, zależne od perspektywy (im dalej, tym mniejsza skala UV island), to powinniśmy uzyskać dobry rezultat.

Czarne kwadraty są tej samej wielkości

Dodatkowo można wspomóc się detail map. Dzięki niej „wyrównamy” rozdzielczość tekstury na całej broni. Jednak należy pamiętać, aby utworzyć dodatkowy UV set, na którym wszystkie UV island będą miały taki sam aspect ratio.

Czytaj więcej

7.3. Mniejsze elementy

Drobną sztuczką, dzięki której większość graczy odczuje broń jako model z teksturą o wysokiej rozdzielczośći jest powiększenie wielkości UV małych detali, takich jak np. śrubki. Drobne detale, drażnią nas, przyciągają uwagę – szczególnie w sytuacji, gdy przełamują one monotonię jednolitej płaszczyzny. źródło

Właśnie na podstawie detali gracz określa jak „dobrą grafikę” ma dana broń, dlatego warto zainwestować w nie odrobinę więcej miejsca na UV.

Ten dodatkowy mnożnik (baza × hierarchia × dodatkowy mnożnik) nie powinien przekraczać ok. 1.15 i często jest podyktowany ilością wolnego miejsca na siatce UV.

Christopher G. Healey, Perception in Visualization [online]. Department of Computer Science, North Carolina State University.
2014. Preattentive Processing źródło: http://www.csc.ncsu.edu/faculty/healey/PP/index.html

Czytaj więcej

7.4. Układ

Z technicznego punktu widzenia, nie ma znaczenia w jaki sposób rozmieścimy wyspy na UV. Mimo to, istnieje kilka wskazówek, w jaki sposób należy to robić. Priorytetem jest utworzenie takiej siatki, aby każdy mógł zauważyć, gdzie jaki element się znajduje. Sam sposób rozcinania ścianek, przesuwania ich obok siebie również ma znaczenie.

Elementy modelu oznaczone kolorem
Siatka UV z elementami oznaczonymi kolorem, wszystkie wyspy znajdują się w logicznym układzie

Poszczególne elementy powinny leżeć obok siebie poukładane w logiczny sposób (przykładowo: naboje koło magazynka, cyngiel koło prowadnicy, itp.) W znaczący sposób ułatwia to teksturowanie. Grafik nie musi poszukiwać elementów po całej siatce, tylko wie, że znajdują się obok.

Dzięki rozłożeniu siatki UV zgodnie z grawitacją, korzystanie z programów do generowania tekstur zaoszczędzi wielu problemów związanych z kątem padania zacieków / wzorów. Również ułatwi to umieszczanie typografii. Do podglądu stosowany jest gravity checker.

Pobierz

Gravity checker

Jeszcze jednym ważnym parametrem rozkładania siatek, jest dystans pomiędzy wyspami. Należy przyjąć zasadę, że odstęp powinien wynieść minimalnie 4-6 px dla docelowego rozmiaru tekstury (w wypadku, gdy przepalamy model w wyższej rozdzielczość, odstępy powinno być powiększone o ten sam mnożnik).

Im większe przerwy, tym większe straty rozdzielczości tekstury jednak zachowanie odstępu jest konieczne ze względu na edge padding. Zagadnienie to zostało dokładnie opisane na polycount wiki.

Do liczenia odstępów stosowany jest noise pattern.

Pobierz

Noise pattern

Czytaj więcej

7.5. Przygotowanie do eksportu

Gdy cała siatka UV jest gotowa, możemy przystąpić do przesunięcia odbitych (mirror) elementów, o 1 ćwiartkę w prawo. Dzięki temu każdy, kto będzie miał do czynienia z modelem, od razu zorientuje się które fragmenty nie są unikatowe. Na wcześniejszych etapach, dobrze jest oznaczyć odbite (mirror) fragmenty np. poprzez material ID, później łatwiej będzie nam określić jakie wyspy (UV island) należy przesunąć.

Czerwony UV ‒ mirror

Czytaj więcej