In evidenza per te:

Non cerchi le solite news sulla tecnologia? Allora benvenuto su Forumzone! :ok:

Menu principale

V-Sync

Aperto da dasvidania, 08 Ottobre 2004, 17:32:46

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

dasvidania

Dubbio: il V-Sync abilitato aumenta le prestazioni a discapito della grafica o è viceversa?. Ho letto pareri discordanti e vorrei sapere voi amici del forum che ne pensate. Ciao e grazie per la risposta

re-voodoo

con il v-sync attivo diminuiscono le prestazioni però diciamo che ti fà vedere l'immagine intera senza spezzarla quando hai un picco di fps, chiaramente il picco si intende in negativo.

re-voodoo

re-voodoo

af624726

per quanto ne so io serve quando si hanno framerate elevati che superano la frequenza del monitor, causando così una divisione dell'immagine visto che il monitor nn fa in tempo a rappresentarla...
in sostanza il v-sync serve a sincoronizzare i frame con la frequenza di aggiornamento del monitor :)


The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

Superbox

Il V-sync andrebbe sempre e solo abilitato insieme al triple buffer.
Questa accoppiata non comporta cali prestazionali. A meno che non stiate eseguendo un benchmark.

Tutte le moderne schede video hanno quel che viene normalmente chiamato frame buffer (chiamato "front buffer" nell'immagine qui sotto): un buffer dedicato a contenere il frame che il monitor sta mostrando in quel preciso momento. Un secondo buffer (back buffer) è invece destinato a contenere il frame mentre la scheda video lo sta ancora generando.
Quando la scheda termina l'elaborazione del frame del back buffer, questo viene "spostato" nel frame buffer, di modo che il monitor lo possa visualizzare.


Il problema nasce dal fatto che se il monitor non ha ancora terminato la visualizzazione del frame corrente (ad esempio ne ha mostrati a schermo solo 2/3), e il frame viene sostituito con quello appena elaborato dalla scheda, si ottiene il cosiddetto fenomeno del tearing: la parte superiore dello schermo appartiene a un frame, mentre la seconda appartiene a quello successivo.
In caso di giochi frenetici e caratterizzati da frequenti spostamenti orizzontali dell'angolo di visuale (tipico degli sparatutto in prima persona), il fenomeno può anche rivelarsi molto fastidioso.

Abilitando il v-sync, il tearing cessa di manifestarsi, poichè il frame buffer viene aggiornato con un nuovo frame solo quando le seguenti condizioni sono soddisfatte:
- il monitor ha terminato la visualizzazione del frame corrente
- la scheda ha finito di generare il frame del back buffer

Ciò comporta spesso e volentieri un calo prestazionale, dato che:
- se il monitor ha terminato la visualizzazione del frame corrente, ma la scheda non ha ancora finito di generare il frame del back buffer, il contenuto del frame buffer rimane lo stesso (quindi il monitor visualizzerà ancora lo stesso frame di prima)
- ogni volta che i due frame non vengono terminati nello stesso identico momento, si ha una resa a video (in fps) minore di quella effettivamente prodotta dalla scheda, dato che il monitor continuerà a visualizzare sempre lo stesso frame finchè non si troverà esattamente in sincronia con la scheda video.

Soluzione? Il buffering triplo.
Introducendo un extra buffer oltre ai due tradizionali, tutti questi problemi infatti scompaiono.
Quando la scheda finisce il rendering del frame nel back buffer, ma il monitor non ha ancora finito di mostrare il frame precedente (v-sync abilitato, ovviamente), la scheda passa al rendering del frame successivo nell'extra buffer, lasciando nel back buffer il "piatto pronto" per il monitor, quando questo avrà finito il suo lavoro col frame corrente. Quando anche l'extra buffer è stato completato dalla scheda, questo viene spostato nel back buffer, e così via...
Ciò evita i problemi di perdita di fps connessi all'uso del v-sync ed illustrati precedentemente.
Senza abilitare il vsync, però, il triple buffer diventa inutile e il fenomeno del tearing si ripresenterebbe, dato che la scheda, "fregandosene" della frequenza del monitor, non passa mai all'utilizzo dell'extra buffer, e quindi siamo daccapo.

Messaggio dalla redazione:
Contenuto non disponibile in quanto rimosso da server esterno o server esterno off line


Riassumendo i risultati delle 4 possibili configurazioni:

- NO vsync + NO triple buffer = fenomeno del tearing, ma prestazioni invariate
- SOLO triple buffer = fenomeno del tearing, ma prestazioni invariate
- SOLO vsync = perdita di frame (a volte molto consistente) durante la visualizzazione
- vsync + triple buffer = frame limitati al refresh del monitor, ma senza tearing o perdita di performance (fps)

Precisazione riguardo alla configurazione vsync+triple buffer: se eseguite un benchmark in queste condizioni, state benchando al refresh del monitor (in termini di fps massimi, ovvimente), anzichè secondo le potenzialità della scheda. Questo significa che vi dovete ricordare di disabilitarli SEMPRE, prima di eseguire simili applicazioni.
Nonostante ciò, diffidate da chi vi dice "è meglio disabilitarli sempre anche nei giochi, perchè ciò ti consente di vedere TUTTI i frame". Questo non è assolutamente vero, poichè:

1. A parte il limite dell'occhio umano (che già vi impedirebbe di percepire più di 30 fps), vedere mezzo frame precedente e mezzo frame successivo (o addirittura 3 frame in una stessa videata) non significa infatti vederli TUTTI, ma casomai vedere "di tutto un po'"... e non mi si dica che un fenomeno del genere non è fastidioso (eccezion fatta per gli rpg a schermata fissa, dove anche se vi fosse tearing non ve ne accorgereste comunque). ;)

2. Come affermato anche da un certo Tim Sweeney (Epic Games) nel lontano 2000: "There is no visual benefit to having a game render more frames per second than your monitor is displaying". Senso intrinseco alla frase, per chi non conoscesse l'inglese: la quantità dei frame effettivamente visualizzata non potrà mai essere maggiore della frequenza di refresh del vostro monitor.:sag:



EDIT: aggiunte un paio di immagini esplicative.

Questo messaggio è stato aggiornato da Superbox il 11/10/2004  alle ore  15:41:41
In filosofia, in religione, in etica e in politica, due e due avrebbero potuto fare cinque. Ma fino a che ci si manteneva nell'ambito di disegnare un aeroplano o un fucile, dovevano fare quattro.
- G. Orwell

MarcVTR

...e poichè il triple buffer è quasi sempre attivati di default vi basterà abilitare il v-sync,
ed è consigliabile, per i possessori di schermi LCD, impostare la frequenza dello schermo a 60Hz in modo da ottenere immaggini e caratteri più nitidi ma mantenendo, con vertical-sync attivo, un framerate di 60fps.
Inoltre  Superbox dice che l'occhio umano non percepisce differenze di fluidità oltre i 30fps.
Beh in realtà non è proprio così.

A 28/30fps un gioco,o una scena 3d cinematica vanno fluidamente, e sotto i 28fps li vedrete un po' "scattare"

Però pur avendo una certa fluidità a 30fps, in un gioco sopratutto, incrementando a 50/60fps vi accorgerete subito di una maggiore velocità di rendering.
Questo lo potete notare sopratutto negli sparatutto in soggettiva frenetici, come Painkiller, e nei giochi di corse dove il senso di velocità è fondamentale.

Un esempio sono Project Gotham 1 e 2 per Xbox.
Il primo gira a 60fps e il senso di velocità è eccezionale, il secondo è più complesso graficamente ma limitato a 30fps, e i 30fps di differenza si sentono, sopratutto quando con la vettura raggiungete alte velocità
Oltre i 60fps invece non cambia proprio nulla ;)



