Kezdőoldal » Számítástechnika » Programozás » Hogy lehet elérni fix FPS-t...

Hogy lehet elérni fix FPS-t OpenGL-ben? (nos melyik is a jobb videókártya? . Többi lent)

Figyelt kérdés

Azt tapasztaltam, hogyha 60Hz-en megy a monitorom, és nVidia kártyát használok, akkor az OpenGL tökéletesen hozza a 60 FPS-t!


Viszont, ha ugyanazt a programot futtatom egy ATi videókártyás gépen, akkor 180 FPS körüli értéket hoz... :-)


Azt kétlem, hogy az ATi ennyivel gyorsabb kártyákat dobna ki, inkább arra gondolok, hogy valami "gebasz" van a meghajtóprogramok körül.


(márcsak azért is, mert ugyanolyan konfiguráción, Win8.1-en az nVidia esetén alapból tökéletesen kezeli az OpenGL-t, viszont az ATi a Catalist feltelepítése után sem mozgatja meg az OpenGL-t, vagyha igen akkor meg túlzásokba esik... :-))



2014. jún. 15. 21:30
 1/9 anonim ***** válasza:
Gondolom van vsync az előbbinél beállítva.
2014. jún. 15. 22:24
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

Ez a VSync, azaz a vertikális szinkronizáció.


Nyilván egyik esetben be volt állítva a másik "teszted" során pedig nem.

2014. jún. 16. 00:39
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:

OK, köszönöm az ötleteket, akkor tovább görgetném a kérdést:


1.: Az nVidia-nak a meghajtóprogramja alapból beállítja a VSync-et, az ATi-jé viszont nem?


2.: Egy OpenGL programban hogy lehet azonos sebességet elérni (ha be van állítva, ha nem a VSync?) ...a lényeg, hogy azonos sebességet akarok elérni minden gépen...


(esetleg a GLFlush() és a GLFinish() parancsokat vegyem gorcső alá jobban?)


Még egyszer köszönöm az építő jellegű ötleteket!

2014. jún. 16. 15:42
 4/9 anonim ***** válasza:

"hogy lehet azonos sebességet elérni"


Ezt kifejtenéd bővebben?

Mit értesz azonos sebesség alatt? Azonos FPS-t? (ez nyilván nem lehetséges, de miért van rá szükség?)

2014. jún. 16. 16:50
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

Azonos sebességen azt értem, ami az eredeti kiinduló kérdésemben is volt, azonos FPS-t, de ugye ezt OpenGL-ben igen érdekes elérni, mert pipeline módon működik, ami nem lenne baj, de mivel közben futtatok egy hanghullámot generáló algoritmust, amit fix időpontokban kell kiküldenem a hangkártyára, így fontos lenne az "azonos sebesség"... ...ami menne is, hiszen az OpenGL "fix időközönként" renderel ki egy képet, ami nem igaz...


(próbáltam én számolni a renderelés közben a frame-eket, meg bevetettem a FRAPS-programot is, ami mutatta egy új modern gépen (nVidia) a 60FPS-t, egy 6 éves laptopon (ATi) meg a 180FPS-t... :-) ...de integrált Intel Graphics Chipset-tes gépeken is "állandó sebességet" produkál)


Direct3D-ben tényleg fixen adja az FPS-eket, de ez a programom OpenGL-re épül...

2014. jún. 16. 21:39
 6/9 A kérdező kommentje:

Már nem kell gondolkoznotok rajta... :-)


A problémát megoldottam, mégpedig úgy, hogy hagytam a fenébe a fix FPS dolgot, pöröghet bármilyen gyorsan a grafikai rész.


Viszont új szálat sem akartam indítani, hiszen az OpenGL alkalmazásokat nagyon megfogják a plussz szálak.


Az ablakhoz rendelt Timer viszont nem fogja vissza, így a Timer változásakor mindig kiküldöm a feldolgozott hangadatokat.


Bár az még érdekes kérdés maradt, hogy mi okozza a régebbi és ATi videókártyás laptopon a 180 FPS-t?

(amikor a Monitor 60Hz-en pörög, miért 3x-ozza meg???)

