Tutoriály, návody a užitečné informace pro začínající i pokročilé.

[!] Optimalizácia mapy part.1

Příspěvekod ackocc » 04 čer 2019, 10:37

Máte hotovú mapu, ale mapa sa nedá hrať kvôli malým FPSkám? Čítajte ďalej.

Pár poznámok k tutoriálu:
    • Ak tvoríte mapu, ktorá sa odohráva vo veľkej krabici aneb. otvorenú mapu (jail_buyukisyan_dark, jb_snow, jail_russia, ...), je dosť pravdepodobné, že vám žiadná rada nepomôže, kvôli otvorenosti mapy.

    • Ak máte aj 20 FPS na malej fy_*, awp_* mape, uistite sa, že mapa nemá nijakú chybu (LEAK, entity mimo hrateľnú časť, ...).

    • Kľúčom máp s dobrými FPS hodnotami, sú koridory (zm_cpl_mill_kamp, jail_bailonX.)

K tutoriálu:

Vytvoril som si malú, testovaciu mapu. Urobíme si pár screenov, keď mapa nieje vôbec optimalizovaná + budeme kompilovať VIS na FAST.

Obrázek
183 wpoly

Obrázek
267 wpoly

Obrázek
259 wpoly

V tomto dieli sa budeme zaoberať len druhým a tretím screenom.


Face - jedna stena brushu.

NULLovanie

NULLovanie je procedúra, kde aplikujete texturu Obrázek NULL na každý Face, ktorý si hráč nemá šancu všimnút počas normálnej hry.

Čo môžme NULLovať:
    Faces entít, ktoré sa dotýkaju klasických brushov
    Druhé strany niejakých barikád, kam sa hráč nedostane (len noclipom, Spectate módom)
    Niejaké spody lavíc, stoličiek, ...

V tomto prípade, to sú pár Faces trubiek a skoro všetky Faces krabice.

Trubku najvyššie od podlahy oNULLujeme takto:
Obrázek

Trubku vedľa nej len takto:
Obrázek

A posledná je krabica:
Tú oNULLujeme tak, že označíme krabicu, otexturujeme celý brush texturou NULL
Obrázek

a Face pred hráčom otexturujeme texturou krabice.
Obrázek

Ak majú miestnosti viac prechodov, je potreba otexturovať aj druhú stranu, inak by na druhej strane hráč myslel, že tam žiadná krabica nieje.


Obrázek
258 wpoly = zbavili sme sa 9 wpoly



func_detail

Táto metóda optimalizácie máp je oveľa účinnejšia ako NULLovanie. Je to vlastne to, že zo všetkých brushov, ktoré slúžia ako detaily (krabice, trubky, káble zo svetiel, ...) spravíte entitu func_detail. Kompilátor (CSG) entitu func_detail nepočíta ako entitu, pretože brushe prevedené na túto entitu sú v hre ako klasické brushe s tým rozdielom, že nerežú ostatné brushe.

Takže.. všetky svetlá, krabice, v jednoduchosti detaily prevedieme na entitu func_detail, a je hotovo.
(neoznačujte úplne všetky detaily na mape do jednej entity, tým si len výkon mapy zhoršíte než zlepšíte!)
Není potreba nič nastavovať, iba v tejto situácii:
Ak označíme trubku a sivé 'kryty' do jedného func_detail, tie sivé srandy nám nebudú zbytočne tvoriť viac wpoly, ale trubka áno.

Obrázek

To vyriešite veľmi jednoducho:
Zo sivých sránd spravíte jeden func_detail, a z trubiek druhý func_detail s rozdielom, že vo func_detail trubky v Properties upravíme Detail level na 2.

    Poznámka: Ak máte na sebe viac func_detailov, ktoré sa môžu rezať, je potreba nastaviť správny Detail level, aby sa nerozsekávali.

A ešte dráty zo svetiel:
Tie označíme, spravíme z nich func_detail, a v Properties upravíme kolonku Passable na Yes a taktiež mu dáme Detail level na 2, keďže sa dotýka svetla.


Obrázek
115 wpoly = zbavili sme sa 143 wpoly, a viac ako 140 wpoly už je celkom dosť.



Scale

Táto metóda taktiež súvisi s texturami. Je to zväčšovanie veľkostí textúr na brushi. Jeho nevýhodou je to, že čím väčší scale, tým je textura viac rozmazanejšia, ale tým menšie wpoly. Tento druh optimalizácie sa dá najlepšie zbadať na mape jb_snow, kde má každý brush minimálne trojnásobny scale. Oplatí sa scalovať podlahy, stropy, alebo jednofarebné textury.

Takže, si otvoríme Texture Application Mode (Shift + A), označíme si podlahu aj strop, a v tabuľke Texture Application Mode si všimneme v ľavom hornom rohu čast Scale:
Obrázek
Každý nový brush má Scale 1.000 x 1.000, a najideálnejšia cesta, je upraviť Scale medzi 1.000 až 2.000, v niektorých prípadoch maximálne 2.750. Hodnota 3+ je už príliš moc.

Obrázek
Scale 1.000 x 1.000

Obrázek
Scale 1.500 x 1.500



Obrázek

102 wpoly = zbavili sme sa 13 wpoly, takže tromi metódami sme sa zbavili celkovo 165 wpoly v malej miestnosti.
V ďalšiom a poslednom parte sa pozrieme na ďalšie 2 zložitejšie metódy.


Prikladová mapa (.rmf).
alf
Uživatelský avatar
ackocc
Drbna
Drbna
 
Příspěvky: 255
Registrován: 18 črc 2017, 08:21

[!] Optimalizácia mapy part.1

od Rumcajz » 04 čer 2019, 10:37

A uz jsi vyzkousel treba tohle? Rumcajz
Rumcajz
Rumcajz
Patriot
Rumcajz
 
Příspěvky: 97323
Registrován: sob 29.led 1999 0:11:22

Zpět na Tutoriály

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků