dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

frame rate
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Thu Aug 04, 2005 10:54 am    Post subject: frame rate

man ir gadījusies tāda īpatnēja lieta: kad palaižu OpenGL aplikāciju kopā ar windows media player, tad aplikācija skrien 7x ātrāk Shocked Kā lai to novērš?
(vai arī readme failā būsjāraksta neslēgt kopā ar wmplayer)
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Thu Aug 04, 2005 11:25 am    Post subject:

kaadaa veidaa tu regulee savas progas darbiibas aatrumu? ierobezo freimreitu, vai skaties kopsh ieprieksheejaa kadra pagaajusho laiku un regulee objektu kustiibas aatrumu?
_________________
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Thu Aug 04, 2005 6:01 pm    Post subject:

kā es to regulēju? Grūti pateikt... Es izmantoju delphi taimeru un intervāls ir 1 ms.
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Thu Aug 04, 2005 6:04 pm    Post subject:

Tu paarziimee sceenu un izpildi speeles logjiku uz katru taimera eventu, un intervaals ir 1ms?
_________________
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Thu Aug 04, 2005 6:15 pm    Post subject:

1 ms!! Laughing nē taču. Taimera opcijās esmu uzlicis 1ms. (TDXTimer komponente). Normāli ir, ja aplikācija iet uz 100fps, paliažot kopā ar wmplayer - 700fps.
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Thu Aug 04, 2005 6:20 pm    Post subject:

Nu tad tieshi te arii ir Tava probleema, es gan briinos, kaapeec ar WMedia player paatrinaas framerate... bet probleema ir taada, ka Tu paljaujies uz to, ka buus noteikts fps. Savu speeles logjiku izpildi nevis ar taimeri ar intervaalu 1ms, bet gan 0ms, vai veel labaak uz Idle eventu, ja taads tur pieejams. Un katru reizi paskaties cik milisekundes pagaajushas no ieprieksheejaa kadra, un tad dari taa: ja objektam jaakustas ar 100 vieniibaam sekundee, tad paarvietojumu shim kadram reekjini 100*pagaajushaas_milisekundes/1000 (aatrums_sekunee*pagaajushaas_milisekundes/1000). Tad vienalga pie kaada fps viss kusteesies pareizaa atrumaa.
_________________
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Thu Aug 04, 2005 8:08 pm    Post subject:

taimera opcijā ieliku 10ms, izskatās, ka strādā. enivei paldies.Ja šis vēlāk nestrādās, izmantošu tavu formulu.
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Thu Aug 04, 2005 8:23 pm    Post subject:

Nu kaa gribi, bet paljauties uz noteiktu fps un lietot konstantus update aatrumus lielaakai daljai speelju ir ljoti nepareizi. Es gan nezinu par Tavu konkreeto gadiijumu - varbuut taadam speeles zanram tas nemaz nemaisa Smile
_________________
Back to top
View user's profile Send e-mail
anggelus



Joined: 23 Feb 2005
Posts: 383
Location: Rīga (LV)

PostPosted: Fri Aug 05, 2005 8:54 pm    Post subject:

Kā ieslēdz MediaPlayer renderēšana notiek lēnāk nekā parasti, te nu arī rodās problēma ar taimeri.
Pieņemsim, ka tev uz katru taimera eventu tiek izsaukta funkcija draw(), ja nav ieslēgts MediaPlayer, tad draw() paspēj norenderēt visu kadru tajā 1ms intervālā, bet kā ieslēdz WMplayer, tā jau sākās problēmas, jo kamēr kadrs vēl nav līdz galam pārzīmēts, draw() tiek izsaukta vēlreiz, kamēr vēl notiek iepriekšējā kadra renderēšana. Ar to arī izskaidrojams kāpēc framerate pieauga ieslēdzot WMpayer.
Vislabāk izmantot GiGas ieteikto metodi, jo izmantojot OGL vai D3D nākamā kadra zīmēšana pirms iepriekšējais ir pabeigts var novest pie vizuāliem efektiem-defektiem, no kuriem visjaukākais ir windas zilais ekrāns, ja trāpījušies pašvaki videokartes draiveri.
_________________
No comprendo lo que dice.
Back to top
View user's profile Send e-mail
gazz



Joined: 03 Jan 2004
Posts: 355
Location: Teika

PostPosted: Sun Aug 07, 2005 8:14 pm    Post subject:

faktiski jau neesu redzeejis ka izmanto multi-threading ieksh rendereeshanas taa ka funkcija netiks izsaukta divreiz jo windows noprocesees vienu messagi un tikai tad kjersies pie naakamaas.
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Sun Aug 07, 2005 8:25 pm    Post subject:

Es arii taa domaaju, liidz dabuuju neizskaidrojamus errorus no wxWidgets uz timer eventa izsauktā koda. Nācās eventa sākumā stopēt taimeri un beigās atkal palaist. Par šo konkrēto situāciju nezinu, bet fakts ka tādas lietas virpār notiek un tiek uzskatītas par "pareizām" Confused
_________________
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Wed Aug 24, 2005 9:45 pm    Post subject:

labi, laikam būs jāuztaisa, lai spēles ātrums nebūtu atkarīgs no FPS
Tad pirmais laikam ir jāuzņem laiks, ja Rolling Eyes
Code:

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
time1 := getTickCount;
//renderēšana un citas lietas
time2 := getTickCount - time1;
end;


nesaprotu, time2 uzrādās kā 0 ??? Tas nav iespējams, kur te ir kļūda?
Baigais besis...
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Aug 24, 2005 10:03 pm    Post subject:

Kas tas par getTickCount mainīgo?
(uz taimeri nav labi renderēt, labāk idle loopā)
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Wed Aug 24, 2005 10:10 pm    Post subject:

getTickCount ? Tā ir windows f-ja it kā skaita ms. Es izdomāju savādāk, uzliku 2 taimeru vienu uz 0(vai tas ir idle?) un otru uz 1000ms.
Code:

//0ms
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
renderēšana un citas lietas
inc(CountFPS);
end;

//1000ms
procedure TForm1.Timer1Timer(Sender: TObject);
begin
rezFPS := CountFPS;
CountFPS := 0;
end;

end;


Nu tā, tagad rādās FPS(>700), hm. Kā ar to viltīgo sistēmu, lai tā spēle ietu nemainīgā ātrumā???
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Aug 24, 2005 11:17 pm    Post subject:

Fukcijas izsaukums jau pierakstās šādi: getTickCount(), vismaz paskālā. Bet mainīgā ierakstīšana/nolasīšana: getTickCount.

Pievērs uzmanību iekavām.

Nē tā arī nav labi (ar diviem taimeriem). Paskaties Delphi helpā par onidle eventu.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group