Questo messaggio è stato aggiornato da MarcVTR il 11/10/2004  alle ore  19:39:49
Pentium4 3,20Ghz;  Radeon 9800 Pro+Vga Silencer; Sound Blaster Audigy 2; 160GB
Maxtor S-ATA 8mb cache; 1024mb RAM;Asus P4P800Deluxe; Crative Inspire 5.1; Alim. QTEC GOLD 550W

dasvidania

Siete stati molto esaurienti. Vi ringrazio. Alla prossima

peppos83

Sarà... ma lo sapete quantè la frequenza del nostro televisore? 25!!! Però non va a schatti :D certo nelle schede video magari il discorso è diverso, ma i fotogrammi sono quelli...

HD3850 - V5 5500pci (Tnx Amigamerlin) - SIS Mirage Graphics Sfidatemi :kazim:

MarcVTR

Ciao fessacchiotto (ragazzi con lui posso permettermelo, non è offensivo ed è un mio amico),
I televisori PAL vanno esattamente a 50 frame e 50/60hz, la maggior parte di quelli nuovi invece, come il mio Sony Wega vanno addirittura a 100Hz, per garantire un immaggine riposante per l'occhio, in quanto viene ridotto lo sfarfallio dell'immaggine(che tutti voi potete ben notare quando al telegiornale riprendono altri televisori e monitor con l'immaggine che salta) ! E

Tu allora dirai, perchè se la TV va a 60hz non è riposante come il monitor per pc che va a 60 e oltre Hz?
Perchè la TV è un sistema video interlacciato, che disegna prima le linee orizzontali e poi quelle verticali, mentre i nostri monitor da PC godono del sistema Progressive Scan che disegna l'asse x e l'asse y in contemporanea.
Non a caso in America, e presto anche in Italia, si stanno diffondendo i televisori HDTV (High Definition Television) che molleranno il sistema interlacciato per dare il via all'alta risoluzione



Ed inoltre 25hz che significano 25frame(perchè la tv non soffre di effetto tearing), non ti permetterebbero di giocare alla PS2 o Xbox fluidamente! Project Gotham andrebbe sempre a 25frame??? ma non farmi ridere


Bisogna dire però che quasi tutte le Tv nuove supportano il PAL60, e cioè sistema PAL con frequenza a 60Hz (tipica del NTSC giapponese e americano) ed è grazie a questo che chi ha una bella PS2 PAL modificata riesce a visualizzare  bene sul TV un gioco NTSC.;)

