Jak zoptymalizować mapę w edytorze Hammer: 10 kroków (ze zdjęciami)

Spisu treści:

Jak zoptymalizować mapę w edytorze Hammer: 10 kroków (ze zdjęciami)
Jak zoptymalizować mapę w edytorze Hammer: 10 kroków (ze zdjęciami)
Anonim

Czy chcesz przyspieszyć działanie swojej niestandardowej mapy, nie ugrzęznąć w czkawkach renderowania i skrócić czas kompilacji? Oto kilka wskazówek, które pomogą Ci zoptymalizować dowolną mapę w Hammer.

Kroki

Zoptymalizuj mapę w edytorze Hammer Krok 1
Zoptymalizuj mapę w edytorze Hammer Krok 1

Krok 1. Odetnij pokoje

To musi. Jeśli istnieją JAKIEKOLWIEK przecieki na mapie, kompilator nie będzie w stanie określić granic mapy i spróbuje wyrenderować wszystko na mapie za jednym razem. Co gorsza, żadne portale obszarowe, pędzle podpowiedzi i okludery na mapie nie będą działać, przez co będą bezużyteczne. Ponadto woda nie będzie renderowana poprawnie, jeśli na mapie pojawią się jakiekolwiek przecieki.

  • Na rys. 1a pomieszczenie oczywiście nie jest uszczelnione. Jeśli skompilujesz tę mapę z tym przeciekiem, vvis (część kompilacji, która określa dane dotyczące widoczności) nie będzie w stanie określić granic mapy, ponieważ visleaves po prostu „wyciekną” w czarną pustkę poza naszą mapą.
  • Na rys. 1b pomieszczenie jest zapieczętowane i zostanie poprawnie skompilowane.
  • Aby sprawdzić, czy nie ma wycieków, najpierw upewnij się, że na mapie znajduje się co najmniej jedna jednostka (taka jak „info_player_start”), w przeciwnym razie to nie zadziała. Zapisz i skompiluj BSP, naciskając F9 lub przechodząc do Plik -> Uruchom mapę. Wybierz „Normalny” dla Uruchom BSPi wybierz „Nie” dla obu Uruchom VIS oraz Uruchom RAD (Pamiętaj również, aby sprawdzić "Nie uruchamiaj gry po skompilowaniu" skrzynka). Po zakończeniu kompilacji zamknij dziennik kompilacji i przejdź do Map -> Load Point File. Jeśli są jakieś przecieki, zostaniesz poproszony o potwierdzenie operacji (np. „Załaduj domyślny plik punktów? [C:\Program Files\----]) Wybierz „Tak”, a zobaczysz wystającą czerwoną linię od najbliższej encji* przez obszar wycieku. (*Dlatego potrzebujesz encji, pędzla lub punktu, na mapie. Nie działa z pędzlami świata lub szczegółów). BSP i załaduj plik punktów. Jeśli wszystko jest zapieczętowane, powinien po prostu przejść do pustego folderu w Steam\steamapps\GAMERTAG\GAME\mapsrc teczka. Zawsze sprawdzaj, czy nie ma wycieków, zanim mapa zostanie opublikowana.
Zoptymalizuj mapę w edytorze Hammer Krok 2
Zoptymalizuj mapę w edytorze Hammer Krok 2

Krok 2. Utwórz pędzle za pomocą "tools/toolsnodraw"

Upewnij się, że zawsze tworzysz pędzle za pomocą narzędzia/narzędzianodraw tekstury najpierw, a potem tekstury tylko to, co gracz może zobaczyć z punktu widzenia gracza. Jeśli chcesz zobaczyć tylko jedną stronę ściany, teksturuj tylko tę widoczną stronę.

Zoptymalizuj mapę w edytorze Hammer Krok 3
Zoptymalizuj mapę w edytorze Hammer Krok 3

Krok 3. Zmniejsz liczbę pędzli i twarzy

Jeśli to możliwe, trzymaj się tworzenia geometrii za pomocą kilku dużych pędzli, a nie tysiąca małych. Więcej pędzli to więcej twarzy, a więcej twarzy to wolniejsza wydajność i czas kompilacji. Konkluzja: jeśli możesz stworzyć złożoną geometrię za pomocą jednego lub dwóch pędzli, po co używać ich więcej?

