|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Apr 2004
Messaggi: 75
|
Fps
Com'è possibile che un videogame giri a 100 frames al secondo su un monitor a 75 hz ?????? Il monitor se è a 75hz in teoria non dovrebbe limitare a visualizzare "solo" 75 frames al secondo?
|
![]() |
![]() |
![]() |
#2 | |
Messaggi: n/a
|
Re: Fps
Quote:
![]() |
|
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2001
Città: Milano (Est)
Messaggi: 747
|
Se la sincronizzazione verticale e' attivata puo' fare
solo 75 frame's al secondo se non e' attivata ne fa' quanti riesce a farne fare la scheda.
__________________
Se qualcuno ti dice " Questo e' giusto e questo e' sbagliato",rispondigli PER CHI ? |
![]() |
![]() |
![]() |
#4 | |
Messaggi: n/a
|
Quote:
![]() |
|
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2003
Città: Padova
Messaggi: 8004
|
Quote:
E non si fonde il monitor?Non e' un blocco fisico? ![]() ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2001
Città: Milano (Est)
Messaggi: 747
|
MMMhh! In effetti si', e' un blocco che il monitor
impone alla scheda, pero' un elevato numero di frame's non fa' fondere il monitor ![]() se no gia' chi aveva una voodoo3 e giocava ad Unreal lo aveva gia' fuso ![]()
__________________
Se qualcuno ti dice " Questo e' giusto e questo e' sbagliato",rispondigli PER CHI ? |
![]() |
![]() |
![]() |
#7 |
Registered User
Iscritto dal: Apr 2004
Messaggi: 75
|
ok allora in teoria la scheda video disabilita il vertical retrace del monitor prima che parta la grafica del gioco
Una domanda un po + tecnica:come fa la scheda video a sincronizzare i frame al secondo? Legge il timer di sistema? Mi sembra strano perchè è usato dal sistema operativo non credo che lo possano usare altri processi |
![]() |
![]() |
![]() |
#8 |
Registered User
Iscritto dal: Apr 2004
Messaggi: 75
|
mi spiego meglio:se viene letto il timer di sistema è il gioco che lo legge via software,non la scheda video in hardware,quindi il problema è che il gioco non può leggerlo perchè il timer viene usato dal sistema operativo...
oppure forse la scheda video ha un chip timer che il gioco setta via software? |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jun 2003
Città: .
Messaggi: 1408
|
Quote:
Basta sync con quest'ultimi prima di "disegnare" un pixel. Si possono accedere via basso livello mediante degli indirizzi particolari (in Assembler non è poi così difficile). Cmq se il monitor ha un refresh a 75Hz sync o no sync non vedrai mai + di 75 frame al secondo. O meglio se togli il sync ne vedi di + si ma non completi cioè i quadri al secondo rimangono sempre 75......
__________________
CPU: Intel 975 EE|MB: Asus Rampage Extreme 2|S.V.: Crossfire 2x5970 Sapphire OC Edition|RAM: 3x2 GByte Corsair 1600MHz|HD: RAID0 Western Digital Raptor 150GByte Sata2|ALI: Tagan PipeRock 1.3KW|Mouse: Razer Lanchesis 3G |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jan 2004
Città: Roma
Messaggi: 8520
|
Quote:
|
|
![]() |
![]() |
![]() |
#11 | |
Registered User
Iscritto dal: Apr 2004
Messaggi: 75
|
Quote:
Ma questi timer che dici sono interni alla scheda video? |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jun 2003
Città: .
Messaggi: 1408
|
Quote:
__________________
CPU: Intel 975 EE|MB: Asus Rampage Extreme 2|S.V.: Crossfire 2x5970 Sapphire OC Edition|RAM: 3x2 GByte Corsair 1600MHz|HD: RAID0 Western Digital Raptor 150GByte Sata2|ALI: Tagan PipeRock 1.3KW|Mouse: Razer Lanchesis 3G |
|
![]() |
![]() |
![]() |
#13 |
Messaggi: n/a
|
EDIT... sbagliato thread...
![]() |
![]() |
![]() |
#14 |
Registered User
Iscritto dal: Apr 2004
Messaggi: 75
|
Mmm ci sono molti fatti oscuri...allora,io intanto so che un gioco di solito non scrive mai nella memoria video mentre il raster del monitor è impegnato a disegnare i pixel sullo schermo perchè altrimenti lo schermo sfarfallerebbe,così ho letto,e quindi si aspetta sempre che il raster abbia finito di disegnare la schermata e che si trovi quindi nell'angolo in basso a destra del monitor.
A questo punto,in una porta d'I/O e precisamente la porta 0x3DA,viene settato un bit per informare che il raster ha finito il frame corrente e sta tornando nell'angolo in alto a sinistra per iniziare a disegnarne uno nuovo,questa azione del tubo catodico si chiama "vertical retrace". In questo lasso di tempo il gioco scrive il nuovo frame da disegnare nella memoria video. Bè,tutto questo se il gioco è sincronizzato con i frames/sec del monitor,oppure se ne deve disegnare 50 al secondo o 60 e il monitor ne disegna 75,allora salta qualche vertical retrace o robe del genere. Se invece il gioco non è sincronizzato e va quindi alla max velocità che può,la cosa penso sia + complicata,io penso faccia così: non controlla il vertical retrace ma un altra azione del raster:il ritracciamento orizzontale,che accade dopo ogni riga dello schermo che viene disegnata. Dopo che una riga viene disegnata (da sinistra a destra orizzontalmente),il raster setta un bit nella porta 0x3DA per dire che ha finito una riga e sta tornando a sinistra (e una riga sotto)senza disegnare niente,ma solo per cominciare la riga successiva. In questo lasso di tempo il gioco può scrivere sulla memoria video,non so se riesce a scrivere addirittura uno schermo intero o una riga o poche righe non ne ho la più pallida idea,ma in teoria lo schermo non dovrebbe sfarfallare perchè il raster e la scheda video non sono impegnati in questo frangente. Poi quello che viene scritto sulla memoria video in questo caso non so se sovrascrive "la parte vecchia del frame",cioè quella già disegnata,o viene scritto sulla parte non ancora disegnata. E poi comunque i frames sono sempre 75 al secondo quindi al massimo il gioco dice di essere a 100 e in effetti ne scrive 100 in VRAM ma in verità la scheda video ne disegna solo 75 perchè è sincronizzata in hardware col monitor. Quindi molti frames vengono saltati, o no? Non sono sicuro che sia come sopra vorrei conferme sono curioso |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Jun 2003
Città: .
Messaggi: 1408
|
Quote:
Posso confermarti al 100% la prima parte (quando è sync). Sull' ultima affermazione di quoto ma non parlo per certezze come ho già detto: "E poi comunque i frames sono sempre 75 al secondo quindi al massimo il gioco dice di essere a 100 e in effetti ne scrive 100 in VRAM ma in verità la scheda video ne disegna solo 75 perchè è sincronizzata in hardware col monitor. Quindi molti frames vengono saltati, o no?" Io penso proprio di si. Ciao ciao P.s.:Purtroppo è da tanto ormai che non programmo + in assembler il video...(bei tempi......effetti grafici in assembler......) ![]() ![]() ![]()
__________________
CPU: Intel 975 EE|MB: Asus Rampage Extreme 2|S.V.: Crossfire 2x5970 Sapphire OC Edition|RAM: 3x2 GByte Corsair 1600MHz|HD: RAID0 Western Digital Raptor 150GByte Sata2|ALI: Tagan PipeRock 1.3KW|Mouse: Razer Lanchesis 3G Ultima modifica di sgksgk : 06-06-2004 alle 11:34. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:00.