Poi se tu hai il televisore del dopoguerra non lo so!





Questo messaggio è stato aggiornato da MarcVTR il 12/10/2004  alle ore  13:54:11

Questo messaggio è stato aggiornato da MarcVTR il 12/10/2004  alle ore  13:58:49

Questo messaggio è stato aggiornato da MarcVTR il 12/10/2004  alle ore  13:59:52

Questo messaggio è stato aggiornato da MarcVTR il 12/10/2004  alle ore  14:01:59
Pentium4 3,20Ghz;  Radeon 9800 Pro+Vga Silencer; Sound Blaster Audigy 2; 160GB
Maxtor S-ATA 8mb cache; 1024mb RAM;Asus P4P800Deluxe; Crative Inspire 5.1; Alim. QTEC GOLD 550W

af624726

CitazioneTu allora dirai, perchè se la TV va a 60hz non è riposante come il monitor per pc che va a 60 e oltre Hz?
Perchè la TV è un sistema video interlacciato, che disegna prima le linee orizzontali e poi quelle verticali, mentre i nostri monitor da PC godono del sistema Progressive Scan che disegna l'asse x e l'asse y in contemporanea.
Non a caso in America, e presto anche in Italia, si stanno diffondendo i televisori HDTV (High Definition Television) che molleranno il sistema interlacciato per dare il via all'alta risoluzione


alora, l'interlacciato nn disegna prima le linee orizzontali e poi quelle verticali... (nn ha molto senso:))... prima le righe pari e poi quelle dispari!! (ora in realtà nn ricordo precisamente se parta dalle linee pari...)
è per quello che raddoppia la frequenza di aggiornamento, dato che l'occhio umano nn si accorge del fatto di vedere solo la metà delle righe per frame (ossia vede un field) in modo tale da risparmiare la metà della banda disponibile in trasmissione (è per quello che è stato inventato)
:D
HDTV nn abbandonerà l'interlacciato (anche perchè ha i suoi buoni vantaggi... anche in codifica video...) aumenterà la risoluzione della TV... mossa che nn so quanto porterà a buoni frutti... cmq nn è l'interlacciato che blinda la risoluzione ;)


The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

Superbox

CitazioneTu allora dirai, perchè se la TV va a 60hz non è riposante come il monitor per pc che va a 60 e oltre Hz?

Perchè? Un monitor CRT che va a 60Hz è riposante? :D


CitazionePerchè la TV è un sistema video interlacciato, che disegna prima le linee orizzontali e poi quelle verticali, mentre i nostri monitor da PC godono del sistema Progressive Scan che disegna l'asse x e l'asse y in contemporanea.