Na ryc. 3a są dwa pędzle: ten po lewej został utworzony za pomocą narzędzia Arch Tool, które stworzyło 8-stronny pędzel z 40 twarzami, a ten po prawej został wykonany z jednego przyciętego pędzla z tylko 11 twarzami. To ostatnie osiągnięto za pomocą narzędzia do przycinania (Shift + X). Aby osiągnąć to drugie, zaleca się najpierw utworzyć żądany kształt geometryczny z narzędzia Arch Tool w celach informacyjnych. Następnie utwórz pędzel o tej samej długości, szerokości i wysokości co łuk odniesienia i umieść go nieco powyżej odniesienia. Wybierz pędzel i przytnij kąty. (może być konieczna zmiana rozmiaru siatki („-”, aby zmniejszyć, „+”, aby zwiększyć) i/lub ręcznie przesunąć wierzchołki (Shift + V) łuku odniesienia, aby przyciągnąć do najbliższego punktu siatki). geometrycznie identyczny pędzel, ale tylko z mniejszą liczbą twarzy

Zoptymalizuj mapę w edytorze Hammer Krok 4
Zoptymalizuj mapę w edytorze Hammer Krok 4

Krok 4. Dobrze wykorzystaj pędzle do detali

Pędzle świata blokują widoczność, uszczelniają mapę i dzielą BSP na „liście”, które są w zasadzie sposobem kompilatora na określenie, co można, a czego nie można zobaczyć w danym czasie i miejscu. Pędzle szczegółów zostały zaprojektowane tak, aby były zasadniczo „niewidoczne” dla kompilatora. Jedynymi pędzlami, które powinny być szczotkami światowymi, są ściany, podłoga i sufit pomieszczenia. Prawie wszystko inne w pokoju, które nie jest działającą jednostką i nie blokuje znacząco wizji gracza, powinno być powiązane z pędzlem func_detail (powiązanie za pomocą Ctrl + T). Ponieważ pędzle szczegółów nie blokują widoczności, nie zostaną wkompilowane vvis obliczeń i nie podzieli mapy na więcej visleaves (co jest dobre w większości przypadków). Ostrzegam jednak, że nie zapieczętuje to również mapy. Tylko upewnij się, że wszystkie pędzle świata uszczelniają mapę i nie powinno być żadnych problemów.

Zoptymalizuj mapę w edytorze Hammer Krok 5
Zoptymalizuj mapę w edytorze Hammer Krok 5

Krok 5. Używaj odpowiednio portali obszarowych i pędzli z podpowiedziami

Portale obszarowe i pędzle z podpowiedziami to świetne sposoby na ograniczenie widoczności i zwiększenie wydajności, jeśli są wykonane prawidłowo. Jednak nie powinieneś umieszczać ich w każdym korytarzu i oknie, ponieważ kwota do obliczenia, co ma zostać wyrenderowane i kiedy, może znacznie przewyższyć tylko renderowanie całego pokoju naraz. Zamiast tego powinieneś oddzielać tylko pokoje z dużą ilością szczegółów. Dzięki temu komputer nie będzie musiał renderować wielu niepotrzebnych obiektów i pomoże zwiększyć wydajność bez nadmiernego obciążania obliczeń widoczności.

Zoptymalizuj mapę w edytorze Hammer Krok 6
Zoptymalizuj mapę w edytorze Hammer Krok 6

Krok 6. Używaj okluderów (oszczędnie)

Okludery są podobne do zamkniętych portali, ponieważ nie renderują tego, co się za nimi kryje. Jednak różni się od zamkniętego portalu obszarowego tym, że nie musi uszczelniać pomieszczenia (może być wolnostojący i nie dotykać pędzli świata) i blokuje jedynie modele 3D (czyli rekwizyty). To narzędzie jest bardzo kosztowne pod względem zużycia pamięci, więc należy używać okluderów tylko wtedy, gdy za wolnostojącą ścianą znajduje się drogi model 3D, którego nie można uszczelnić przez portale.

