Gå til innhold

Hva er v-sync?


Anbefalte innlegg

Men om eg forstår riktig; Til høgare Hz på skjermen dess mindre treng ein V-sync? =o

8873441[/snapback]

 

Både og;

 

Jo høyere Hz du har på skjermen, jo mindre vil forskjellen mellom vsync og ikke vsync bli, forutsatt at du har en maskin som klarer å levere et bilde til hver oppdatering. Hvis du har 100hz på skjermen, og maskina di klarer å levere 100 bilder i sekundet, så vil du slippe tearing om du har på vsync. Om du derimot skrur av vsync, vil du fortsatt kunne oppleve tearing, men ettersom du nå oppdaterer bildet oftere, så vil ikke problemet bli like markant.

 

Det som derimot kan skje er, er følgende (som nevnt over):

 

Programmet gjør alle sine beregninger, og skriver så det ferdige bildet til internminnet. Deretter venter programmet på vblank, slik at det kan kopiere internminnet over til videominnet.

 

Dersom den første biten her tar lenger tid enn det tar for skjermkortet å vise bildet og trigge vblank, så vil programmet bli stående og vente på _neste_ vblank i stedet. Deretter gjentar det hele seg ved neste bilde igjen, og du vil derfor kun i praksis få lagd - og vist - et nytt bilde etter annenhver vblank. Da ender du opp med å halvere frameraten i de delene av spillet hvor maskina di ikke rekker å produsere et ferdig bilde på en bildesyklus (for 70hz, 1/70-del av et sekund), dersom vsync er på. Dersom du skrur av vsync vil du oppleve at bildene blir byttet ut innimellom, men du vil kunne få en bedre framerate totalt sett. Dette knytter seg igjen inn mot spill der en del beregninger og lignende er avhengige av frameraten som spillet kjører på (Quake 3 er et godt eksempel på dette, der enkelte hopp kun kan gjennomføres med en gitt framerate.

 

MistaPi: om du bommer på 2 vsync etter hverandre blir frameraten 20fps, ettersom kun hver tredje vblank trigger en ny rendring.

 

For LCD får vi forøvrig et nytt problem som ligger i forsinkelsen mellom at bildet blir satt til aktivt på skjermkortet til det vises på skjermen (ms-biten på en LCD-skjerm). Mens en CRT-skjerm er rimelig øyeblikkelig i visningen av bildet, så vil en LCD-skjerm bruke et gitt antall millisekunder ekstra fra at bildet er satt til "aktivt" til det faktisk dukker opp på skjermen. På eldre LCD-skjermer med 16ms og 25ms oppdateringsforsinkelse, så vil man fort oppleve at det blir litt "båtfølelse" over det meste, ettersom du bruker tid på å få respons i forhold til de bevegelsene du gjør overfor spillet, slik at du bruker lenger tid på å korrigere deg selv igjen.

Endret av fiskfisk
Lenke til kommentar
Videoannonse
Annonse

Nå vil det også være sånn at dersom du bommer på to vblank, så vil forskjellen mellom vsync og ikke-vsync være maks 10 fps (ettersom du ikke klarer to vblank, så er du under 30fps, og du vil minst treffe på 20fps). Så forskjellen mellom vsync av og på blir mindre og mindre jo flere vblank du bommer på.

Lenke til kommentar

det stemmer; men du vil også bomme på minst en vblank med vsync av (ellers ville du jo bare endt opp med å rendre bildet på den første vblanken), så frameraten MÅ være mindre enn 50 fps uansett. Dermed vil forskjellen på vsync på og av være maks 17 fps i det tilfellet der (10fps var for 60hz-eksempelet).

 

For å utgreie litt mer:

 

100 Hz gir deg 10 ms til å lage et bilde. Klarer du deg under det, så vil du få 100fps med vsync på.

 

Dersom du bruker 15ms på hvert bilde, så vil du kjøre med 50fps med vsync på (ettersom du bommer på annenhver vblank), og ~66fps med vsync av (ettersom du gir faen i å vente på vblank).

 

Dersom du bruker 18ms, så kjører du fortsatt i 50fps med vsync på, og 55 fps av.

 

Så kommer greia, i det du bruker mer enn 20ms på hvert bilde, så dropper fps-en dersom man venter på vblank til 33fps (ettersom du nå bare treffer hver tredje vblank, men det beste tilfellet du kan komme opp med i fps dersom du skrur av vsync, er under 50fps (hadde du vært over 50 fps, hadde du igjen truffet den forrige vblanken, og du hadde vært på 50fps med vsync på).

 

Igjen; tallene i eksempelet over var relatert til å bomme på to eller tre vblank under 60hz (henholdsvis å treffe 30 vblank i sekundet, eller 20). Håper det oppklarte det.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...