PDA

View Full Version : TEORIA FINALE SUL REFRESH (SECONDA PARTE)


PSYCOMANTIS
29-12-2002, 13:25
Premessa:
Tutti noi sappiamo che quello che vediamo sul monitor quando giochiamo ad un videogame e' la combinazione di due processi separati e ben distinti dati rispettivamente dalla scheda video e dallo stesso monitor.
La scheda video in base alla propria potenza di calcolo, invia al monitor una serie variabili di fotogrammi (frames) ogni secondo. Il monitor dal canto suo visualizza questi frames in base
al valore di refresh impostato. Il refresh non e' altro che il tempo necessario al monitor per completare un frame . Se quest'ultimo completa l'immagine in 1/85 di secondo il valore di refresh sara' di 85hz e i frame visualizzati su schermo in un secondo saranno 85 (sempre considerato che la scheda video riesca a fornirglieli).Naturalmente per avere una immagine stabile occorre che i frames inviati dalla scheda video e il refresh vengano sincronizzati, ovvero la scheda video deve attendere che il monitor abbia finito di aggiornare ogni singolo frames(v-sync attivato). Se invece il v-sync viene disattivato, la scheda non attendera' piu' che il monitor finisca di aggiornare i frames, ma sara' per cosi' dire libera di mandare a video tutti i frames che e' capace di generare. Il risultato di solito e' che il valore del frame rate finisce per superare quello del refresh dando vita ad un effetto sgradevole (effetto tearing). Dal canto suo si hanno problemi anche attivando il v-sync e impostando il refresh ad un valore irragiungibile dal frame rate, in questo caso l'immagine scatta.
Prendiamo ad esempio un valore impostato di refresh di 60hz (quindi il tempo necessario al monitor per aggiornare un frames sara' di 1/60 di secondo) e mandiamo a video una sequenza di 40 frames per secondo (quindi un frame ogni quarantesimo di secondo) . Abbiamo sessanta posti (dati dal refresh) ma solamente 40 potranno essere occupati (dai frames). I restanti 20 posti saranno semplicemente lasciati vuoti (e non ignorati come molti credono) il risultato sara' un bello scatto a video.Quello che e' importante sapere e' che il refresh non e' variabile e che comunque una volta impostato un valore quel valore verra' mantenuto per tutta la durata del ciclo (1 secondo) che ci siano frames da mostrare o meno. Nel caso in cui la scheda riesca a fornire i 60 frames necessari per occupare i 60 aggiornamenti (resi disponibili dall'impostazione a 60 hz) il risultato sara' una immagine dalla fluidita' perfetta. Certo che, aumentando il valore del refresh ( sempre ammesso pero' che il valore del frame rate sia sempre uguale a quello dell'aggiornamento) le cose possono solamente migliorare, ma da 70-75 frames in poi sara' comunque difficile distinguere la differenza.(almeno stando agli studi della Lucas film).
TEORIA:
Dunque in base a quello analizzato fino ad ora si deduce che:
Per avere una fluidita' ottimale il refresh deve essere impostato ad un valore sotto il quale il frame rate non scende mai. Naturalmente partendo da un valore minimo di 60.(il v-sync deve essere attivato) Facendo questo il valore dei frames e quello del refresh sara' sempre lo stesso (il v-sync attivato limitera' gli eccessi) e la fluidita' sara' perfetta.
esempio 1:
Allora, io ho un gioco ( nolf2) che nella peggiore delle ipotesi mi viaggia a 86 frames. Applico la regola suddetta , individuo il frame rates minimo(86) e imposto il refresh ad un valore sotto il quale il frame rate non scendera' mai, cioe' 85hz.(il v-sync deve essere attivato) poiche' il gioco non scende mai sotto gli 85 frames il refresh non rimarra' mai con aggiornamenti vuoti (85 aggiornamenti riempiti da 85 frames) il risultato sara' l'immagine piu' fluida ottenibile dal mio computer. Se io infatti avessi impostato un valore di refresh di 100hz quei 14 aggiornamenti mi sarebbero rimasti vuoti con conseguente scatto dell'immagine. Proprio sul presunto scatto che l'immagine compie quando il frame rate ha un valore inferiore a quello del refresh ho avuto molte contestazioni da vari utenti, quindi ho deciso di passare all'atto pratico.
PRATICA:
Prendete la demo di quake 3 e scaricatevi fraps (un conta-frames) a questo indirizzo http://www.fraps.com/download.htm ora andate su proprieta'-impostazioni-avanzate-openGl e impostate la voce "attendi sync verticale" su "sempre attivato" lanciate fraps e poi lanciate la demo di quake3 impostando una risoluzione bassa e il refresh del monitor a 60hz. Lanciate multiplayer-create-q3tourney2-next-fight (in questo modo sarete soli nell'arena selezionata) ora lasciate stare il mouse e giratevi attorno con il tastierino, dovreste avere un frame rate inchiodato a 60 (in caso contrario spostatevi in un punto dove rimane costantemente a 60) Quella che avrete davanti e' la fluidita' perfetta, non si vede uno scatto e tutto fila liscio come l'olio.
60 aggiornamenti coperti da 60 frames.Bene, adesso uscite dal gioco e andate sul pannello di controllo openGl della scheda video, attivate lo smoothvision a 6x e il filtraggio anisotropo a 16x spostate anche i livelli di dettaglio su massima qualita'. Adesso lanciate quake 3 a 1600x1200 impostando tutti i dettagli al massimo e tornatevene nella mappa di prima,cercate un punto dove girandovi intorno con il tastierino il frame rate non sia fisso a 60 ma che comunque mantenga tale valore per buona parte del "giro su voi stessi" (davanti alla colonna "cibernetica" di q3tourney2 per esempio) ecco che nel momento esatto in cui il frame rate scende sotto i 60 frames vedrete uno schifosissimo scatto (o piu' di uno).La prova la potete fare anche a 85hz basta che manteniate i parametri suddetti inalterati (cioe' che nel primo caso il frame rate girandovi con il tastierino numerico mantenga gli 85 fissi e nel secondo solamente per il 90% della durata del "giro")

La mia vuol essere solamente una puntualizzazione, perche' capisco benissimo che in certi casi servano refresh piu' alti e v-sync desincronizzati per avere velocita' piu' alte a scapito della qualita' di immagine.

AMDman
29-12-2002, 14:22
Io uso sempre il vsync attivato perchè la mia scheda e il mio processore riescono ad elaborare un quantita di frames che ricoprono quelli che il monitor ne "osopita" (85hz a 1024x768 anche attivando i 100Hz mi sembra che non ci sia differenza).. ma stiamo parlando di valori alti quindi è impercettibile la differenza, io sto impostato 85hz proprio per quello che hai detto ;)

cmq vorrei introdurre il discorso verso le console che si avvalgono dell'intelacciamento TV e per questo sembrano che non scattano.. cavolo ma ci pensate che l'Xbox su un comune televisore deve fare solo 25FPS.. chi poi ha la tv 100Hz nota miglioramenti e vede la potenza di calcolo dell'xbox.. ma non dimenticate anche che i 100hz della tv non sono i 100hz di un monitor perchè ripeto li c'è l'interlacciamento..

CIAO ;)

ChriD
29-12-2002, 14:28
Originally posted by "PSYCOMANTIS"

Premessa:
Tutti noi sappiamo che quello che vediamo sul monitor quando giochiamo ad un videogame e' la combinazione di due processi separati e ben distinti dati rispettivamente dalla scheda video e dallo stesso monitor.
La scheda video in base alla propria potenza di calcolo, invia al monitor una serie variabili di fotogrammi (frames) ogni secondo. Il monitor dal canto suo visualizza questi frames in base
al valore di refresh impostato. Il refresh non e' altro che il tempo necessario al monitor per completare un frame . Se quest'ultimo completa l'immagine in 1/85 di secondo il valore di refresh sara' di 85hz e i frame visualizzati su schermo in un secondo saranno 85 (sempre considerato che la scheda video riesca a fornirglieli).Naturalmente per avere una immagine stabile occorre che i frames inviati dalla scheda video e il refresh vengano sincronizzati, ovvero la scheda video deve attendere che il monitor abbia finito di aggiornare ogni singolo frames(v-sync attivato). Se invece il v-sync viene disattivato, la scheda non attendera' piu' che il monitor finisca di aggiornare i frames, ma sara' per cosi' dire libera di mandare a video tutti i frames che e' capace di generare. Il risultato di solito e' che il valore del frame rate finisce per superare quello del refresh dando vita ad un effetto sgradevole (effetto tearing). Dal canto suo si hanno problemi anche attivando il v-sync e impostando il refresh ad un valore irragiungibile dal frame rate, in questo caso l'immagine scatta.
Prendiamo ad esempio un valore impostato di refresh di 60hz (quindi il tempo necessario al monitor per aggiornare un frames sara' di 1/60 di secondo) e mandiamo a video una sequenza di 40 frames per secondo (quindi un frame ogni quarantesimo di secondo) . Abbiamo sessanta posti (dati dal refresh) ma solamente 40 potranno essere occupati (dai frames). I restanti 20 posti saranno semplicemente lasciati vuoti (e non ignorati come molti credono) il risultato sara' un bello scatto a video.Quello che e' importante sapere e' che il refresh non e' variabile e che comunque una volta impostato un valore quel valore verra' mantenuto per tutta la durata del ciclo (1 secondo) che ci siano frames da mostrare o meno. Nel caso in cui la scheda riesca a fornire i 60 frames necessari per occupare i 60 aggiornamenti (resi disponibili dall'impostazione a 60 hz) il risultato sara' una immagine dalla fluidita' perfetta. Certo che, aumentando il valore del refresh ( sempre ammesso pero' che il valore del frame rate sia sempre uguale a quello dell'aggiornamento) le cose possono solamente migliorare, ma da 70-75 frames in poi sara' comunque difficile distinguere la differenza.(almeno stando agli studi della Lucas film).
TEORIA:
Dunque in base a quello analizzato fino ad ora si deduce che:
Per avere una fluidita' ottimale il refresh deve essere impostato ad un valore sotto il quale il frame rate non scende mai. Naturalmente partendo da un valore minimo di 60.(il v-sync deve essere attivato) Facendo questo il valore dei frames e quello del refresh sara' sempre lo stesso (il v-sync attivato limitera' gli eccessi) e la fluidita' sara' perfetta.
esempio 1:
Allora, io ho un gioco ( nolf2) che nella peggiore delle ipotesi mi viaggia a 86 frames. Applico la regola suddetta , individuo il frame rates minimo(86) e imposto il refresh ad un valore sotto il quale il frame rate non scendera' mai, cioe' 85hz.(il v-sync deve essere attivato) poiche' il gioco non scende mai sotto gli 85 frames il refresh non rimarra' mai con aggiornamenti vuoti (85 aggiornamenti riempiti da 85 frames) il risultato sara' l'immagine piu' fluida ottenibile dal mio computer. Se io infatti avessi impostato un valore di refresh di 100hz quei 14 aggiornamenti mi sarebbero rimasti vuoti con conseguente scatto dell'immagine. Proprio sul presunto scatto che l'immagine compie quando il frame rate ha un valore inferiore a quello del refresh ho avuto molte contestazioni da vari utenti, quindi ho deciso di passare all'atto pratico.
PRATICA:
Prendete la demo di quake 3 e scaricatevi fraps (un conta-frames) a questo indirizzo <http://mohitalia.gamesnet.it/files_db/pafiledb.php?action=file&id=66&PHPSESSID=e732e414b38f37d79a51e4cb7831ecd4> ora andate su proprieta'-impostazioni-avanzate-openGl e impostate la voce "attendi sync verticale" su "sempre attivato" lanciate fraps e poi lanciate la demo di quake3 impostando una risoluzione bassa e il refresh del monitor a 60hz. Lanciate multiplayer-create-q3tourney2-next-fight (in questo modo sarete soli nell'arena selezionata) ora lasciate stare il mouse e giratevi attorno con il tastierino, dovreste avere un frame rate inchiodato a 60 (in caso contrario spostatevi in un punto dove rimane costantemente a 60) Quella che avrete davanti e' la fluidita' perfetta, non si vede uno scatto e tutto fila liscio come l'olio.
60 aggiornamenti coperti da 60 frames.Bene, adesso uscite dal gioco e andate sul pannello di controllo openGl della scheda video, attivate lo smoothvision a 6x e il filtraggio anisotropo a 16x spostate anche i livelli di dettaglio su massima qualita'. Adesso lanciate quake 3 a 1600x1200 impostando tutti i dettagli al massimo e tornatevene nella mappa di prima,cercate un punto dove girandovi intorno con il tastierino il frame rate non sia fisso a 60 ma che comunque mantenga tale valore per buona parte del "giro su voi stessi" (davanti alla colonna "cibernetica" di q3tourney2 per esempio) ecco che nel momento esatto in cui il frame rate scende sotto i 60 frames vedrete uno schifosissimo scatto (o piu' di uno).La prova la potete fare anche a 85hz basta che manteniate i parametri suddetti inalterati (cioe' che nel primo caso il frame rate girandovi con il tastierino numerico mantenga gli 85 fissi e nel secondo solamente per il 90% della durata del "giro")

La mia vuol essere solamente una puntualizzazione, perche' capisco benissimo che in certi casi servano refresh piu' alti e v-sync desincronizzati per avere velocita' piu' alte a scapito della qualita' di immagine.

Quindi come dici tu, il v-sync, in parole povere è come un limitatore, che mantiene costante un numero di frames a seconda degli hz e quindi rende l'immagine fluida.
Quello che dici tu è vero solo se però si ha una scheda video molto potente che mantenga costante in qualsiasi momento e scenario, frames molto alti. Metti ad esempio la demo "illegale" di doom III, io non l'ho provata, ma da quello che hanno scritto alcuni possessori di Raddy 9700Pro, non hanno superato neanche i 40frames con dei cali sino a scendere sotto la decina di frames. Ovviamente, il gioco è in versione alpha, ma questo è solo un esempio per mettere in evidenza che non sempre si può mettere il v-sync e che anzi è meglio (forse) tenerlo disattivato. Che problema si ha nel tenerlo disattivato e raggiungere in taluni casi anche p. es. 500 frames.
Penso che il gioco non dovrebbe andare a scatti con frames così elevati, ma il fattore positivo è che se tengo il v-sync disattivato e ho il monitor a 60Hz e i frames scendono a 50/40, io, gli scatti non li noto. Lo stesso discorso vale se ho il refresh a 85 o 100Hz. Parlando onestamente penso che in tutti i giochi sia, molto ma molto difficile mantenere frames molto alti!!!!!!!.

Dato che ho rilevato che sei sicuramente molto più esperto di me, mi sottometto ai grandi "guru" dell'informatica e ti chiedo umilmente conferma di quello che ho scritto.

Ciao

TheDarkAngel
29-12-2002, 14:29
infatti è impressionante vedere una console ke non scatta a luridi 25
quando sul monitor x essere fluido sempre deveno esserci un bel 80frame...
io mi kiedo xkè :confused: ?

Dave3D
29-12-2002, 14:52
Originally posted by "ChriD"

Premessa:
Tutti noi sappiamo che quello che vediamo sul monitor quando giochiamo ad un videogame e' la combinazione di due processi separati e ben distinti dati rispettivamente dalla scheda video e dallo stesso monitor.
La scheda video in base alla propria potenza di calcolo, invia al monitor una serie variabili di fotogrammi (frames) ogni secondo. Il monitor dal canto suo visualizza questi frames in base
al valore di refresh impostato. Il refresh non e' altro che il tempo necessario al monitor per completare un frame . Se quest'ultimo completa l'immagine in 1/85 di secondo il valore di refresh sara' di 85hz e i frame visualizzati su schermo in un secondo saranno 85 (sempre considerato che la scheda video riesca a fornirglieli).Naturalmente per avere una immagine stabile occorre che i frames inviati dalla scheda video e il refresh vengano sincronizzati, ovvero la scheda video deve attendere che il monitor abbia finito di aggiornare ogni singolo frames(v-sync attivato). Se invece il v-sync viene disattivato, la scheda non attendera' piu' che il monitor finisca di aggiornare i frames, ma sara' per cosi' dire libera di mandare a video tutti i frames che e' capace di generare. Il risultato di solito e' che il valore del frame rate finisce per superare quello del refresh dando vita ad un effetto sgradevole (effetto tearing). Dal canto suo si hanno problemi anche attivando il v-sync e impostando il refresh ad un valore irragiungibile dal frame rate, in questo caso l'immagine scatta.
Prendiamo ad esempio un valore impostato di refresh di 60hz (quindi il tempo necessario al monitor per aggiornare un frames sara' di 1/60 di secondo) e mandiamo a video una sequenza di 40 frames per secondo (quindi un frame ogni quarantesimo di secondo) . Abbiamo sessanta posti (dati dal refresh) ma solamente 40 potranno essere occupati (dai frames). I restanti 20 posti saranno semplicemente lasciati vuoti (e non ignorati come molti credono) il risultato sara' un bello scatto a video.Quello che e' importante sapere e' che il refresh non e' variabile e che comunque una volta impostato un valore quel valore verra' mantenuto per tutta la durata del ciclo (1 secondo) che ci siano frames da mostrare o meno. Nel caso in cui la scheda riesca a fornire i 60 frames necessari per occupare i 60 aggiornamenti (resi disponibili dall'impostazione a 60 hz) il risultato sara' una immagine dalla fluidita' perfetta. Certo che, aumentando il valore del refresh ( sempre ammesso pero' che il valore del frame rate sia sempre uguale a quello dell'aggiornamento) le cose possono solamente migliorare, ma da 70-75 frames in poi sara' comunque difficile distinguere la differenza.(almeno stando agli studi della Lucas film).
TEORIA:
Dunque in base a quello analizzato fino ad ora si deduce che:
Per avere una fluidita' ottimale il refresh deve essere impostato ad un valore sotto il quale il frame rate non scende mai. Naturalmente partendo da un valore minimo di 60.(il v-sync deve essere attivato) Facendo questo il valore dei frames e quello del refresh sara' sempre lo stesso (il v-sync attivato limitera' gli eccessi) e la fluidita' sara' perfetta.
esempio 1:
Allora, io ho un gioco ( nolf2) che nella peggiore delle ipotesi mi viaggia a 86 frames. Applico la regola suddetta , individuo il frame rates minimo(86) e imposto il refresh ad un valore sotto il quale il frame rate non scendera' mai, cioe' 85hz.(il v-sync deve essere attivato) poiche' il gioco non scende mai sotto gli 85 frames il refresh non rimarra' mai con aggiornamenti vuoti (85 aggiornamenti riempiti da 85 frames) il risultato sara' l'immagine piu' fluida ottenibile dal mio computer. Se io infatti avessi impostato un valore di refresh di 100hz quei 14 aggiornamenti mi sarebbero rimasti vuoti con conseguente scatto dell'immagine. Proprio sul presunto scatto che l'immagine compie quando il frame rate ha un valore inferiore a quello del refresh ho avuto molte contestazioni da vari utenti, quindi ho deciso di passare all'atto pratico.
PRATICA:
Prendete la demo di quake 3 e scaricatevi fraps (un conta-frames) a questo indirizzo <http://mohitalia.gamesnet.it/files_db/pafiledb.php?action=file&id=66&PHPSESSID=e732e414b38f37d79a51e4cb7831ecd4> ora andate su proprieta'-impostazioni-avanzate-openGl e impostate la voce "attendi sync verticale" su "sempre attivato" lanciate fraps e poi lanciate la demo di quake3 impostando una risoluzione bassa e il refresh del monitor a 60hz. Lanciate multiplayer-create-q3tourney2-next-fight (in questo modo sarete soli nell'arena selezionata) ora lasciate stare il mouse e giratevi attorno con il tastierino, dovreste avere un frame rate inchiodato a 60 (in caso contrario spostatevi in un punto dove rimane costantemente a 60) Quella che avrete davanti e' la fluidita' perfetta, non si vede uno scatto e tutto fila liscio come l'olio.
60 aggiornamenti coperti da 60 frames.Bene, adesso uscite dal gioco e andate sul pannello di controllo openGl della scheda video, attivate lo smoothvision a 6x e il filtraggio anisotropo a 16x spostate anche i livelli di dettaglio su massima qualita'. Adesso lanciate quake 3 a 1600x1200 impostando tutti i dettagli al massimo e tornatevene nella mappa di prima,cercate un punto dove girandovi intorno con il tastierino il frame rate non sia fisso a 60 ma che comunque mantenga tale valore per buona parte del "giro su voi stessi" (davanti alla colonna "cibernetica" di q3tourney2 per esempio) ecco che nel momento esatto in cui il frame rate scende sotto i 60 frames vedrete uno schifosissimo scatto (o piu' di uno).La prova la potete fare anche a 85hz basta che manteniate i parametri suddetti inalterati (cioe' che nel primo caso il frame rate girandovi con il tastierino numerico mantenga gli 85 fissi e nel secondo solamente per il 90% della durata del "giro")

La mia vuol essere solamente una puntualizzazione, perche' capisco benissimo che in certi casi servano refresh piu' alti e v-sync desincronizzati per avere velocita' piu' alte a scapito della qualita' di immagine.

Quindi come dici tu, il v-sync, in parole povere è come un limitatore, che mantiene costante un numero di frames a seconda degli hz e quindi rende l'immagine fluida.
Quello che dici tu è vero solo se però si ha una scheda video molto potente che mantenga costante in qualsiasi momento e scenario, frames molto alti. Metti ad esempio la demo "illegale" di doom III, io non l'ho provata, ma da quello che hanno scritto alcuni possessori di Raddy 9700Pro, non hanno superato neanche i 40frames con dei cali sino a scendere sotto la decina di frames. Ovviamente, il gioco è in versione alpha, ma questo è solo un esempio per mettere in evidenza che non sempre si può mettere il v-sync e che anzi è meglio (forse) tenerlo disattivato. Che problema si ha nel tenerlo disattivato e raggiungere in taluni casi anche p. es. 500 frames.
Penso che il gioco non dovrebbe andare a scatti con frames così elevati, ma il fattore positivo è che se tengo il v-sync disattivato e ho il monitor a 60Hz e i frames scendono a 50/40, io, gli scatti non li noto. Lo stesso discorso vale se ho il refresh a 85 o 100Hz. Parlando onestamente penso che in tutti i giochi sia, molto ma molto difficile mantenere frames molto alti!!!!!!!.

Dato che ho rilevato che sei sicuramente molto più esperto di me, mi sottometto ai grandi "guru" dell'informatica e ti chiedo umilmente conferma di quello che ho scritto.

Ciao

Difatti tutto il discorso sul vsynch non vale se la scheda video non genera Frames pari o superiori al refresh impostato. Io preferisco sempre tenerlo disattivato ;)

rookie
29-12-2002, 15:16
Originally posted by "TheDarkAngel"

infatti è impressionante vedere una console ke non scatta a luridi 25
quando sul monitor x essere fluido sempre deveno esserci un bel 80frame...
io mi kiedo xkè :confused: ?

Ho visto che hai una 8500....io l'avevo, poi per sfizio ho provato a cambiarla con una 4200 dopo aver letto di problemi di fluidità con le Ati (anche a frame-rates elevati)....in effetti girano meglio, almeno sul mio (comunissimo, Abit Kt7a, T-Bird 1200, 512mb ram) PC.......se ti capita fai una prova e vedi se anche per te il problema è quello.

Con la 8500 Ghost Recon era fluido solo sopra i 60fps, ora anche con una 40na va benone.

biancoros
29-12-2002, 15:53
il re del cross-posting :D

FreeMan
29-12-2002, 15:56
senti PSYCOMANTIS, perchè non hai continuato la discussione qui

http://forum.hwupgrade.it/viewtopic.php?t=366647&postdays=0&postorder=asc&start=0

forse perchè nessuno ti ha dato ragione?? piccino...

:D

cmq fammi il favore di evitare di aprrie discussioni uguali sullo stesso argomento... è vietato su tutti i forum della terra.. per ovvi ed evidenti motivi

CLOSED!!!

http://forum.hwupgrade.it/templates/subSilver/images/topic_lock.gif

>bYeZ<