Zoptymalizuj mapę w edytorze Hammer Krok 7
Zoptymalizuj mapę w edytorze Hammer Krok 7

Krok 7. Dodaj 3D Sky-boxy

Nie jest to całkowicie konieczne, ale pomoże sprawić, że mapa będzie wyglądać na znacznie większą bez drastycznego spowolnienia FPS (klatek na sekundę). Skyboxy 3D są zwykle przeznaczone do „dużych” map zewnętrznych, ale można je wykorzystać do map wewnętrznych, jeśli możesz zobaczyć na zewnątrz przez okno lub coś takiego. Skyboksy 3D są bardzo tanie w renderowaniu i mogą sprawić, że mała mapa będzie wydawać się nawet 16x większa, ponieważ skyboksy 3D są ustawione w skali 1/16 w Hammerze, a następnie skalowane podczas kompilacji.

Zoptymalizuj mapę w edytorze Hammer Krok 8
Zoptymalizuj mapę w edytorze Hammer Krok 8

Krok 8. Dodaj mgłę

Na dużych mapach zewnętrznych mgła może ograniczyć ilość renderowanych szczegółów i sprawić, że mapa będzie wyglądać bardziej realistycznie. Po prostu dodaj encję env_fog_controller do swojej mapy. W opcji „Włącz mgłę” w Właściwości obiektu wybierz opcję „Tak”. Następnie edytuj Płaszczyzna przycinania Dalekiego Z według własnych upodobań, co spowoduje usunięcie wszystkich pędzli po tej odległości, eliminując renderowanie niepotrzebnych obiektów przez silnik (The Płaszczyzna przycinania Dalekiego Z wartość powinna być większa niż Koniec mgły wartość).

Zoptymalizuj mapę w edytorze Hammer Krok 9
Zoptymalizuj mapę w edytorze Hammer Krok 9

Krok 9. Nie zwariuj na Lightmap Scale

Skala mapy świetlnej zasadniczo określa, jak ostre lub rozmyte cienie są renderowane na geometrii. Większe liczby obniżają jakość cieni, ale mogą zwiększyć wydajność. W przeciwieństwie do tego, mniejsza skala mapy świetlnej zwiększa efekty wizualne cieni, ale może znacznie obniżyć wydajność. Zbyt duża lub zbyt mała skala mapy świetlnej może dawać nierealistyczny efekt świetlny, który jest odpowiednio zbyt matowy lub zbyt ostry. Domyślna skala mapy świetlnej dla wszystkich pędzli to 16, co stanowi zrównoważony obszar między efektami wizualnymi a wydajnością.

Zoptymalizuj mapę w edytorze Hammer Krok 10
Zoptymalizuj mapę w edytorze Hammer Krok 10

Krok 10. Jeśli twoja mapa zawiera wodę, umieść na mapie obiekt „water_lod_control”

Ta istota określa, jak daleko trzeba być od „drogiej” wody, aby mogła przejść do „taniej” wody. Drogie wody wyglądają znacznie bardziej realistycznie niż tania woda, a zatem kosztują więcej pod względem wykorzystania pamięci i obliczeń na komputerze. Krótsza odległość przejściowa będzie generować tańszą wodę z mniejszej odległości, a zatem straci wiele na jakości wizualnej z odległości, ale również zwiększy wydajność.

