Velký obrázek - generovat/načítat výřezy? – Offtopic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Velký obrázek - generovat/načítat výřezy? – Offtopic – Fórum – Programujte.comVelký obrázek - generovat/načítat výřezy? – Offtopic – Fórum – Programujte.com

 

Matěj Andrle+1
Grafoman
24. 7. 2014   #1
-
0
-

Dobrý den,
v současném modelu generuji statické objekty rovnou do dynamicky vytvořeného obrázku, ze kterého vykresluji výřezy. Problém nastává u velikosti - ta je na mé potřeby moc malá. Buď mohu změnit statické vygenerování za dynamické výpočty (které si popravdě ani neumím představit - bude to vyžadovat spoustu pomocných proměnných atd.), anebo jen upravím současný model a to tak, že budu po částech ukládat onen dynamický obrázek (na což bude stačit otevřený proud) a následně z něj načítat jen požadovaný výřez. Co je však rychlejší? (hledat v RAM pomocná pole atd. + přepočítávat pozice sčítáním, odčítáním a násobením + vykreslovat dlaždice po dlaždicích + čistit plochu, jelikož si nebudu moci plochu vyčistit samotným obrázkem (kresleným do pozadí) bez alfakanálu, či jen načíst kus souboru (který i rovnou vyčistí plochu))
Děkuji.

Nahlásit jako SPAM
IP: 78.136.172.–
peter
~ Anonymní uživatel
4016 příspěvků
25. 7. 2014   #2
-
0
-

Pole s obrazky muzes indexovat, vyhledani pozice pak je rychle.
Pokud se okoli obrazku nemeni pri otaceni a neni treba prepocitavat aliasing, vzdycky je rychlejsi vykreslit obrazek. Vykresleni jpegu bylo uzasna vec uz na 486MHz stroji.
Treba u Lol mne vzdycky stve, co tam tak dlouho nacita pri startu hry, kdyz pak jde vicemene o statickou mlaticku ala GoldenAxe, ktere fungovalo bez problemu na 486 a nelo 600kB, sice ega grafika, ale :) Kdezto Lol ma nejakych 5GB nebo vic a vlece se to jak snek na lepsi grafice, kdyz mas vsechny efekty a hrajes multiplayerove.

Nahlásit jako SPAM
IP: 2001:718:2601:258:d55a:48...–
Matěj Andrle+1
Grafoman
25. 7. 2014   #3
-
0
-

#2 peter
Takže generovat do streamu souboru a pak otevřít stream pro čtení a tahat pomocí seek atd.? Já si zase říkám, že vlastně mohu přeskočit seekem jen výšku - šířku budu muset ukrajovat... Jak bys to řešil konkrétně v C#? (obrázek jak píšeš - bitmapa - rastr) Problém je jak jsem zmínil - že neznám předem celý obrázek - generuji po políčkách... Mám zkrátka pozici hrdiny v mapě a potřebuji pod ním posouvat mapu - a právě proto, že je to po pár PX mi přijde blbé po každých pár PX vypočítávat mapu, jenže jak už jsem naznačil - ono i vyřezávat bude krapet náročné... Posouvá se pro zjednodušení o 10 PX za 50 ms. (ano - hrdina vlastně stojí na místě)

Nahlásit jako SPAM
IP: 78.136.155.–
Satik0
Stálý člen
25. 7. 2014   #4
-
0
-

#3 Matěj Andrle
Ve hrách se tohle řeší jinak - nevykresluje se celá mapa a pak z ní výřez, ale prostě vykreslíš jen rovnou ty políčka, co budou na obrazovce vidět.

Nahlásit jako SPAM
IP: 46.255.9.–
Matěj Andrle+1
Grafoman
25. 7. 2014   #5
-
0
-

#4 Satik
Kdyby šlo jen o políčka. Těch statických objektů je právě dost... A jak jsem psal - přijde mi blbé při posunu o pár PX cyklem projíždět pole políček, podmínkovat a pak to přepočítávat z políčkové na 2D grafiku... Když jsou to všechno objekty se stále stejnou pozicí... (v současném modelu jen hledám jediným cyklem v programu všechna monstra v okolí hráče - zbytek si staticky leží ladem)

Nahlásit jako SPAM
IP: 78.136.178.–
Satik0
Stálý člen
25. 7. 2014   #6
-
0
-

#5 Matěj Andrle
I tak se kreslí to, co je potřeba, znova dokola.

Pokud máš pozadí bez animací, tak tu část můžeš ukládat do cache a překreslit jen při posunu kamerou.

Nahlásit jako SPAM
IP: 46.255.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý