View previous topic :: View next topic |
Author |
Message |
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Mon Jul 20, 2009 10:20 pm Post subject: IDirect3D9::CreateDevice un double/float precision |
|
moka kaadam noderees kaadreiz.
shodien paaris h pavadiiju ciinoties ar to ka izmantojot timer klasi, kas laiku atgriezh kaa double, atgrieztaa veertiiba bija gljukaina. alja aiz komata vienmeer bija 0 un pirms komata veertiiba dazhreiz bija lielaaka dazhreiz bija mazaaka par to kaadai bija jaabuut. izveicot testus ar klasi viss pashii. izmantojot reaali klasi viss gljuchii. vitoge:
IDirect3D9::CreateDevice defaulti uzsetto FPU uz single precision modi. attieciigi visas darbiibas ar double tiek veiktas kaa ar float neskatoties uz to ka sizeof joprojaam atgriezh 8. no shii var izvairiities divejaadi.
1) nelietot double datatipu vispaar
2) lietotojot D3DCREATE_FPU_PRESERVE flagu ieksh IDirect3D9::CreateDevice BehaviorFlags paramaa - shii operaacija teorijaa samazina directx aatrumu (cik sapratu tad katra dx funkcija pie shii flaga funkcija saakoties setto FPU uz single precision un funkcijai beidzoties setto atpakalj uz origjinaalo jo ieksheeji dx joprojaam lieto single precision)
3) settot FPU uz double precision modi vajadziigajos briizhos (man gan veel nav iisti sanaacis saprast kaa)
edit:
teorijaa shaadi var uzsettot double precision un atpakalj uz origjinaalo veertiibu
Code: | unsigned int orgfp=_statusfp();
_controlfp(_PC_64, _MCW_PC);
//sheit lietojam double precision
_controlfp(orgfp, _MCW_PC); |
_________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Jul 20, 2009 11:44 pm Post subject: |
|
Heh, cerams, ka tiešām cilvēki neslinkos paskatīties šeit. Pats pirms vairākiem mēnešiem ar šo pacīnījos..
P.S.
Nebūtu slikti, ja forumā būtu vairāk šāda veida informācijas, katrā sadaļā tāds īpašs sticky topic. Būtu forumam pievienotā vērtība.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Tue Jul 21, 2009 5:12 pm Post subject: |
|
Stulbi ka DX taa uztaisiits. Anywayz vienmeer var uzrakstiit paris rindas pats QueryPerformanceCounter etc. _________________ Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552 |
|
Back to top |
|
|
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Tue Jul 21, 2009 5:45 pm Post subject: |
|
nu laiku dabuusi bet double no ieguutaa laika neuztaisiisi jo double operaacijas visas fallbacko uz floatiem. alja
Code: |
double v1=10000000.0;
double v2=0.1;
double v3=v1+v2;
|
v3 nebuus tas ko tu gaidi :)
es izliidzeejos laiku konverteejot uz milisekundeem un opereejot ar int64 tipu peec tam _________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
|