Questa delle linee verticali mi è nuova. Potresti essere più preciso in merito, che non l'ho capita?:sag:
I monitor per PC, che io sappia disegnano orizzontalmente una riga alla volta. La tv è interlacciata, ma il principio alla base è lo stesso.
Un impulso viene mandato alla fine di ogni linea, in modo che il fascio di elettroni venga spostato "a capo" della linea successiva, procedendo dall'alto verso il basso.
Alla fine delle 768 linee (o quel che è, secondo la risoluzione impostata) un impulso diverso segnala che "il lavoro è finito", e quindi il monitor riprende a tracciare la prima riga, dal primo pixel in altro a sx.
Il refresh (in Hz) è il numero delle volte in cui questa operazione viene ripetuta nell'unità di tempo.

Meno hz ti uccidono gli occhi. Ma quello che fa "scattare" le immagini sono i pochi fotogrammi al secondo.
Le due cose sono ben distinte l'una con l'altra (vedi qui di seguito).

CitazioneEd inoltre 25hz che significano 25frame(perchè la tv non soffre di effetto tearing), non ti permetterebbero di giocare alla PS2 o Xbox fluidamente! Project Gotham andrebbe sempre a 25frame??? ma non farmi ridere

In tutto il tuo post si scambiano gli hz e i frame come se fossero noccioline dello stesso peso e misura.
In realtà se un monitor o la tv andassero a 25/30 hz, non riusciresti a fissarli dal tanto fastidio (sfarfallìo) che i tuoi occhi dovrebbero sopportare. E anche 60hz non sono esattamente un regalo per gli occhi, se sul monitor ci devi intensamente lavorare tutti i giorni (a meno che non si tratti di un LCD, il cui refresh funziona in modo completamente diverso).

Però il cinema viaggia da sempre a 30 frame, e non "scatta". Come la mettiamo?
La mettiamo che:

- il cinema utilizza da epoca immemorabile il blur (ribattezzato poi con l'aggiunta di "motion" ;) per "legare meglio" un fotogramma all'altro, perdendo qualcosina in definizione a vantaggio di sequenze più "morbide" (mai fatto un fermo immagine con una vhs anni 80? Ti sembra che l'immagine fosse ben definita nelle figure e nei contorni? eppure in movimento sembrava proprio di si...);

- ciò è cambiato radicalmente da quando si è passati alla presa diretta in digitale, cestinando definitivamente gli 8mm; prendendo 60 o 100 frame al secondo, anzichè 30, si può evitare di ricorrere infatti al blur per ammorbidire i contorni;

- comunque sia, per l'occhio umano una scena del cinema anni 80 (o precedente, fino agli anni 20) non "scatta" lo stesso, benchè i frame siano 30; l'effetto riempitivo del blur lo rende più "morbido" (come avrebbe potuto fare il T-buffer di 3dfx, rendendo più piacevoli le immagini anche a bassi framerate, ed aumentando un pochino - forse - la longevità delle schede), ma le differenze da un frame all'altro nei contorni delle figure e nella dinamica dei loro movimenti non sono comunque generalmente rilevabili "a occhio nudo"; lo diventano in caso di contrasti molto forti (tipici degli esperimenti sui messaggi subliminali), e se effettuati ripetutamente (surprise!) su più frames consecutivi (1 solo frame leggermente diverso dal precedente e dal successivo non sarà MAI rilevato dall'occhio umano). Morale: a 30 fps l'occhio umano non è più in grado di cogliere differenze significative, salvo che non ci si impegni fortemente in questo senso (ad esempio ribaltando i colori tra figura e sfondo, o utilizzandone gli esatti opposti);

- non vedo perchè la stessa cosa non debba valere per i videogames; certo, i movimenti in un first person shooter sono molto rapidi e bruschi, ma una volta attivato l'antialiasing, che toglie le scalettature ed altri piccoli difettucci tipici del rendering computerizzato, sfido a distinguere i 30 fps (STABILI!) dai 50 o 60; è più autosuggestione che altro... ma se mi vuoi dire che "tieni occhio bionico"... vabbè, ci credo e chiudiamola qui... :cool:

In filosofia, in religione, in etica e in politica, due e due avrebbero potuto fare cinque. Ma fino a che ci si manteneva nell'ambito di disegnare un aeroplano o un fucile, dovevano fare quattro.
- G. Orwell