OpenGL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 2 fonte/i e segnalazione di 1 link interrotto/i.) #IABot (v2.0.9.5 |
|||
Riga 38:
* nascondere le capacità offerte dai diversi acceleratori 3D, richiedendo che tutte le implementazioni supportino completamente l'insieme di funzioni OpenGL, ricorrendo ad un'emulazione software se necessario.
Il compito di OpenGL è quello di ricevere primitive come punti, linee e poligoni, e di convertirli in pixel (''rasterizing'' o [[rasterizzazione]]). Ciò è realizzato attraverso una [[pipeline grafica]] nota come ''OpenGL state machine''<ref>
OpenGL è una API procedurale che opera a basso livello, che richiede al programmatore i passi precisi per disegnare una scena. Questo approccio si pone in contrasto con le API descrittive ad alto livello le quali, operando su [[Albero (grafo)|struttura dati ad albero]] (''scene graph''), richiedono al programmatore solo una descrizione generica della scena, occupandosi dei dettagli più complessi del [[rendering]]. La natura di OpenGL obbliga quindi i programmatori ad avere una buona conoscenza della pipeline grafica stessa, ma al contempo lascia una certa libertà per implementare complessi algoritmi di ''rendering''.
Riga 113:
OpenGL 2 è stato concepito da [[3Dlabs]] per soddisfare le preoccupazioni che OpenGL fosse stagnante e mancasse di una forte direzione.
3Dlabs ha proposto alcune grosse aggiunte allo standard, la più significativa delle quali fu [[GLSL]] (da ''Open'''GL''' '''S'''hading '''L'''anguage'', cioè il linguaggio di shading di OpenGL). Questo consentirebbe ai programmatori di sostituire il codice prefissato di OpenGL per le pipeline di elaborazione dei vertici e dei frammenti con gli shader scritti in un linguaggio simile al [[Linguaggio C|C]]. GLSL era notevole per il fatto di non adeguarsi all'hardware allora disponibile; questo era un ritorno alla tradizione di OpenGL di porsi degli obiettivi ambiziosi e proiettati al futuro per nuovi acceleratori 3D, invece di limitarsi a inseguire lo stato dell'hardware attualmente disponibile.
La specifica finale di OpenGL 2.0<ref>{{Cita web |url=https://www.opengl.org/documentation/specs/version2.0/glspec20.pdf |titolo=Copia archiviata |accesso=3 maggio 2019 |dataarchivio=11 novembre 2019 |urlarchivio=https://web.archive.org/web/20191111182032/https://www.opengl.org/documentation/specs/version2.0/glspec20.pdf |urlmorto=sì }}</ref> comprendeva il supporto a GLSL, ma ometteva molte delle altre caratteristiche originalmente proposte - queste sono state differite a versioni future di OpenGL, sebbene alcune siano già disponibili come estensioni.
==== OpenGL 2.0 ====
|