Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



DXTimer a FPS

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: DXTimer a FPS

Autor: JaroB. ♂

19:44:01 14.08.2012

Obecně je DXTimer v DelphiX lehce nepřesný. V případě optimalizací resp využití zabudovaných finkcí (a obejití všech dotykových bodů na Canvas) se FPS vždy zvýší asi o... (nikoliv přesně o...)

:)

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: fukami

11:26:39 12.08.2011

Když čtu těch 10 elips, tak mě napadá ... nezapoměl jsi použít DXDraw.Surface.Canvas.Release ?

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: JaroB

15:31:36 07.05.2011

Nějak jsem přehlédl jakou verzi Delphi máš, ale V Delphi XE je podpora pro profiling, třeba by se dalo zjistit, kde přesně došlo k nějaké anomálii.

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: Tombin

18:23:31 26.03.2011

Z nějakého záhadného důvodu to zase chodí tak, jak má. Nic jsem tam prakticky neměnil, co by na to mohlo mít vliv... Nevím, snad už to bude v pořádku. Díky.

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: JaroB

17:46:09 20.03.2011

pokud používáš DXSpriteEngine, tak jistě používá dynamické vytváření a ničení objektů. Tolik objektů jsem asi nikdy nepoužil, ale nevím jak to používáš, pošli mi příklad, abych to mohl přeložit a zkusit si i ten pád FPS :)

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: Tombin

14:50:05 17.03.2011

Mám teď jiný problém. Vytvářím cca 7000 objektů rozmístěných po velké ploše (cca 70000×70000px). Vše funguje na začátku dobře, FPS drží. Nicméně po shlédnutí určitého počtu těchto objektů FPS skokově spadne o 3. Nesouvisí to s počtem vytvořených objektů celkem. Není to ani metodou kreslení - zkoušel jsem úplně vypnout DoDraw těchto objektů, čili existovaly, ale nebyly vidět, a problém byl stejný. Jediné, co pomůže, je když dám DXDraw.Finalize a DxDraw.Initialize. Z čehož usuzuji, že se zahltí nějaká pamět DXDraw. Nicméně to praktikovat nelze, protože při tom obraz problikne. Ještě mě napadlo, jestli se nemůže nějak zahlcovat SpriteEngine. Nenapadá Tě něco?

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: Tombin

18:34:44 16.03.2011

Ahoj,
díky za odpověď, podívám se na to. Mně právě hodně překvapilo, že byla mnohem náročnější operace vykreslení elipsy na Canvas než třeba vykreslení obrázku s alpha průhledností a rotací zároveň. Je pravda, že DXPaintBox jsem vůbec nezkoušel použít... Ještě to vyzkouším ;)

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: JaroB

11:14:05 16.03.2011

Ahoj
pro zrychlení kreslení můžeš použít zabudované fukce na DDS (například DDS obsahuje opravdu rychlé pixelové vykreslování, velmi podobné funkcím turbopixels, které jsem ale napsal v assebleru).
Pokud chceš opravdu znatelně zrychlit kreslení, tak musíš využít (kromě zapnutí HW vykreslování, což je hlavní plus (un)DelphiX) některé optimalizační techniky a mít na vědomí omezení samotného frameworku např. to, že nejlépe se klíčuje transparentní pozadí pro černou barvu, nebo že obrázky jako textury nesmí být větší jak 1024x1024 px (nebo 2048x2048px, podle adaptéru) a musí být vždy v DxImageListu pojmenované(!). Taktéž můžeš využít další zabudované nástroje, jako je trace editor nebo všechny možnosti DIB jednotky (kterou lze použít i samostatně tj. bez DirectX) pro přípravu textur nebo videotextur. Těch možností je opravdu víc :)

Citovat příspěvek

 

Re: DXTimer a FPS

Autor: Tombin

17:11:39 14.03.2011

Tak si odpovím sám :) Problém byl v tom, že po poměrně krátkém běhu programu mi začalo padat FPS. Po delším bádání jsem přišel na to, že za to může vykreslování elips Canvasem. Přibližně po 10 vykreslených elipsách FPS rapidně kleslo. Když jsem kreslení Canvesem odstranil, bylo vše v pořádku.

Citovat příspěvek

 

DXTimer a FPS

Autor: Tombin

23:30:23 11.03.2011

Ahoj,
řeším takovou jednu (pro mě) záhadu. Nastavím-li interval Timeru na 0, získávám 70 až 80 FPS. Nastavím-li ho ale na 25 (kdy by mělo být FPS 40), získávám maximálně 32. Není to zas tak zásadní problém. Je by mě zajímalo, čím to je způsobeno a případně jak zařídit, abych získal těch 40. Díky.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: