|
Introduzione
La scorsa
estate, quando la posizione del chip grafico G200, montato sulle schede
Matrox Millennium, Marvel e Mystique fu chiara nacquero strane voce
sulla rete.
La situazione
di Matrox non era certo invidiabile visto che, nonostante le vendite
ottime di Mystique prima serie e di Millennium II, le sue schede erano
in assoluto le piu' arretrate dal punto di vista della qualita' grafica
tridimensionale: nonostante la velocita' di esecuzione fosse di tutto
rispetto gli effetti visivi erano addirittura inferiori a quelli della
primissima serie delle Virge di S3, probabilmente l'unico caso di "deceleratori
hardware 3D" sul mercato (su un qualunque Pentium II il software
era piu' veloce dell'hardware).
Il disagio della grande casa produttrice fu palpabile
quando usci' la scheda aggiuntiva Matrox M3D, che per la prima volta
nella storia dell'azienda montava un processore prodotto da terze parti,
il Nec Power VR PCX2. Questo chip seppur all'avanguardia ancora oggi
per alcune soluzioni adottate (uso del BUS PCI come veicolo dei dati,
accelerazione in finestra, ed un meraviglioso sistema per evitare l'uso
della memoria su scheda per lo Z-Buffer) necessitava di un processore
veramente potente (al tempo c'erano i Pentium NON MMX).
Come risultato
la velocita' di esecuzione dei giochi (ma il PowerVR, al contrario del
Voodoo poteva essere usato anche per le applicazioni) non variava di
molto rispetto all'uso della sola Mystique, mentre la qualita' e gli
effetti ottenuti erano senza paragoni (inferiori solo a quelli del primo
Voodoo).
L'accoppiata Mystique+M3D rappresentava cio' che ci si sarebbe aspettato
da un nome come Matrox se solo i risultati finali fossero dovuti ad
un'unica scheda. Spendendo poco di piu' si poteva acquistare una scheda
con il Voodoo di 3dfx, con piu' effetti, piu' veloce e meno dipendente
dalla CPU.
Quando Matrox presento'
il G200 il Voodoo2 rappresentava il riferimento , rispetto al quale
era si piu' lento, ma portava anche una qualita' grafica mai vista prima.
Il rendering a 32 bit, il numero di effetti e filtri 3D disponibili
e comunque una velocita' piu' che buona fecero di questo chip grafico
il re del mercato 2D/3D fino all'arrivo (purtroppo per Matrox, avvenuto
poco dopo) del RivaTNT.
Ho un po' divagato
rispetto al cappellotto iniziale, ma e' necessario per ben capire le
voci delle quali parlavo all'inizio e che vedendo nel G200 un ottimo
chip, ma lontano dall'essere l'acceleratore definitivo (specie in seguito
al ciclone TNT) cominciarono a dire che il G200 altro non era che una
palestra per fare familiarizzare gli arrugginiti ingegneri Matrox con
le ultimissime tecnologie. Secondo questa "scuola di pensiero",
la non ottimale velocita' era dovuta all'interesse principalmente indirizzato
verso l'introduzione del maggior numero di nuovi effetti, rispetto alla
velocita' che sarebbe arrivata in un secondo tempo con un nuovo prodotto.
Non ho mai creduto
in modo particolare in questa storia, che tuttavia risultava piu' verosimile
della teoria che voleva il G200 un prodotto di tecnologie extraterrestri,
che mi sono inventato in questo istante. Cio' non toglie che poco piu'
di un mese dopo l'uscita del G200 si e' cominciato subito a parlare
di un fantomatico G300, l'erede di questo valido chip.
Qualunque sia stata
la politica adottata da Matrox, a distanza di meno di un anno il successore
del G200 e' arrivato per davvero. Sara' il nuovo re del mercato? E del
Mondo? E' piu' veloce dei Voodoo 3 e TNT2? E il bump mapping? Cerchiamo
insieme una risposta a tutte queste domande.
I modelli
Fino
ad ora sono stati presentati tre modelli di schede video basate su G400:
- Millennium G400
16Mb
- Millennium G400
32Mb
- Millennium G400
MAX 32Mb
Le prime due schede
sono identiche, a parte ovviamente la quantita' di memoria presente
a bordo e montano un RAMDAC integrato da 300 Mhz.
La Millennium G400 MAX, ha invece una maggiore frequenza di clock ed
un RAMDAC da 360 Mhz.
Con buone probabilita' presto vedremo un serie Marvel basata su questo
processore.
Ogni promessa
e' debito
Le promesse
fatte da Matrox nei riguardi di questo chip sono veramente molte e tutte
interessantissime. Spulciando fra le caratteristiche tecniche saltano
all'occhio:
- Architettura
DualBus a 256 bit
- Ampiezza di
banda processore-memoria a 128 bit
- AGP 2x/4x
- Environment
Bump Mapping Reale
- Dual Head Display
- Anisotropic
filtering
- Multi Texturing
a singolo passaggio
- Supporto per
tutti i tipi di nebbia e texture. Per queste ultime la dimensione
masssima e' di 2048x2048
- 3 modalita'
di Z-buffer (max 32 bit)
- Stancil Buffer
- Accelerazione
DVD con compensazione di moto
Questo e' una piccolissima
parte ( a mio parere la piu' significativa ) di tre pagine A4 di specifiche.
Alcune delle caratteristiche qui elencate si commentano da sole, alle
altre e' meglio dedicare un po' di approfondimento, che per semplificare
la lettura, presentero' in ordine rigorosamente casuale. Ma il primo
paragrafo non puo' non essere dedicato a
Bump Mapping:
il nuovo re degli effetti 3D
C'e'
poco da dire e molto da vedere: il Bump Mapping e' probabilmente il
piu' impressionante effetto 3D mai visto fino ad ora su schede consumer
dai tempi del bilinear filtering (il filtro che elimina i quadrettoni
quando una superficie e' vista a distanza ravvicinata) e rappresenta
il primo vero passo verso il rendering fotorealistico in tempo reale.
Questo effetto, presente attualmente in forma completa solo su G400
(vedi tabella) permette di ottenere immagini di un dettaglio incredibile,
rendendo tridimensionali texture che non lo sono e offrendo effetti
di distorsione convincenti e animazioni fino ad ora improponibili.
Le superfici possono presentare tagli, scalfitture, porosita' ed ondulazioni,
in questo modo si perde completamente la sensazione di artificiale presente
anche nei giochi piu' progrediti. Effetti come scaglie di drago, ondulazione
dell'aria dovuta a forte calore, acqua che sembra acqua e non un telo
sporco che si muove (esclusa quella di Unreal) saranno all'ordine del
giorno. In questi casi un'immagine vale mille parole, percio' roviniamoci
insieme le retine rimirando per ore le schermate qui presentate:
Dal
demo Matrox By Digital Illusions
Confronti
con/senza BumpMapping, tratti dal demo Matrox in Shockwave
Cliccate sulle immagini per ingrandirle
Tabelle Comparative Bump Mapping
So
bene che il sito sarebbe dovuto essere tutto in italiano, ma essendo
appena nato c'e' un sacco di lavoro da fare, e cosi' le tabelle le ho
lasciate in inglese. Comunque rappresentano il confronto tra il Bump
Mapping Ambientale, il prodotto dot 3 e quello software e sono quasi
interamente costituite da termini tecnici privi o quasi di traduzione
(e' una scusa? Si. Non regge molto, vero?).
Card/Chip |
Environment-Mapped
Bump Mapping |
Dot
3 Product |
Alpha-blended
Embossing |
Matrox
G400 |
|
|
|
Matrox
G400 MAX |
|
|
|
ATI
Rage 128 |
|
|
|
Voodoo
3 2000 |
|
|
|
Voodoo
3 3000 |
|
|
|
Voodoo
3 3500 |
|
|
|
TNT2 |
|
|
|
3Dlabs
Permedia 3 |
|
|
|
PowerVR
Second Generation |
|
|
|
Feature |
Environment-Mapped
Bump Mapping |
Dot
3 |
Multi-pass
Alpha Embossing |
Lighting |
Specular
lighting effects possible |
Specular
lighting effects possible |
Diffuse
lighting only |
Light
Source |
Multiple
light sources |
Single
light source |
Single
light source |
Light
Color |
Polychromatic |
Monochromatic |
Monochromatic |
Light
Fall |
Control
over light fall |
No
control over light fall |
No
control over light fall |
Luminance
Control |
Per-pixel
luminance control |
No
per pixel control, must use gloss map |
No
per pixel control |
CPU
Usage |
Calculations
are done on the graphics hardware |
Calculations
are done on the graphics hardware |
CPU
calculates UV shift, is CPU dependent |
Developer
Commitment |
Bumps
programmed using DirectX6 calls |
Bumps
programmed using DirectX6 calls |
Developer
must support and tweak for each video card |
Bumps |
Height
and depth are per pixel, can vary over 1 tri. |
Height
and depth are per pixel, can vary over 1 tri. |
Can
vary only linearly over the triangle surface |
Bump
Mapping |
Can
simulate static and dynamic bump mapping |
Can
do dynamic bm, but it is CPU intensive |
Only
simulate bumps on textured 3D objects |
Effects |
Can
do distortion & procedural effects |
Cannot
do distortion effects |
Cannot
do distortion effects |
API
Support |
Results
are standard as is part of an API |
Results
are standard, as it is part of an API |
Differing
results, due to hardware interpretation |
Range
of Bumps |
Best
possible range of bumps |
Best
possible range of bumps |
Limited
range of bumps |
Architettura
Dual Bus 256 bit
L'architettura
del G200 era chiamata Dual Bus 128, ma non era veramente a 128 bit,
visto che la dimensione massima del dato per ciclo di clock era
di 64 bit. Tuttavia c'erano due percorsi a 64 bit per i dati in
entrata e in uscita dal chip, per un totale appunto di 128 bit in
transito contemporaneamente (2 dati da 64 in direzioni opposte).
Per il G400 e' esattamente la stessa cosa, con la sola differenza
che bisogna moltiplicare tutto per due (nome del Chip compreso).
I dati sono due da 128 bit ciascuno.
Oltre al vantaggio evidente del raddoppio dell'ampiezza di banda
all'interno del processore grafico, anche il bus processore-memoria
e' a 128 bit, il doppio di quello del G200.
AGP
2x/4x
Come
tutti i nuovi processori video anche il G400 e' compatibile con
l' AGP 4x che sara' disponibile con il chipset Intel 820 (Camino),
quando uscira'. L' AGP e' una porta (e non un Bus) che unisce processore,
memoria e scheda video. Il clock di questa connessione e' 66 Mhz,
ma se si usano entrambi i fronti si puo' considerare a 133 Mhz (2x).
L' AGP 4x, raddoppia questi valori, portando la banda passante a
1Gb al secondo [cfr Evolution]
Non e' previsto comunque un grande cambiamento di prestazioni, visto
che ci sono ancora altri colli di bottiglia che impediranno l'utilizzo
di una cosi' elevata banda passante.
Dual
Head Display
Probabilmente
questa capacita' rimmarra' in gran parte inutilizzata se non in
applicazioni di nicchia. Permette l'utilizzo contemporaneo di due
monitor indipendenti su uno stesso computer. Per indipendenti intendo
che possono mostrare due immagini completamente diverse.
Le configurazioni possibili sono:
- Monitor + Monitor
- Monitor + TV
- Monitor + LCD
digitale (optional)
La prima la vedo
molto utile per i programmatori. In effetti ho sempre desiderato avere
un monitor per il programma in esecuzione e un altro, indipendente,
per il debug. La seconda e' formidabile per i giocatori incalliti, che
magari hanno una TV da 42 pollici al plasma 16:9 di fianco al loro computer
(con il calare dei prezzi dei monitor di grandi dimensioni attuali penso
sia questa l'unica oppurtunita' per usare un TV Out, a meno di non dovere
registrare con un VCR quanto appare sullo schermo).
Filtro
Anisotropico
L'anisotropia
e' la proprieta' per la quale una o piu' caratteristiche fisiche di
una sostanza non sono uguali in tutte le direzioni.
Anche la visualizzazione dei poligoni ricoperti da texture non e' uguale
in tutte le direzioni, e a seconda della angolazione puo' dare luogo
a deformazioni e sfocature.
Inolte anche la forma del poligono, che non sempre e' uguale a quella
dell'immagine che lo ricopre da' luogo ad imperfezioni visive.
Il filtro Anisotropico (ani="non", iso="uniforme",
tropico="forma") permette di variare la dimensione dei texel
a seconda della circostanza per ottenere risultati ottimali.
Multi
Texturing a singolo passaggio
Questa
capacita' e' stata presentata "di serie" per la prima
volta con le schede basate su Voodoo2 (in effetti questa possibilita'
era prevista anche dal primo voodoo) e sviluppata in seguito da
nVidia con il chip TNT.
Una doppia pipeline grafica permette di ottenere due texel (triangoli
ricoperti da texture) per ciclo di clock. G400, TNT 1 e 2, Voodoo
2 e 3, Rage 128 hanno 2 unita' per il multitexturing, Permedia 3
ne ha 3.
Stancil
Buffer & Z-Buffer a 32 Bit
G400
non poteva non avere lo stencil buffer, presentato per la prima
volta sul Riva TNT. Con lo SB e' possibile definire una maschera
dietro la quale i triangoli non vengono renderizzati, o vengono
renderizzati solo in particolari situazioni.
Ad esempio se con lo stancil buffer si realizza l'interno di una
cabina di pilotaggio di un aereo le zone coperte da questa non vengono
calcolate, ma viene aggiornata solo la visuale attraverso le finestre.
Questo permette un notevole risparmio di potenza rispetto al metodo
tradizionale che prevede il disegno di tutta la scena e poi la sovrapposizione
della maschera della cabina.
Questo esempio si riferisce al piu' semplice degli stencil buffer,
ossia quello binario (definito da un singolo bit), ma su G400 lo
SB e' a 8 bit permettendo maschere condizionali a seconda del valore
del bit della maschera.
I piu' informati ricorderanno che Creative rilascio' un driver per
Unreal della sua scheda Riva TNT che forniva le ombre ai personaggi
proprio utilizzando la tecnologia dello stancil buffer.
G400,
come G200 supporta lo Z-buffer a 32 bit, che permette un'elevatissima
precisione nello stabilire quali superfici sono visibili e quali
no, evitando spiacevoli sfarfallii a volte presenti con il tradizionale
Zbuffer a 16 bit
I
modi supportati da G400 sono:
- 16 bit Z-buffer
- 24 bit Z-buffer
+ 8 bit Stencil Buffer
- 32 bit Z-buffer
Lo Z-Buffer a 32 bit non e' attualmente disponibile
nella versione attuale dei drivers Open GL.
Ok,
ok la qualita' e ottima, ma l'immagine e' zero: ascolta la tua sete
di velocita'
G200
ha insegnato che avere le immagini piu' brillanti del mercato ma
una velocita' solo accettabile non porta al successo assoluto.
Voodoo3 spero insegnera' che una buona velocita' e una qualita'
grafica obsoleta non portano al successo
assoluto (ma c'e' ancora chi reputa 3dfx IL produttore per eccellenza
di acceleratori grafici e si fa infinocchiare).
RivaTNT ricorda che la virtu' sta nel mezzo.
Cosa insegna G400 in questo campo?
Che cercare di trarre conclusioni definitive in questo momento si
rivelerebbe un errore, visto che i drivers sono ancora in versione
preliminare e non implementano tutte le funzionalita' disponibili.
Per quanto riguarda i Benchmark il discorso e' ancora piu' complesso.
Fra i primi ad essere disponibili sono stati quelli pubblicati da
Tom Pabst su Tom's Hardware Guide (www.tomshardware.com)
e da id Software (www.idsoftware.com)
entrambi relativi al gioco Quake III, che come tutti sanno utilizza
un motore che si basa su OpenGL.
Da una azienda che a fatto nascere e morire un chip (G200) senza
mai fargli vedere una versione definitiva di un OpenGL ICD driver
non possiamo aspettarci miracoli (specie in confronto con la grande
esperienza di nVidia in questo campo) ma i dati a disposizione mettono
comunque in chiaro un fattore scottante. Il G400 ha un disperato
bisogno di una CPU potente, molto di piu' d quanto necessitino Voodoo
3 e TNT2.
Tom
ha provato Quake III con un Pentium III a 550 Mhz a 1024*768*16bit
ottenendo:
con la stessa configurazione
ma sostituendo il Pentium III con un Celeron 400 Mhz
- 36.2 fps con
RivaTNT2 (125/150) [-3 frames]
- 32.0 fps con
Voodoo 3 3000 (166/166) [- 3.8 frames]
- 27.6 fps con
G400 MAX [-6.2 frames]
Come e' evidente
e' la scheda che piu' perde al passaggio ad un processore meno potente.
I benchmark pubblicati
da id confermano questi dati, aggiungendo il fatto che la G400 e' la
piu' veloce in assoluto a 1280*1024*32 distaccando del 300% il Riva
TNT2. Che ci sia qualche trucco sotto ?(non dimentichiamo che con l'ICD
non funziona lo Z-buffer a 32 bit.)
Concludendo...
Dopo
molti anni Matrox e' finalmente tornata al ruolo di azienda innovatrice
che aveva abbandonato dopo la realizzazione della prima Millennium.
La scheda nella versione MAX e' una reale minaccia allo strapotere di
Nvidia e di 3dfx, anche se la sua vera potenza rimane in parte un'incognita.
Senza dubbio e' la scheda giusta per i processori dell'ultimissima generazione
(PIII >= 500) ma potrebbe essere troppo esosa in fatto di potenza
di calcolo per essere presa in considerazione come upgrade per computer
piu' limitati.
E' comunque una scheda da seguire attentamente, ed al piu' presto troverete
aggiornamenti sul sito.
Fonti:
www.matrox.com
www.matroxusers.com
www.tomshardaware.com
www.idsoftware.com
|