Pipeline grafica: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Sistemazione ulteriore della voce |
m Corretto il collegamento Raster con Grafica raster (DisamAssist) |
||
(8 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
Una '''pipeline grafica''', nella [[computer grafica 3D]], è una sequenza di operazioni atte a restituire e aggiornare un'[[Grafica raster|immagine bitmap]], partendo dagli oggetti tridimensionali presenti nella scena.<ref>{{Cita libro|autore=Marshner, Shirley|titolo=Fundamentals of Computer Graphics|edizione=4|anno=|editore=|città=|p=|pp=|ISBN=}}</ref> Per realizzare l'immagine bitmap la pipeline può implementare uno o più algoritmi come lo [[
== Pipeline grafica 3D
[[File:Graphicspipeline-fig1.png|
Qualsiasi utilizzo significativo del computer dedicato allo studio della geometria, implica il volere infine visualizzare degli oggetti su un dispositivo grafico. La figura 1 mostra alcune terminologie standard per il primo
Per limitare l'output degli oggetti, si può usare spesso un vicino (''near'', ''front'', o ''hither'') e un lontano (''far'', ''back'', o ''yon'') ''piano di clipping''.<ref name=":0" /> Il volume che si trova all'interno del volume di visualizzazione e fra questi due piani è chiamato volume di visualizzazione troncato o piramide di visualizzazione troncata. Solo quelle parti degli oggetti che giacciono in questo volume e che vengono proiettate nella finestra, saranno visualizzate. La
[[File:Graphicspipeline fig3.png|
Attenzione: la distinzione fra "finestra" e "viewport" è spesso sfocata, e a volte, ciò che dovrebbe essere chiamato viewport viene chiamato finestra. La finestra specifica che <u>cosa</u> viene visto nelle coordinate utente, e la viewport specifica <u>dove</u> quel qualcosa viene visualizzato.<ref name=":0" /> Vedi la figura 3.▼
[[File:Graphicspipeline fig2.png|centro|miniatura|844x844px|Fig.2 - La pipeline grafica 3D di base]][[File:Pipeline OpenGL.svg|thumb|Pipeline OpenGL|429x429px]]▼
▲Attenzione: la distinzione fra "finestra" e "viewport" è spesso sfocata, e a volte, ciò che dovrebbe essere chiamato viewport viene chiamato finestra. La finestra specifica che <u>cosa</u> viene visto nelle coordinate utente, e la viewport specifica <u>dove</u> quel qualcosa viene visualizzato.<ref name=":0" /> Vedi la figura
La pipeline può essere realizzata in [[software]] o in [[hardware]], sebbene per questioni di velocità e di prestazioni tutte le moderne [[scheda grafica|schede grafiche]] dispongono di diverse pipeline grafiche più o meno avanzate. Sebbene esistano molte implementazioni di una pipeline grafica tutte queste implementazioni suddividono il lavoro in quattro operazioni principali (riassumendo quanto detto in precedenza):▼
▲[[File:Graphicspipeline fig2.png|
▲La pipeline può essere realizzata in [[software]] o in [[hardware]], sebbene per questioni di velocità e di prestazioni tutte le moderne [[scheda grafica|schede grafiche]]
* [[Modellazione 3D|Modellazione]]: Durante questa fase vengono generati, come insieme di vertici, gli oggetti da rappresentare; ad esempio linee, poligoni, punti.
* Elaborazione geometrica: In questa fase si attuano principalmente tre elaborazioni:
** Normalizzazione (o Viewing): ovvero l'adattamento delle coordinate degli oggetti a quelli della camera virtuale.
** [[Clipping]]: vengono rimosse tutte le parti degli oggetti non visibili, perché fuori dalla vista.
** [[Ombreggiatura]] (Lighting e Shading): in questa fase vengono calcolati i colori e i riflessi degli oggetti tenendo conto delle proprietà dei singoli poligoni e delle luci incidenti e riflesse.
* [[Proiezione (geometria)|Proiezione]]: L'immagine 3D è proiettata sulla superficie 2D.
* [[Rasterizzazione]] o Scan Conversion: La scena è convertita da un insieme di vertici ad un insieme di pixels ([[bitmap]] o immagine [[Grafica raster|raster]]).
=== Esempio dei passaggi degli shader in una pipeline grafica ===
{{vedi anche|Shader}}
{{Vedi anche|Shader}}Un ipotetico processo di funzionamento, con all'interno gli shader, potrebbe essere il seguente<ref>{{Cita libro|autore=M. Bailey, S. Cunningham|titolo=Graphics Shaders: Theory and Practise|edizione=2|anno=|editore=|città=|p=|pp=|ISBN=}}</ref>:▼
▲
# La [[CPU]] invia le istruzioni e le coordinate 3D della scena alla GPU
# Nel vertex shader programmabile viene trasformata la geometria e vengono applicati alcuni effetti di illuminazione
Riga 32 ⟶ 38:
== Gestione ==
La pipeline grafica può essere gestita direttamente dal programma tramite accesso diretto all'hardware o può essere gestita tramite librerie grafiche che forniscono delle primitive di manipolazione che vengono utilizzate dal programma.<ref name=":0" /> Nella maggior parte dei casi vengono utilizzate le librerie grafiche sebbene queste introducano una leggera penalizzazione delle prestazioni permettano al programma di sfruttare le schede grafiche in commercio senza dover scrivere una versione apposita del programma per ogni tipologia di scheda grafica. Le più diffuse librerie grafiche tridimensionali sono [[OpenGL]] e [[DirectX]].
[[File:Pipeline OpenGL.svg|thumb|center|upright=2.2|Pipeline OpenGL]]
== Note ==
Riga 43 ⟶ 51:
== Voci correlate ==
* [[Computer grafica 3D]]
* [[Shader]]
== Altri progetti ==
{{interprogetto|preposizione=sulla}}
{{portale|informatica}}
|