Porady

  • Przemieszczenia nie blokują widoczności, więc aby upewnić się, że mapa jest szczelna, stwórz pędzel świata za pomocą narzędzia/narzędzianodraw teksturę pod przemieszczeniem i uszczelnij nią mapę (tzn. niech rogi tego pędzla dotykają rogów skyboxa). Podobnie jak w pierwszym kroku, zawsze upewnij się, że mapa jest uszczelniona, w przeciwnym razie praktycznie każda wspomniana technika optymalizacji zostanie wyrzucona przez okno w czarną pustkę silnika Source.
  • Podczas tworzenia areaportali (poprzez tworzenie pędzla z teksturą za pomocą narzędzia/obszar narzędziowy i powiązanie go z func_areaportal), bardzo ważne jest, aby boki areaportalu, które nie są oglądane, dotykały pędzli świata. Na przykład, jeśli chcesz umieścić portal terenowy w przejściu, ale drzwi te mają ramkę powiązaną z funkcją func_detail, należy nie niech pędzel areaportal dotyka futryny, ponieważ jest to func_detail (a ponieważ pędzle func_detail nie wpływają na widoczność, dziennik kompilacji powróci z przeciekiem). Zamiast tego pędzel areaportal powinien dotykać ścian, sufitu i podłogi drzwi (które powinny być pędzlami świata), przecinając framugę drzwi. Nie martw się, że wokół ościeżnicy może wystąpić „przycinanie w kształcie litery Z”; ramka nadal będzie poprawnie renderowana w grze… jest po prostu dostępny w edytorze Hammera, aby kompilator mógł go używać podczas vvis.
  • W tym artykule zakładamy, że masz podstawową wiedzę na temat interfejsu edytora Hammer Editor (tworzenie pędzli, umieszczanie elementów, wiązanie elementów itp.).
  • Podczas tworzenia pędzli ze wskazówkami, teksturuj tylko twarze działające jako płaszczyzny wskazówek (powierzchnie, które podzielą BSP) za pomocą narzędzia/narzędzie tekstura. Teksturuj każdą inną twarz na pędzlu, która nie działa jak płaszczyzna podpowiedzi z narzędzia/pomiń narzędzia, w przeciwnym razie będziesz tworzyć więcej visleafs niż chcesz.
  • Możesz połączyć stan otwarcia/zamknięcia portalu obszaru z działającymi drzwiami, takimi jak func_door, func_door_rotating lub podobnymi elementami. Aby to zrobić, drzwi, z którymi chcesz połączyć portal areaportal, muszą mieć unikalną „nazwę”. (Podaj nazwę, klikając dwukrotnie drzwi, aby je otworzyć Właściwości obiektu okno i nadaj mu prostą nazwę pod Nazwa w zakładce Class Info). Po nazwaniu drzwi przejdź do areaportal Właściwości obiektu i przewiń w dół do „Nazwa połączonych drzwi” i wybierz drzwi, z którymi chcesz połączyć areaportal. Ponadto (i to bardzo ważne) należy ustawić Stan początkowy areaportalu do Stan początkowy drzwi. Ma to na celu zapewnienie, że gdy drzwi są zamknięte, arenaportal zamyka się wraz z nimi. Jeśli jesteś ciekawy, co dokładnie określają stany Open/Closed areaportal, jeśli areaportal jest Open, renderowane są wszystkie visleaves, które są widoczne po drugiej stronie areaportal. W przeciwieństwie do tego, jeśli obszarportal jest zamknięty, nic poza obszarem nie zostanie wyrenderowane. Jeśli więc jest otwarty korytarz, do którego zawsze będziesz mógł zajrzeć, Stan początkowy areaportal powinien być ustawiony na Otwarty, a nie Zamknięty. A kiedy są połączone z drzwiami, i tak nie będziesz mógł patrzeć przez drzwi, więc ustaw je na zamknięte, jeśli drzwi odradzają się zamknięte (chyba że mają przezroczyste okno, które wtedy powinieneś mieć ustawiony portal obszaru na Otwórz i nie nawet nie zawracam sobie głowy łączeniem go z drzwiami).

Ostrzeżenia

  • Nigdy nie rób skomplikowanego pędzla za pomocą narzędzia Hollow Tool. Wierzchołki (rogi pędzli) będą się przecinały i stworzą wielki niechlujny bałagan.
  • Używaj okludów tylko w ostateczności. Zajmuje bardzo dużo pamięci, więc jeśli rekwizyt można zapieczętować w pomieszczeniu z portalami obszarowymi lub jeśli możliwe jest rozdzielenie witek za pomocą pędzli podpowiedzi i pominięcia, zrezygnuj z używania okluderów.
  • Otwarte portale obszarowe wymagają znacznie większej ilości pamięci, ponieważ wypustki są obliczane w czasie rzeczywistym. Zaleca się jak najczęstsze używanie zamkniętych portali lub pędzli z podpowiedziami.

Zalecana: