Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 8

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>The Linux 3Dfx HOWTO: Tecnologia degli Acceleratori Grafici</TITLE>
<LINK HREF="3Dfx-HOWTO-3.html" REL=next>
<LINK HREF="3Dfx-HOWTO-1.html" REL=previous>
<LINK HREF="3Dfx-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="3Dfx-HOWTO-3.html">Avanti</A>
<A HREF="3Dfx-HOWTO-1.html">Indietro</A>
<A HREF="3Dfx-HOWTO.html#toc2">Indice</A>
<HR>
<H2><A NAME="s2">2. Tecnologia degli Acceleratori Grafici</A></H2>

<H2><A NAME="ss2.1">2.1 Principi</A>
</H2>

<P>Questa sezione descrive <EM>molto</EM> velocemente la tecnologia degli
acceleratori grafici per computer, in modo da aiutare a capire i concetti
usati in seguito. Se se ne vuole sapere di pi&ugrave; si pu&ograve; consultare un
libro su OpenGL. 
<P>Fondamentalmente, la grafica 3D su computer richiede spesso un gran numero di
calcoli per ogni singolo pixel dello schermo. Questo &egrave; vero soprattutto per
quelle applicazioni che devono rappresentare un mondo poligonale nei vari frame
di un'animazione interattiva. Anche a basse risoluzioni come 320x200, ci&ograve;
richiede una capacit&agrave; di calcolo superiore a quella che pu&ograve; essere fornita
anche dal PC pi&ugrave; potente.
<P>Per superare questo collo di bottiglia, alcune societ&agrave; hanno progettato,
costruito e venduto processori dedicati alle operazioni necessarie per la
grafica 3D. Purtroppo praticamente nessuno dei produttori di schede ha finora
offerto alcun supporto per Linux. Fortunatamente, il produttore dei chipset
Voodoo Graphics (tm) e Voodoo Rush (tm), 3Dfx, ha deciso di supportare l'uso delle schede
basate sul Voodoo Graphics (tm) con Linux. Ci&ograve; che si prefigge questa documentazione &egrave;
di descrivere il supporto attualmente disponibile.
<H2><A NAME="ss2.2">2.2 Configurazioni Hardware (Add-on)</A>
</H2>

<P>Gli acceleratori grafici si trovano in formati diversi: o come schede PCI
capaci di passare attraverso il segnale video di una scheda VGA (possibilmente
un acceleratore 2D o video), o come schede PCI che generano grafica sia VGA
sia 3D (rimpiazzando totalmente il vecchio controller VGA). Le schede 3Dfx
basate sul Voodoo Graphics (tm) appartengono alla prima categoria. Entreremo nel merito in
seguito.
<P>Se non ci sono conflitti hardware, qualsiasi scheda acceleratrice pu&ograve; essere
presente sotto Linux senza interferire, ma per accedere all'acceleratore,
si deve disporre di un driver.
<H2><A NAME="ss2.3">2.3 Limiti di Prestazioni</A>
</H2>

<H3>Limiti di fill rate</H3>

<P>La grafica accelerata dall'hardware &egrave; limitata nelle prestazioni per
diversi motivi. Un tipico collo di bottiglia &egrave; il fill rate: il numero
totale di pixel che l'hardware pu&ograve; generare in condizioni ottimali in un
determinato tempo - ad es. circa 40 Mpixel/secondo. Data una risoluzione di
640x480 e nessuna sovrascrittura, l'hardware non pu&ograve; generare pi&ugrave; di 130
frame/secondo.
<P>Il numero di sovrascritture dipende dall'attuale profondit&agrave; della scena
(quanti poligoni interseca un raggio passante per un pixel) e
dall'efficienza dell'algoritmo di determinazione delle superfici visibili
usato dall'applicazione. Disegnare ogni pixel due volte significa 65
frame/secondo, una sovrascrittura pari a 2 (disegnare ogni pixel tre volte)
ti porta a circa 43 frame/secondo.
<H3>Perdita di refresh</H3>

<P>Inoltre, probabilmente si utilizzeranno due buffer, invertendo il buffer in primo
piano con quello nascosto non appena il frame &egrave; completato. Qui entra in
gioco la velocit&agrave; di refresh del monitor: si pu&ograve; invertire i buffer soltanto
durante il periodo di refresh. Se la propria applicazione salta un periodo di
refresh a 60Hz ad ogni frame, il frame rate effettivo scender&agrave; a 30Hz
(un frame ogni due refresh). Perdere due periodi di refresh porter&agrave; a 20Hz.
<H3>Limiti di primitive</H3>

<P>Se la propria scena non &egrave; molto dettagliata (solo pochi poligoni, ma molto
grandi, con molte sovrascritture), l'applicazione sar&agrave; probabilmente
limitata dal fill rate - &egrave; possibile fornire altre primitive (linee,
triangoli, poligoni) all'hardware, ma la generazione dei pixel non pu&ograve;
essere in alcun modo accelerata.
<P>Invece, se la propria applicazione rappresenta un infinit&agrave; di piccoli triangoli
o poligoni, probabilmente ci si ritrover&agrave; limitati dalla generazione delle
primitive. Dato una banda passante del PCI di 33MHz per 32bit, o 132 MB/sec, e
un pacchetto di dati per triangolo di 3 vertici (9 coordinate, ognuna a 16bit,
pi&ugrave; 3 colori, ognuno a 24bit), e un frame rate di 20Hz, si potranno trasferire
circa 240K triangoli/frame - senza contare i dati delle texture, gli accessi
al disco e le altre operazioni.
<H2><A NAME="ss2.4">2.4 Caratteristiche dell'Accelerazione Hardware</A>
</H2>

<P>Le operazioni di rendering solitamente supportate dagli acceleratori
hardware che si rispettino sono:
<UL>
<LI>Texture mapping con correzione prospettica</LI>
<LI>Alpha-blending, Nebbia</LI>
<LI>Anti-aliasing</LI>
<LI>Filtering bi-lineare delle texture</LI>
<LI>Livello di dettaglio (LOD) MIP mapping</LI>
<LI>Correzione a livello sub-pixel</LI>
<LI>Ombreggiatura Gouraud basata sui poligoni e modulazione delle texture</LI>
<LI>Double buffering</LI>
<LI>Buffering di profondit&agrave;, stencil buffer</LI>
</UL>
<P>Solitamente, l'hardware permette un aumento della risoluzione dello schermo
(dato che il rendering esclusivamente software &egrave; limitato a 320x200 pixel per
i frame rate interattivi), il filtraggio avanzato, la traslucenza reale del
canale alpha, e l'uso di frame buffer a colori reali a 16bpp o 24bpp.
<H2><A NAME="ss2.5">2.5 Cenni sull'Architettura Voodoo Graphics (tm)</A>
</H2>

<P>Solitamente, il maggior collo di bottiglia si riscontra nell'accesso alla
memoria delle texture e ai buffer di profondit&agrave; e dei fotogrammi. Per ogni
pixel nello schermo, ci sono almeno uno (mappatura in vicinanza), quattro
(bi-lineare) o otto (tri-lineare) accessi in lettura alla memoria delle
texture, pi&ugrave; una lettura/scrittura al buffer di profondit&agrave; e una
lettura/scrittura al buffer dei fotogrammi.
<P>L'architettura Voodoo Graphics (tm) separa la memoria delle texture da quella dei buffer
dei fotogrammi e di profondit&agrave; suddividendo il rendering in due stadi
separati, con due unit&agrave; distinte (il pixelfx e il texelfx), ognuna con
il proprio collegamento alla memoria corrispondente. Questo permette un fill
rate superiore alla media, a discapito della gestione della memoria (p.es. la
memoria dedicata ai frame non utilizzata non pu&ograve; essere usata per il
caching delle texture).
<P>Inoltre, un Voodoo Graphics (tm) pu&ograve; usare due TMU (unit&agrave; di gestione delle texture o
texelfx), ed infine, due Voodoo Graphics (tm) possone essere collegati per accedere allo
stesso RAMDAC con un meccanismo chiamato Scan-Line Interleaving (SLI). In
parole povere SLI significa che ogni pixelfx disegna una riga di schermo ogni
due, il che riduce l'impatto della banda passante sulla memoria destinata ai
frame di ogni pixelfx.
<HR>
<A HREF="3Dfx-HOWTO-3.html">Avanti</A>
<A HREF="3Dfx-HOWTO-1.html">Indietro</A>
<A HREF="3Dfx-HOWTO.html#toc2">Indice</A>
</BODY>
</HTML>