PDA

View Full Version : Domande sugli FPS


Blue_screen_of_death
05-10-2011, 18:59
Salve,

quanti fps registrate nei giochi? e qual è il valore standard per un gameplay fluido? a che serve il v-sync?

Tuant
05-10-2011, 19:30
Salve,

quanti fps registrate nei giochi? e qual è il valore standard per un gameplay fluido? a che serve il v-sync?


Tutto dippende dal tipo del gioco, normalmente è tra 40-70 buono!

vSync è l'abbreviazione che si usa comunemente al posto di "vertical frequency", ossia frequenza verticale.
E' generato dal pixel clock della scheda video.... ma cos'è il pixel clock? Apriamo una breve parentesi.

Diciamo che ogni scheda video ha un intervallo di tempo tra due singoli pixel in uscita verso il monitor, questo è chiamato pixel clock. In pratica la scheda manda singolarmente i pixel completati al monitor per la visualizzazione e, mano a mano che vengono inviati, si aggiorna un contatore che viene riazzerato ogni qual volta si termina una singola linea orizzontale (che inizia da sinistra verso destra). Questo riazzeramento del contatore determina la frequenza orizzontale o hSync.

Nello stesso momento un altro contatore si occupa di contare le linee completate e viene resettato quando si completa una singola immagine, questo determina il vSync.
Riassumendo, l'hSync sarà pari alla velocità di completamento di una singola linea dell'immagine, il vSync invece riguarderà l'immagine intera. Entrambi possono essere misurati in Hz o cicli al secondo.

A che serve abilitare l'opzione vSync in certe applicazioni allora? Facciamo un esempio.

Certe volte vi sarà capitato che in certi giochi si vedano delle immagini "spezzate" orizzontalmente in una o più parti. Quelle immagini mozzate non sono altro che frame visualizzati prima del ciclo di vSync, quindi prima che la scheda video li abbia finiti di inviare al monitor. L'immagine a video mostrerà quindi il nuovo frame con sotto quello precedente. Cosa è successo?
L'applicazione richiede in questo caso un refresh molto più alto del vSync della scheda video che letteralmente "non gli stà dietro", questo fenomeno è detto "tearing". Ora, in genere questo processo è talmente veloce da essere impercettibile ma, in talune occasioni, può farsi evidente e diventare perciò problematico.
Per risolvere il problema si usa l'apposita opzione vSync presente nell'applicazione: si comanda cioè di aspettare il completamento di un frame prima di mostrare il successivo.

Sembrerebbe giusto pensare a questo punto che l'opzione che ci permette di abilitare il vSync sia piuttosto inutile: basterebbe tenerlo sempre abilitato. Purtroppo non è così. La qualità, come in tutte le cose, ha il suo prezzo. Nel nostro ambito, il prezzo è pagato in termini di frame al secondo.

Immaginiamo di aver abilitato il vSync, questo imporrà al pc di non mandare un frame finchè non sia stato visualizzato il precedente. Ma se in questo piccolissimo intervallo di tempo l'applicazione generasse un altro frame questo non potrebbe essere inviato e "salterebbe" il ciclo, al prossimo ciclo di vSync partirebbe un frame diverso. Se la cosa si ripete spesso, immaginiamo un moderno fps dove l'azione è molto veloce, il frame rate cadrà inevitabilmente, dato che la scheda video non fa in tempo a trasmettere al monitor tutti i fotogrammi che gli vengono richiesti nell'intervallo determinato dal vSync.

Il vantaggio di avere il vSync disabilitato, si traduce perciò nella capacità di visualizzare tutti i frame che la nostra scheda video è in grado di produrre, al prezzo però di possibili fenomeni di tearing più o meno evidenti.
Abilitando il vSync le immagini saranno sempre mostrate nella loro interezza ma, a meno di non avere un pc piuttosto potente, questa opzione potrebbe abbassare di molto il frame rate effettivo, specie alle alte risoluzioni (in quanto completare una singola immagine richiede più potenza di calcolo e quindi più tempo).
Coppiato dal blog, link (http://www.pctuner.net/forum/blogs/zell/48-come-funzionano-il-vsync-e-il-buffer.html)

Fulgo
05-10-2011, 20:10
Colgo l'occasione per sfruttare questo thread per un mio problema, spero non dispiaccia a blue_screen :)

Ho da poco comprato pc nuovo e dopo aver avviato un paio di giochi (team fortress 2 e Counter strike source) vedo che tutto funziona piuttosto liscio alla risoluzione massima che supporta il monitor (1920x180) con dettagli impostati al massimo, il problema però sorge quando gioco a Counter strike 1.6 (quello datato anni 2000) e vedo con incredibile stupore che anche giocando ad una risoluzione più bassa ho cali di 50/60 fps :eek:, cosa mai accaduta con il pc vecchio dove facevo 100fps fissi in qualsiasi condizione giocando a 1024x768 (amd athlon 64 3.2 + ati x800se).

Il pc attuale è così assemblato:

HDD Western Digital Caviar Black 1TB 3.5"
CPU Intel Core i5-2500K 3.30GHz Socket 1155 95W con GPU Sandy Bridge Boxed
RAM DDR3 G.Skill Ripjaws-X F3-12800CL9D-8GBXL 1600MHz 8GB (2x4GB) CL9 1.5v
VGA MSI N560GTX-Ti TwinFrozr II/OC GeForce GTX 560 Core 880MHz Memory GDDR5 4200MHz 1GB DVI HDMI
MOBO Asrock Z68 Pro3 Socket 1155 Intel Z68 DDR3 SATA3 USB3 HDMI ATX
Windows 7 Home Premium 64bit

Dipende da qualche impostazione/driver della scheda video?

sbudellaman
06-10-2011, 11:26
Provato ad attivare/disattivare il vsinc ?

Fulgo
06-10-2011, 13:37
Edit: Ho risolto, sono un idiota perchè ho collegato il monitor alla scheda madre e non alla scheda video

sbudellaman
07-10-2011, 17:52
Edit: Ho risolto, sono un idiota perchè ho collegato il monitor alla scheda madre e non alla scheda video

:D