dorzucam się, ku przestrodze wszystkich mądrych którym się wydaje że wiedzą wszystko. dziękujcie techlandowi.
Introduction
Zanim model trafi do gry, przechodzi długą drogę przygotowawczą, poczynając od bogatego w szczegóły modelu wysokopoligonowego, przez model niskopoligonowy do zestawień różnych tekstur oraz dodatkowych elementów niezbędnych do poprawnego funkcjonowania w grze opartej na Chrome Engine 4.
Hi Polycount Geometry
Jeżeli model ma posiadać unikalne cechy, pozwalające od razu rozpoznać w nim porządny obiekt warto pokusić się o wykonanie najpierw modelu wysoko poligonowego, który będzie zawierać wszelkie niezbędne detale. Będzie on niezbędny do wykonania tekstury map normalnych (opisanych dalej), dając nieporównywalnie lepszy efekt niż ręczne ich rysowanie.
Już na etapie modelu wysokopoligonowego należy mieć na uwadze jak będzie wyglądał docelowy model, który znajdzie się w grze, gdyż od tego zależeć będzie sposób wykonania detali. Może się okazać iż docelowy model będzie miał elementy powtarzalne lub zapętlające się i należy je odpowiednio wymodelować już w pierwszaj fazie.
Low Polycount Geometry
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny. Proces ten, można podzielić na kilka części.
Distance Detailed Work
Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je mapie normalnych (o czym dalej).
Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.
Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny.
View of Model
Kolejną zasadą określającą dokładność wykonania modelu, nawet już na poziomie hi-poly, jest to jak dany obiekt będzie widziany najczęściej oraz jakie jego elementy powinny najbardziej przyciągać uwagę, jakie powinny być wyeksponowane, a które całkiem pominięte. Już na poziomie modelowania wysoko poligonowego powinno się ustalić jak model będzie prezentowany w środowisku gry i które elementy oryginału można pominąć, gdyż nie będą widoczne.
Ta zasada ma główne zastosowanie do modeli broni, które mają ustalony kont i kierunek obserwacji, ale niektóre obiekty wypełniające otoczenie też można starać się upraszczać i ujednolicać w zależności od możliwości interakcji z nimi lub dystansu na jaki będziemy mogli podchodzić.
Elementy modelu, które są niewidoczne lub zlewają się z bryłą obiektu powinny być wykonane na mapie normalnych.
Parts of model which are invisible or blend into object's body should be prepared as a normal map.
FPP Quality
Nieco inaczej przedstawia się sytuacja z elementami gry, które widziane są z bliska, w perspektywie FPP, tuż “przed nosem” gracza. Do tej kategorii zaliczaja się wszelkiego rodzaju broń i inne modele przeznaczone bazowo do “trzymania w rękach”. Tego typu modele rządzą się innymi prawami, choć zasada “niewidocznych elementów” także ich dotyczy.
W tym wypadku geometria może, a nawet powinna być dokładniejsza. Najczęściej ważnym jest by obłe kształty miały wystarczającą ilość podziałów, tak by krzywizna nie była zbyt “kwadratowa”. Dotyczy to głownie elementów które są równoległe do płaszczyzny ekranu, gdyż to właśnie one są najbardziej widoczne. Pozostałe, prostopadłe, nie wymagają zwiększonej dokładności, gdyż w życie wchodzi zasada widoczności modelu i wiele poligonów zasłania się nawzajem i rzadko jest widoczna.
Często elementy, które z odległości 3-5 metrów pozostawione były by jedynie na mapie normalnych, w modelu FPP wymagają dodatkowej geometrii, lecz także i tu trzeba być ostrożnym i nie przesadzać z dokładnością. Jeżeli element nie odstaje zbytnio poza główny model i nie przekracza jego granic widoczności, także możemy pozostawić go mapie normalnych.
Broń trzymana zawsze w prawej ręce jest dodatkowo modelem wyjątkowym, gdyż pozwala na prawie całkowite odbicie lustrzane geometrii. Prawa strona jest praktycznie nie widoczna, a momenty gdy jednak pojawi sie na ekranie bywają krótkie, przy czym perspektywa mocno skraca widoczny obszar. Gdy jednak chcemy być wierni oryginałowi możemy charakterystyczne elementy dodać na osobnych poligonach. Robiąc to wszystko należy jednak pamiętać o następnej zasadzie, związanej z detalami.
Geometria znajdująca sie w skrócie perspektywicznym powinna być uproszczona.
Kształty ułożone równolegle do ekranu muszą być wykonane dokładniej.
Detail Expectation
Tworząc dowolny model budujemy bogatą bibliotekę materiałów na zadany temat i gromadzimy wiedzę, która często przekracza granice postrzegania przeciętnego gracza. Tworząc model staramy się odwzorować rzeczywistość, często nie zdając sobie sprawy, że zwykły człowiek, nie znający się na temacie, nawet nie zwróciłby uwagi na detale, które my uważamy za oczywiste. Taka sytuacja jest częstym powodem rozterek gdy dochodzi do optymalizacji modelu, gdy musimy pozbyć się nadmiaru poligonów, a wymodelowane z pieczołowitością detale powinny pójść na pierwszy ogień. Nikt nie zauważy braku kilku śrub, lub tego braku jakiegoś przełącznika. Nie spodziewa się też, że pewna krzywizna powinna być mniej lub bardziej obła, bo po prostu nie ma o tym pojęcia.
Praktycznie podczas tworzenia modelu hi-poly należy podjąć decyzję, które detale zostaną pominięte, które zmodyfikowane tak, by pasowały do całości obiektu, a które zostaną przeniesione na dodatkowy element mesha. Oszczędności na detalach to także przewidywanie jaka forma najlepiej sprawdzi się w modelu low-poly, jednocześnie bez strat na ostatecznym wyglądzie modelu. Upraszczanie i ujednolicanie poziomu detali jakie zostaną odzwierciedlone na modelu ma też wpływ na sposób mapowania i oszczędności na wielkości tekstur.
Różnorodność detali, a raczej decyzje o ich likwidacji, mają związek z późniejszym lustrzanym modelowaniem i mapowaniem, gdyż lewa i prawa strona obiektu będą wyglądać tak samo, chyba że zostaną stworzone elementy na dodatkowej geometrii. Jest to jednak zabieg pozwalający znacznie zwiększyć jakość ostatecznego wyglądu modelu, dzięki oszczędności przestrzeni na teksturze, a także gdy efekt końcowy będzie dostatecznie zadowalający, zmniejszyć jej rozmiar.
Mapping
Nawet najlepiej wykonany model hi-poly oraz zoptymalizowany low-poly mogą stracić na wartości gdy zostaną źle lub nieefektownie zamapowane na teksturze. Podobnie jak modelowanie, mapowanie UV podlega kilu zasadom, które wymagają przemyślenia ważności elementów, kompromisów jakościowych oraz planowania przestrzeni tekstury.
Mirror Mapping
Mapowanie lustrzane oznacza, iż obie strony lustrzanie odbitego elementu geometrii obiekty wymapowane sa w tym samym miejscu, mimo iż normalne wyświetlane mogą być odwronie na odbitej stronie, eksport do ChromeEngine? 4 skoryguje ustawienie tangentów tak, by lustrzane normalne wyświetlane były poprawnie.
Gdy model low-poly jest wykonany lustrzanie by ograniczyć ilość faców oraz detali, zrozumiałym jest iż mapowanie tych elementów także pozostanie lustrzane. Należy jednak pamiętać, iż mapowanie lustrzane wymaga dokładnego wykonywania tekstur, tak by linia odbicia nie była widoczna i nie tworzyły się charakterystyczne lustrzane wzory. Często warto, głownie w modelach broni, pozwolić by linia cięcia nie przebiegała idealnie przez środek, tylko w miejscu logicznego odcięcia utworzonego przez krawędź geometrii.
Prowadzenie linii obicia przez środek zawsze pozwala na zyskanie ilości miejsca na teksturze, przez co uzyskuje się lepszą jakość obrazu
Jeżeli faktura lub geometria obiektu pozwala na zamaskowanie linii odbicia, należy to wykorzystać
Linia odbicia lustrzanego mapowania nie zawsze musi przebiegać idealnie przez środek modelu. Czasem warto poświęcić nieco tekstury i najbardziej widoczne ściany pozostawić nieodbite, dzięki czemu zyskają na jakości
Level of Importance
Tak samo jak w przypadku modeli low-poly, mapowanie wymaga decyzji, które elementy obiektu są bardziej widoczne i ważniejsze, przez co wymagają lepszej jakości tekstury, czyli większej ilości miejsca.
Najlepiej jest przyjąć trójstopniową gradację ważności (wielkości) mapowanego elementu na teksturze, gdzie najpierw układa się elemety priorytetowe, tak by wykorzystać jak najlepiej rozmiar tektury, potem dodaje się elementy uzupełniające, a na końcu w pozostałą przestrzeń upycha się to co pozostanie.
1. Elementy priorytetowe
elementy broni i obiektów trzymanych przez Gracza blisko znajdujące się najbliżej ekranu
elementy przewidziane są do oglądania z bliska na obiektach otoczenia
fragmenty na których przewidziana jest szczegółowa, pełna detali tekstura
2. Elementy uzupełniające
fragmenty modelu widoczne w skrócie perspektywicznym
elementy widoczne, ale zasłonięte przez ruchome części modelu lub inny obiekt
fragmenty o monotonnej, niezróżnicowanej fakturze
3. Elementy mało widoczne
wszelkie elementy broni i obiektów trzymanych przez Gracza znajdujące poniżej krawędzi ekranu
fragmenty modelu widziane tylko w skrajnych sytuacjach (spody lub ściany wypełniające)
elementy całkowicie zasłonięte, widziane tylko z innej perspektywy niż podstawowa przewidziana (tylne ściany broni)
Należy pozostawić minimalną przestrzeń między mapowanymi elementami, lecz na tyle dużą by istniał margines pozwalający na tworzenie mipmap
By ułatwić pracę grafikowi rysującemu tekstury, elementy powinny być ułożone tak by ich orientacja była zbliżona do rzeczywistej w modelu
Elementy znajdujące się blisko siebie w modelu warto grupować także na teksturze
Same Elements Maping
Często się zdarza, iż obiekt posiada kilka elementów wyglądających podobnie, znajdujących się w różnych miejscach modelu. Należ takie właśnie elementy uwspólniać, jeżeli tylko geometria modelu na to pozwala. Dobrze zaplanowana tekstura i mapowanie elementów o podobnym wyglądzie, to kolejny krok w zaoszczędzeniu przestrzeni tekstury, pozwalający zwiększyć jej ostateczną jakość. Czasami warto zagęścić siatkę geometrii modelu tak, by znaleźć elementy, które będą podobne i da się je zmapować w tym samym miejscu tekstury.
Przykładem może być bardzo długa lufa karabinu, która zamapowana na całej długości będzie proporcionalnie dość wąska, tak by zmieścić się na szerokość. Jeżeli jednak podzielić ją na dwie części, tekstura lufy zyska na jakości. Łatwo zauważyć, że zwiększy się też przestrzeń zajmowana przez ową lufę, która ostatecznie widziana w skrócie perspektywicznym jest tylko kawałkiem rury. Dla tego oba kawałki obiektu warto zmapować w tym samym miejscu, gdyż są bardzo podobne do siebie, a skrót perspektywiczny zamaskuje ewentualne niedoskonałości
Elementy podobne powinny być mapowane w tym samym miejscu, by dzięki uwspólnianiu zaoszczędzić miejsce na teksturze
Proportions
Ze względu na techniczne ograniczenia, docelowa tekstura, a co za tym idzie mapowanie, powinny trzymać proporcje 1:1 lub w skrajnych przypadkach 1:2 (2:1). Tekstury o proporcjach 1:4 (4:1) sprawiają trudności podczas tworzenia mipmap i nie powinno się ich używać.
Projections
Na koniec, gdy mamy gotowy obiekt wysoko i niskopoligonowy z gotowym mapowaniem, pozostaje przygotować wyjściowe tekstury:
normal map (normals) - podstawowa tekstura normalnych odwzorowująca detale
lightning (ambient occlusion) - mapa cieni własnych, rzucanych przez symulowane światło ogólne (sky), będzie stanowić dopełnienie mapy normalnych poprzez wmnożenie do tekstury koloru
height map - na niektórych obiektach warto użyć dodatkowo, poza mapą normalnych, by uzyskać głębię Virtual Displacement Mapping
Podczas wykonywania projekcji należy usunąć na mapowaniu pokrywające się elementy, tak by tylko jeden znajdował się w przestrzeni tekstury, inaczej projekcja będzie błędna
Projection Overscale
Bardzo często mapy normalnych oraz ewentualnie mapy wysokości, mogą nie dawać pożądanego efektu finalnego podczas wyświetlania na obiekcie w środowisku ChromeEngine? 4 i sprawiać wrażenie płaskich i niewidocznych. Powodem tego jest intepretaja skali detali obiektu podczas ich renderowania. Gdy nie ma możliwości przeskalowania normalnych w trakcie renderowania, a skalowanie ich poprzez materiał powoduje utratę jakości należy przeskalować detale.
W tym celu trzeba ręcznie przeskalować, nawet kilkakrotnie, wszystkie interesujące nas detale, które mają zostać uwydatnione na mapie normalnych. Dodatkowo warto ustawić ściany prostopadłe w stosunku do płaszczyzny projekcji nieco pod kontem, tak by promień projekcji mógł na nie trafić. Warto też zaakcentować zewnętrzne krawędzie tych ścian fazując je (chamfer) delikatnie.
Nie wszystkie detale warto poddawać temu zabiegowi, który najlepiej sprawdza się na elementach dużych gdyż przeskalowane elementy mogą zacząć tracić swój pierwotny charakter