PDA

Zobrazit normální verzi : Testování optimalizace map



Grakon2702
10-09-17, 22:53
Optimalizace je procedura, při níž se upravuje mapa tak, aby v reálném čase vykreslovala pokud možno co nejméně polygonů, ovšem ne na úkor její podoby a funkčnosti. V tomto návodu vám ukážu, jak si jednoduše otestovat optimalizaci jakékoliv mapy a vysvětlím i nějakou teorii.



Nejdříve teda ta teorie

Co je to polygon? Matematicky ho lze definovat jako mnohoúhelník o různého počtu přímkami spojených bodů. Ve virtuálním 3D světě ho můžeme laicky definovat prostě jako stěnu. Pro lepší představu to vysvětlím na jednoduchém příkladu. Máme nějaký 3D modelovací program a vymodelujme v něm krychli. Z reálného světa víme, že krychle má celkem šest stěn. Ve virtuálním 3D světě můžeme říct, že námi vymodelovaná krychle má celkem 6 polygonů. Samozřejmě to není tak jednoduché, ale pro začátek to stačí.

Mapy v Counter-Striku (a vlastně všechno co ve hře vidíme) se také skládají z polygonů. Čím více musí hra vykreslovat polygonů, tím více se zatěžuje hardware počítače a při vysokém počtu vykreslovaných polygonů může dojít k poklesu fps. V Goldsource enginu rozlišujeme celkem dva druhy polygonů a to na tzv. wPoly a ePoly.

wPoly jsou polygony textur "nalepených" na brush. Pokud na jednu velkou stěnu brushe nalepíme nějakou texturu, engine tuto jednu texturu rozdělí na několik částí (wPoly) v závislosti na velikosti (rozlišení) textury. Čím větší tyto textury jsou, tím menší máme počet wPoly. Doporučený počet wPoly pro stabilní běh hry bez poklesu fps se pohybuje mezi 600-800 a maximálně 1000, kde už můžou hráči se slabšími stroji pociťovat pokles fps.

ePoly jsou polygony modelů. Tím jsou myšleny modely zbraní, postav a jiných objektů ve hře, které nebyly vytvořeny ve VHE. Počet ePoly má menší vliv na počet fps, což umožňuje přidat do mapy objekty s více detaily. Ty však musí být vymodelovány v nějakém 3D modelovacím programu, což už není záležitost mapperů, ale profesionálních modelářů. U slabších strojů může docházet k poklesu fps při vykreslování více jak 10 000 ePoly.



In-game testování

Ke zjištění počtu polygonů na mapě nám pomůžou tyto příkazy:


map <jmeno_mapy> - Spustí mapu ve vývojářském režimu (příklad: map de_dust2).
r_speeds 1 - aktivuje kalkulaci počtu aktuálně vykreslovaných wPoly a ePoly.
developer 1 - aktivuje výstup kalkulací r_speeds na obrazovce.
gl_wireframe 2 - pomocí čar zvýrazní jednotlivé wPoly. Vykreslování těchto čar vyžaduje více HW prostředků, a proto může při používání tohoto příkazu dojít k poklesu fps.



Ukázka

Porovnám zde dvě naprosto rozdílné mapy. De_dust2, vytvořenou zaplaceným profesionálem a pracovníkem Valve a jb_snow, vytvořenou komunitním mapperem. Na první pohled je zřejmé, proč většina lidí zažívá pokles fps na komunitních mapách a to jednoduše proto, protože nejsou optimalizované. R_speeds statistiky na mých fotkách najdete v levém horním rohu.

https://i.imgur.com/l5VeobH.jpg

https://i.imgur.com/s9nLmrs.jpg

To je ode mne vše. Detailnější informace ohledně optimalizace Goldsource map naleznete zde (http://spr1n.kz-baltic.eu/mapping/FPSimprove/).