2014. jún. 20. 16:28
 7/9 anonim ***** válasza:

Nyilván az idő alapú a jó megoldás, ilyenre.


Az fps-re meg már válaszoltunk, hogy vsync. Többet nem tudok rá mondani.


A fix 30 fpsre pedig hogyan lehet képes a Direct3D, ha az én gépem mondjuk csak 5-öt bír kiköhögni?

2014. jún. 20. 16:37
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

Hogy hogyan lehet képes a Direct3D 60 FPS-re? Régi (kb 2003-as) 1 magos gépek is képesek rá.


Nem FarCry 3-ra gondoltam... :-) ...rajzolj egy textúrázott kockát a képernyőre, állítsd be a monitorod 60Hz-re (a régieket még lehetett 75Hz-re is)... ...és megy is a 60fps, ehhez nem kellenek atomerőmű-gépek, az egyszerű televiziók is viszik a 25-30fps-t... (hiszen annyi kell minimum, hogy mozgófilmnek lássuk)


Az más kérdés, ha több dolgot is akarsz rajzolni vagy csinálni az egyes renderelések alatt vagy között, akkor az FPS lecsökken, de alapból egy-egy kép kirajzolása igenis megy 60fps-sel!


Az OpenGL azért érdekesebb, mert ő nem várja meg a kirajzolást, párhuzamosan dolgozza fel a következő és a következő képet:


[link]


Direct3D-nél konkrétan be is lehet állítani (programozni) a videókártyát, hogy mennyi Hz-en dolgoztassa meg a monitort, természetesen, ha az adott hardware képes erre.


(különben megértettem, amit írtál, de gondolkozz el azon, hogy pl. manapság miért kellenek ahhoz 2-4-6-8 magos gépek, hogy élvezhető minőségben tudj csupán akár szöveget szerkeszteni vagy egy videót megnézni vagy bármit... ...fogyasztói társadalom! :-))

2014. jún. 21. 13:08
 9/9 anonim ***** válasza:

"Hogy hogyan lehet képes a Direct3D 60 FPS-re? Régi (kb 2003-as) 1 magos gépek is képesek rá."


Egyrészt én ezt mint elméleti (és költői) kérdés fogalmaztam meg. Hogy érzékeltessem, hogy ilyen _nyilván_ nincs.

Másrészt mit számolunk 2003-tól, és ha én 93-at mondok?


"Nem FarCry 3-ra gondoltam... :-) ...rajzolj egy textúrázott kockát a képernyőre, állítsd be a monitorod 60Hz-re (a régieket még lehetett 75Hz-re is)... ...és megy is a 60fps, ehhez nem kellenek atomerőmű-gépek, az egyszerű televiziók is viszik a 25-30fps-t..."


Azért itt egy picit el vagy tájolva, látom. Egyrészt - mint már mondtam - ez elméleti kérdés volt, nem a far cry 3-ra gondoltam, de nem is egy kockára. (Bár lehetne mindkettő.)

A tv-t meg ne keverjük ide, az nem renderel ki húszmillió háromszöget egy tizedmásodperc alatt, de még egyet sem.


"(hiszen annyi kell minimum, hogy mozgófilmnek lássuk)"


Ez minimum, és még így is elég tág határok között mozog, attól függően, hogy élesek a képkockák (sokkal több kell, pl. 60) vagy elmosódottak (kevesebb, ez az adás, ~24-30 között).


"Direct3D-nél konkrétan be is lehet állítani (programozni) a videókártyát, hogy mennyi Hz-en dolgoztassa meg a monitort, természetesen, ha az adott hardware képes erre."


Ennyi. Ha képes.


"gondolkozz el azon, hogy pl. manapság miért kellenek ahhoz 2-4-6-8 magos gépek, hogy élvezhető minőségben tudj csupán akár szöveget szerkeszteni vagy egy videót megnézni vagy bármit... ...fogyasztói társadalom! :-)"


Szövegszerkesztéshez sosem kellett 4-magos gép, meg izmos videókártya. Esetleg a csilivili DE-hez alatta, aminek alpha blendinget kell számolni az ablakokhoz, meg minden szart, amivel tele van tömve..

2014. jún. 21. 13:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!