NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Optimalizace vykreslování ve 2D hrách

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Neaktivní uživatel:26.3.2013 20:57

Dobrá práce, to by mě v životě nenapadlo řešit :) O prvním způsobu jsem tak nějak podvědomě věděl, ale nikdy jsem to neaplikoval, schválně to někdy zkusím :)

Odpovědět
26.3.2013 20:57
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:12.6.2013 22:01

Chtěl bych se zeptat. Úplně nevím co si mám představit pod
"vykreslete si ji do pomocné textury a místo spousty volání kreslení malých ploch vykreslujte jednu velkou" ?

Jinak zatím optimaluzuju pouze vykreslování viditelných ale mám každý objekt s vlastní texturou a ty iteruju a kreslím. Možná bude lepší když tedy udělám jednu velkou texturu a objekty budou v sobě držet pouze Source rectangle pro vykreslení správné části textury. Je to tak ? :)

Odpovědět
12.6.2013 22:01
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Luboš Běhounek Satik:12.6.2013 22:27

"vykreslete si ji do pomocné textury a místo spousty volání kreslení malých ploch vykreslujte jednu velkou"

Pod tím si představ to, že když máš třeba terén složený ze spousty malých čtverečků, tak nevykresluješ v každém obrázku všechny čtverečky, ale "předvykreslíš" si je všechny jednou do velké pomocné textury (velké jako obrazovka).

Při dalších obrázcích nevykresluješ tu spoustu malých čtverečků, ale vykreslíš jako terén jen tu pomocnou texturu (a na ni pak další pohyblivé/animované objekty jeden po druhém).

Vykreslení jedné velké textury je několikanásobně rychlejší než vykreslení spousty malých, i když je výsledná plocha stejně velká, protože se eliminuje téměř veškerá režie.

Pokud se hýbeš pohledem po mapě, pak musíš tu pomocnou texturu samozřejmě aktualizovat a znova si ji vykreslit, případně tuhle optimalizaci přímo při pohybu po mapě nepoužívat
(případně by se to ještě dalo obejít tím, že by sis tu pomocnou texturu udržoval o kus větší než obrazovka - měl na každé straně rezervu a vykreslil až když pohledem dojedeš na kraj té pomocné textury (viz obrázek).

"Jinak zatím optimaluzuju pouze vykreslování viditelných ale mám každý objekt s vlastní texturou a ty iteruju a kreslím. Možná bude lepší když tedy udělám jednu velkou texturu a objekty budou v sobě držet pouze Source rectangle pro vykreslení správné části textury. Je to tak ?"
Ano, to je mnohem mnohem rychlejší a šetrnější metoda :) .

Odpovědět
12.6.2013 22:27
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Běhounek Satik:12.6.2013 22:33

Jinak jen pro porovnání, když jsem zkoušel psát svůj 2D engine, tak v full HD rozlišení jsem před těmito optimalizacemi měl asi 10 fps.
Když jsem kreslil jen textury, co jsou na obrazovce, tak jsem se dostal na 100 fps, když jsem začal místo spousty textur používat jednu velkou, ze které se tahaly všechny obrázky, tak se fps dostalo asi na 1500 fps a s cachováním terénu do pomocné textury jsem měl asi 3000 fps (když se s kamerou nepohybovalo).

Odpovědět
12.6.2013 22:33
https://www.facebook.com/peasantsandcastles/
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Petr Nymsa:12.6.2013 22:35

Díky :) Zatím to vidím tak že jádro "enginu" přepíšu aby fungovalo na velké textury a nebralo malé vlastní textury které vykresluje. Navíc si tím zajistím větší flexibilitu...

Odpovědět
12.6.2013 22:35
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Luboš Běhounek Satik:12.6.2013 22:40

Když se připomeneš zítra po 9. večer nebo v pátek, tak ti můžu poslat zdrojáky od tohohle http://www.itnetwork.cz/…ik-strategie pro "inspiraci" :)

Až dodělám bakalářku, tak snad zas budu pokračovat :D

Odpovědět
12.6.2013 22:40
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.