Skagen Skrevet 9. april 2006 Del Skrevet 9. april 2006 (endret) Hei. Dette gjelder ikke programmering, men siden spørsmålet er litt teknisk tenkte jeg at jeg har størst hell å få hjelp her. Problemet er at i alle DirectX-spill får jeg voldsom lag/delay på musa. Desto mere grafikk som skal renderes av GPU, desto større lag - selv om FPS er over 60+ hele tiden. Etter litt forsking, spekulering og googling, virker det som om det er en slag buffer/cache for mus-input/kommandoer som skaper dette. Tilsynelatende er det er denne bufferen som brukes til bl.a mus "smoothing". Trykker man HER så kommer man til en artikkel fra 2001 om mus input buffer og smoothing. OpenGL har ikke slik lag/delay fordi den ikke har input buffer, enkelt og greit. Spillene dette gjelder har ikke mulighet til å skru av mouse smoothing siden de er litt eldre (ca. 2001). Men siden man kan skru av mouse smoothing i spill, så vil jeg anta jeg kan skru av smoothing/buffering av mus-input direkte via DirectX ved å 'hacke' litt? "dxdiag" var ikke til mye hjelp til å endre DX-instillinger. Så jeg er åpen for forslag Mvh Skagen Endret 9. april 2006 av skag1 Lenke til kommentar
Giddion Skrevet 9. april 2006 Del Skrevet 9. april 2006 hmm jeg sånn som jeg ser det er det ikke directx med i problemet ditt dx brukes bare til å hente muse posisjonen så lagrer programmet posisjonen .. så dx har ingen ting med saken å gjøre.. hvis metoden er den samme som linken din.. og jeg kan ikke huske jeg har sett noen metode for å få dx til å gjøre dette. Så med mindre du lager en trainer type program så kan du ikke fikse dette. PS: OpenGL brukes kun for å vise grafikk å har overhode ingen ting med lyd mus , tastatur osv.. hvis du sier hvilke spill det er så er det litt lettere. Lenke til kommentar
Skagen Skrevet 10. april 2006 Forfatter Del Skrevet 10. april 2006 hmm jeg sånn som jeg ser det er det ikke directx med i problemet ditt dx brukes bare til å hente muse posisjonen så lagrer programmet posisjonen .. så dx har ingen ting med saken å gjøre.. 5896144[/snapback] I denne artikkelen fra MSDN viser de jo hvordan å lage buffered mus-input i DX8.1. Operation Flashpoint er DX8.1, så DX9.0c-programmering er lite relevant her vil jeg tro siden dette problemet har jeg hatt med samtlige DX8.1-spill. Om jeg bruker OpenGL istedet forsvinner mus-laggen, noe som indikerer veldig klart at problemet er DX8.1. Bare så synd at Flashpoint kun støtter DX8.1 og 3DFX's Glide istedet PS: OpenGL brukes kun for å vise grafikk å har overhode ingen ting med lyd mus , tastatur osv.. 5896144[/snapback] Leste du hva jeg skrev? OpenGL har ikke slik lag/delay fordi den ikke har input buffer, enkelt og greit. 5891796[/snapback] Lenke til kommentar
Giddion Skrevet 10. april 2006 Del Skrevet 10. april 2006 Først vil jeg bare si at jeg er imponert over din evne til å grave i materialet.. en evne som flere skulle hatt. Men som du sikkert vet så er dx delt opp i mange deler. (Direct play, direct input , direct draw) og man trenger ikke å bruker alle på en gang. fks i min lille 3d motor bruker jeg OpenGL til tegningen og så bruker jeg Direct input til å mota tastetrykk og bevegelser. Med DI er har man to muligheter til å mota inputs (som du sikkert vet) med buffer input så angir man hvor mange inputs man vil ha så motar man det. Men dette er ikke instillinger man kan gjøre uten seriøs reverse enginering. Jeg lurer på om problemet ligger i at spillet ikke henter input fra bufferen fort nok eller henter nok input fra bufferen slik at noe blir liggende til neste frame. Hvis det hjelper så får du en wrapper til 3dfx hvis du vil prøve det. Ellers så kan det hende det finnes patcher. men det jeg ikke skjønner er at det blir verre jo høyere fps du har. Lenke til kommentar
Skagen Skrevet 10. april 2006 Forfatter Del Skrevet 10. april 2006 (endret) Det jeg mente med FPS'en er at forsinkelsen er merkbar selv med 60-100 FPS. Lavere FPS = større forsinkelse. Ved 60+ er forsinkelsen så lav som 0.1 sekund; fortsatt merkbar uten at det plager meg noe spesielt. Men det er når FPS'en går under 30 at forsinkelsen blir nærmere et halvt sekund, og et helt sekund under 15 FPS - helt umulig å spille skytespill da hehe. Jeg har også mistanke at det er DirectX som har problemer med å lese fra bufferen hurtig nok. Og siden forsinkelsen blir større når FPS'en går ned, så skulle man nesten tro spillet prioriterer Direct3D høyere enn DirectInput..? Jeg har et Radeon 7000 64 MB midlertidig, men skal kjøpe 7900GT i påska. (forhåpentligvis) Blir spennende å se om jeg enda vil ha forsinkelse siden spillet er DX8.1, eller om ekstra GPU-krefter vil gi nok tid til overs til å lese bufferen ofte nok. Med mitt avdøde X800PRO opplevde jeg aldri noe forsinkelse i DX9.0-baserte spill, men fikk desverre aldri testa X800PRO i Operation Flashpoint eller andre DX8.1-spill. Wrapperen, er det en slags 3Dfx emulator? Skal hvertfall se om jeg finner noe sånt nå! Takk for hjelpa så langt! Endret 10. april 2006 av skag1 Lenke til kommentar
Skagen Skrevet 10. april 2006 Forfatter Del Skrevet 10. april 2006 Wow! Ingen forsinkelse overhodet med denne wrapperen! Eneste problemet nå er at enkelte polygoner blir igjennomsiktige av og til, også får jeg kjøre spillet i max 800x600. Går jeg over det, så ser jeg bare 1/4 av det som renderes i øverste venstre hjørne. Men det ble en drøm å spille nå. Takker igjen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå