Gå til innhold

Foto

Hva er v-sync?


24 svar i denne tråden

#1 Enceladus

Enceladus

    Bruker

  • Medlemmer
  • 3 304 innlegg
  •   3. september 2004

Skrevet 15. juni 2007 - 18:16

Hva er v-sync? Og bør jeg ha den av eller på?

Dette innlegget har blitt redigert av Mr. Gnom: 15. juni 2007 - 18:16

  • 0

#2 Fritz0r

Fritz0r

    Bruker

  • Medlemmer
  • 4 224 innlegg
  •   26. juli 2002

Skrevet 15. juni 2007 - 18:20

skjermkortet vil rendre bildet først horisontalt, så vertikalt når horisontalt rendring er ferdig, og for og sikkre stabile framrates, så låses frames til enten 60 eller 70 FPS.

http://en.wikipedia.org/wiki/V_sync

Dette innlegget har blitt redigert av Fritz0r: 15. juni 2007 - 18:21

  • 0
AMD 1095BE (Dragon), 8GB Corsair Dominator minne, Asus Crosshair 4 Formula, nVidia GTX480, noen harddisker...
Spillende admin www.hellfragger.no / www.battlefield.no
Favorite saying: When u get to HELL....Tell'em that I'we sent u.....U'll get a group discount

#3 Dipso

Dipso

    Bruker

  • Medlemmer
  • 1 359 innlegg
  •   20. september 2001

Skrevet 15. juni 2007 - 21:10

Dette er mest aktuelt på CRT skjermer for å unngå "tearing" dvs at skjermbildet brytes horisontalt,(en frame utgjør halve bildet, den neste framen resten....) spesielt synlig ved horisontale bevegelser i skjermbildet.
  • 0

#4 Zappy

Zappy

    Bruker

  • Medlemmer
  • 2 889 innlegg
  •   3. juni 2002

Skrevet 15. juni 2007 - 21:12

Som regel noe du bør styre unna MAO.
  • 0

#5 LandePlage

LandePlage

    Bruker

  • Medlemmer
  • 6 437 innlegg
  •   18. august 2005

Skrevet 15. juni 2007 - 21:14

Som regel noe du bør styre unna MAO.

Vis innlegg

Noe du bør ha på, mener du vel? :hmm: "V-sync" on.
  • 0

#6 Nerf

Nerf

    Bruker

  • Medlemmer
  • 1 530 innlegg
  •   14. september 2006

Skrevet 15. juni 2007 - 21:23

Som regel noe du bør styre unna MAO.

Vis innlegg

Noe du bør ha på, mener du vel? :hmm: "V-sync" on.

Vis innlegg


Enig med Martin her. V-sync er vel noe de fleste fps-spillere styrer unna, for å oppnå høyest mulig framerate. Den er vel på som default i de fleste spill.
  • 0
wat

#7 Enceladus

Enceladus

    Bruker

  • Medlemmer
  • 3 304 innlegg
  •   3. september 2004

Skrevet 15. juni 2007 - 22:06

Min Maskin:
8800GTS 640MB
Intel Core 2 Duo E6600
GeIL DDR2 PC6400 Ultra 2 GB
EVGA nForce 680i SLI
LaCie Photon Vision II 20" LCD skjerm

Så om jeg har den av vil jeg oppnå en høyere framerate i spill?

Hva med stalker? Av eller på? Hva tjener jeg på?
  • 0

#8 Nerf

Nerf

    Bruker

  • Medlemmer
  • 1 530 innlegg
  •   14. september 2006

Skrevet 15. juni 2007 - 22:08

Min Maskin:
8800GTS 640MB
Intel Core 2 Duo E6600
GeIL DDR2 PC6400 Ultra 2 GB
EVGA nForce 680i SLI
LaCie Photon Vision II 20" LCD skjerm

Så om jeg har den av vil jeg oppnå en høyere framerate i spill?

Hva med stalker? Av eller på? Hva tjener jeg på?

Vis innlegg


Man kan si det såpass enkelt: Opplever du noen gang at bildet "kuttes" noen ganger, lar du det være på. HVis ikke, og hvis du på død og liv må ha maks fps, slå den av. Men det er kanskje best å se selv.
  • 0
wat

#9 Zappy

Zappy

    Bruker

  • Medlemmer
  • 2 889 innlegg
  •   3. juni 2002

Skrevet 15. juni 2007 - 22:10

hvis du på død og liv må ha maks fps, slå den av.

Vis innlegg

Jepp, der har du logikken min.
  • 0

#10 Enceladus

Enceladus

    Bruker

  • Medlemmer
  • 3 304 innlegg
  •   3. september 2004

Skrevet 15. juni 2007 - 22:11

Man kan si det såpass enkelt: Opplever du noen gang at bildet "kuttes" noen ganger, lar du det være på. HVis ikke, og hvis du på død og liv må ha maks fps, slå den av. Men det er kanskje best å se selv.


Da blir det av antar jeg. :)
  • 0

#11 fiskfisk

fiskfisk

    Bruker

  • EKSTRA
  • Medlemmer
  • 1 255 innlegg
  •   3. oktober 2003

Skrevet 15. juni 2007 - 23:26

Den tekniske forklaringen er ganske grei, men vi går litt tilbake i tid for å forklare hvor det hele kommer fra.

I en maskin har man typisk noe som heter et videominne. I dette minnet ligger alle pikslene (punktene) som vises på skjermen lagret, deriblant hvilken farge de har og så videre. Dersom et program ønsker å vise noe på skjermen, endrer det en av pikslene i dette minnet, og vips, så er endringen representert på skjermen.

Det andre elementet er måten en CRT-skjerm (en vanlig bilderørskjerm) fungerer på. Bak i skjermen er det en elektronkanon som skyter elektroner på en fosforiserende flate. I det disse elektronene treffer denne flaten, lyser små punkter opp, og vi får vist et bilde på skjermen. Dette gjøres ved at elektronkanonen starter oppe i det venstre hjørnet og så beveger seg mot høyre. Underveis tilpasser den elektronstrålen i forhold til bildet som skal vises akkurat der. Etter at den kommer til høyre side av bildet (etter så mange piksler som man viser i bredden), så går den ned til linjen under, og så gjør den det samme der. Dette gjøres x antall ganger i sekundet, der x er det som menes med Hz til skjermen. Dersom en skjerm er 70hz, så går skjermen gjennom hele denne sekvensen 70 ganger i sekundet.

En skjerm med 640x480 oppløsning vil tegne 640 punkter i bredden, gå ned til neste linje, tegne 640 punkter til, og så vi dere, til alle de 480 linjene er vist. Hva den tegner, leser den fra videominnet som nevnt over.

Det er her problemene dukker opp:

Hva skjer om vi endrer videominnet mitt i bildet? Dette er et triks man kan bruke på en del plattformer (Amiga, f.eks.). Hvis vi skriver til videominnet veldig ofte under visningen, vil vi oppleve hakking, flimring og andre ulumskheter.

Dette fører oss til en av de første teknikkene som ble utviklet for å ha mer kontroll over visningen: Double Buffering. I stedet for at man skriver rett til videominnet, skriver man til et sted i det vanlige minnet med samme størrelse som videominnet. Etter at man har skrevet alt man skal, kopierer man hele bolken over det eksisterende videominnet, og på den måten får man byttet "hele bildet" på en gang. Vi vil imidlertid fortsatt kunne oppleve flimring, dersom dette skjer oftere enn så mange bilder som skjermen klarer å vise i sekundet.

Og nå nærmer vi oss vsync-biten.. Som sagt, så er det en elektronkanon som durer og går bak i CRT-skjermen, og som beveger seg fra toppen av skjermen og nedover. I det elektronstrålen har kommet hele veien ned, dukker det opp et problem. Det eneste stedet den skal tegne, er på toppen av skjermen igjen, og er fysisk langt fra den posisjonen som kanonen peker mot nå. Det tar derfor nå en viss tid for kanonen å fysisk bevege seg opp til den andre kanten, og vi får en såkalt vertical blank (vblank). Dette tar et visst antall millisekunder, alt etter hz og skjermkort. På tiden tiden som kanonen beveger seg opp til toppen igjen blir ikke bildet som er på skjermen fysisk oppdatert, og det fører oss til ninjatrikset.

Et program kan imidlertid oppdage når vblank inntreffer, og man har derfor "wait for vblank", eller som det nå kalles, vertical sync. I det vblank blir trigget, kopierer man kopien man har av videominnet fra det vanlige minnet og over til skjermkortet. Når elektronkanonen så endelig er tilbake på toppen og fortsetter med sin noe kjedelige tegneoppgave, er det et nytt bilde som ligger og venter. Videominnet blir med andre ord kun oppdatert når det ikke blir tegnet noe fysisk på skjermen. Dermed unngår man såkalt tearing og flimring, ettersom minnet bare røres når det ikke blir brukt til å vise noe på skjermen.

GPU-er og dedikerte 3D-kort har forandret mye av dette her, slik at man ikke lenger prater direkte med et skjermminne, men med et eget grensesnitt mot skjermkortet (OpenGL eller Direct3D, f.eks), men konseptet er fortsatt det samme. Du vil fint finne "double buffering" og "triple buffering" (som er en videreutvikling av konseptet igjen) i en del oppsettsmenyer for spill den dag i dag, og dette er en del av bakgrunnen for det.
  • 0
Mats Lindh, Utvikling og annet av spesiell interesse hos Gamer.no
Twitter: matslindh - Blogg: e-mats.org

#12 Hawko

Hawko

    Bruker

  • Medlemmer
  • 582 innlegg
  •   11. januar 2005

Skrevet 16. juni 2007 - 00:05

fiskfisk er min nye helt. Utrolig bra forklaring!

Men et spørsmål, siden dette gjelder CRT, vil så VSync være ubrukelig på LCD-skjermer?

Dette innlegget har blitt redigert av Hawko: 16. juni 2007 - 00:05

  • 0

#13 MistaPi

MistaPi

    Bruker

  • Medlemmer
  • 6 786 innlegg
  •   27. desember 2001

Skrevet 16. juni 2007 - 10:49

E LCD må også oppdatere bildet og hvis det skjer i en framebuffer bytte kan det oppstå tearing. Tearing er gjerne mer tydlig på LCD.

Som nevnt kan vsync gå hardt utover frameraten. La oss si at du kjører 60hz på skjermen og skjermkortet bommer på en skjerm refresh må den vente til neste vsync for framebuffer bytte og frameraten vil falle til 30FPS (med det ene bufferet som vises og det andre som fullt har ikke kortet et ledig buffer å skrive til og må stå uvirksom). Hvis den bommer på 2 vsync er du nede i 15FPS.
Tripple buffering (som kan gis som en opsjon i grafikk instillingene til spillet eller tvinges i OpenGL via driverene) løser dette problemet med å gi et ekstra buffer å skrive til, men dette innfører en forskinkelse.

Dette er også mye en individuell preferanse der noen ikke er så bryd med tearing og går heller for raskere oppdatering, mens andre finner tearing veldig irriterende og tar heller en kompromiss med framerate og/eller grafikk detaljer/oppløsning. For MP spill som Battlefield bør dog vsync være av for å gi deg en bedre "fighing chance".
  • 0

#14 dabooo

dabooo

    Bruker

  • Medlemmer
  • 125 innlegg
  •   2. september 2006

Skrevet 16. juni 2007 - 10:56

med den pc'n han sa han hadde over, er det liten forskjell om du har det på eller av :p
så lenge du kjører max hz på skjermen merker du svært liten forskjell.
  • 0

#15 MistaPi

MistaPi

    Bruker

  • Medlemmer
  • 6 786 innlegg
  •   27. desember 2001

Skrevet 16. juni 2007 - 11:17

Jeg har et lignende oppsett, men med 8800GTX og tearing er veldig merkant for meg i en del spill uten vsync. Tearing kan som nevnt oppstå med et framebuffer bytte under et skjerm oppdatering. Altså om frameraten er raskere eller tregere enn skjerm oppdateringen.
  • 0

#16 Fritz0r

Fritz0r

    Bruker

  • Medlemmer
  • 4 224 innlegg
  •   26. juli 2002

Skrevet 16. juni 2007 - 11:19

MistaPi: har du sjekket at ikke du har satt på trippel frame buffer? vet tearing kan oppstå da.

Dette innlegget har blitt redigert av Fritz0r: 16. juni 2007 - 11:19

  • 0
AMD 1095BE (Dragon), 8GB Corsair Dominator minne, Asus Crosshair 4 Formula, nVidia GTX480, noen harddisker...
Spillende admin www.hellfragger.no / www.battlefield.no
Favorite saying: When u get to HELL....Tell'em that I'we sent u.....U'll get a group discount

#17 aspic

aspic

    Bruker

  • Medlemmer
  • 6 643 innlegg
  •   29. mai 2006

Skrevet 16. juni 2007 - 11:27

Men om eg forstår riktig; Til høgare Hz på skjermen dess mindre treng ein V-sync? =o
  • 0
An infinite number of mathematicians walk into a bar. The first one orders a beer. The second orders half a beer. The third, a quarter of a beer. The bartender says “You’re all idiots”, and pours two beers.

#18 MistaPi

MistaPi

    Bruker

  • Medlemmer
  • 6 786 innlegg
  •   27. desember 2001

Skrevet 16. juni 2007 - 11:34

MistaPi: har du sjekket at ikke du har satt på trippel frame buffer? vet tearing kan oppstå da.

Vis innlegg

Jeg bruker ikke tripple buffering (der mulig) såvidt jeg ikke bruker vsync
  • 0

#19 MistaPi

MistaPi

    Bruker

  • Medlemmer
  • 6 786 innlegg
  •   27. desember 2001

Skrevet 16. juni 2007 - 11:38

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

Vis innlegg

Jeg vil nå tro en raskere skjermoppdatering gjør tearing mindre tydlig, men som sagt kan det oppstå tearing også når frameraten er under refresh raten.
  • 0

#20 Runarbs

Runarbs

    Bruker

  • Medlemmer
  • 6 037 innlegg
  •   27. februar 2007

Skrevet 16. juni 2007 - 11:51

god forklaring på hva v-sync var, takk.
  • 0

Mvh Runar.
last.fm



0 bruker(e) leser denne tråden

0 medlemmer, 0 gjester, 0 skjulte brukere