OpenGL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v2.0beta14) |
m Bot: passaggio degli url da HTTP a HTTPS |
||
Riga 31:
I membri fondatori dell'ARB comprendevano aziende del calibro di [[3Dlabs]], [[Apple]], [[ATI Technologies]], [[Dell]], [[IBM]], [[Intel]], [[NVIDIA Corporation|NVIDIA]], [[Silicon Graphics|SGI]], [[Sun Microsystems]] e [[Microsoft]], che però ha abbandonato il gruppo nel marzo del 2003. Il coinvolgimento di così tante aziende con interessi molto diversificati, ha portato OpenGL a diventare nel tempo una API ad uso generico, con un ampio ventaglio di capacità.
Il controllo di OpenGL è passato, ad inizio 2007, al consorzio Khronos Group, nel tentativo di migliorarne il marketing e di rimuovere le barriere tra lo sviluppo di OpenGL e [[OpenGL ES]]<ref>[
== Struttura ==
Riga 39:
* 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 114:
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>
==== OpenGL 2.0 ====
Riga 127:
Pubblicato il 2 luglio [[2006]].
OpenGL 2.1 introduce un supporto per i ''pixel buffer objects'' (PBOs), sRGB textures (gamma-corrected textures), e per matrici ''non-quadre'', oltre alla revisione 1.20 dello ''Shading Language GLSL''<ref>[
* Schede: Radeon GD 2350, GeForce FX (dotate di driver 175.19), GeForce 6000 series, GeForce 7000 series, GeForce Go 7000 series, Quadro FX 4000, Quadro FX 350, Quadro FX 550, Quadro FX 560, Quadro FX 1400, Quadro FX 1500, Quadro FX 5500 e successive.
Riga 137:
Pubblicato l'11 luglio [[2008]].
OpenGL 3.0 introduce il supporto per funzioni di geometry shader, frame buffer objects, hardware instancing, vertex array objects (VAOs), e sRGB framebuffers (gamma 2.2)<ref>
* Schede: Radeon HD series; GeForce 8000, 9000, GTX 100, GTX 200, e GTX 300 series.
==== OpenGL 3.1 ====
Riga 143:
Pubblicato il 28 maggio [[2009]].
OpenGL 3.1 aggiunge una serie di features per rendere le API più convenienti all'uso, oltre ad uno spettro di features orientate alla performance<ref>[
Con la pubblicazione di OpenGL 3.1 è stata introdotta un'estensione di compatibilità che permette agli sviluppatori di accedere alle funzionalità deprecate di OpenGL 1.X/2.X e rimosse in OpenGL 3.1.
Riga 179:
==== OpenGL 4.2 ====
Pubblicato l'8 agosto [[2011]].<ref>[
==== OpenGL 4.3 ====
Pubblicato il 6 agosto [[2012]].<ref>[
Questa versione introduce, tra le altre cose, la versione 4.30 del linguaggio di shading GLSL, il nuovo metodo di compressione delle texture ETC2/EAC, le texture views e la piena compatibilità con [[OpenGL ES#OpenGL ES 3.0|OpenGL ES 3.0]].
Riga 304:
== Il futuro in Microsoft Windows ==
Il 6 agosto [[2005]], quelle che in principio erano le intenzioni di Microsoft riguardo al supporto di OpenGL in [[Windows Vista]] vennero rivelate in annuncio di notizie su Opengl.org<ref>[
{{citazione|I piani attuali di Microsoft per OpenGL su Windows Vista sono di appoggiare OpenGL sopra Direct3D al fine di usare OpenGL su un desktop composito per ottenere l'esperienza Aeroglass. Se si esegue un ICD OpenGL - il desktop compositor si spegnerà - degradando significativamente l'esperienza dell'utente.
Riga 319:
Allora, il futuro di OpenGL come libreria principale per i video giochi sembrava precario. Microsoft aveva preso la decisione di non pubblicare le informazioni necessarie per permettere a terze parti (come [[NVIDIA Corporation|NVIDIA]], [[ATI Technologies|ATI]] o gli altri grandi costruttori di schede) di sviluppare i driver di sostituzione, non lasciando modo di evitare il calo di velocità del 50%.
Forse proprio a seguito delle pressioni che giungevano dal mondo dell'industria del software e dagli stessi produttori hardware, Microsoft ha in seguito rivisto questa politica e sono oggi disponibili ICD in grado di funzionare senza problemi in unione al sottosistema Aeroglass, senza calo di prestazioni. Si veda a tal proposito la presentazione relativa ad OpenGL su Windows Vista pubblicata da NVIDIA al SIGGRAPH 2006<ref>[
Così come per il predecessore [[Windows XP]], anche il CD di installazione di [[Windows Vista]] non include alcun ICD (Installable Client Driver), che dovrà essere installato a cura dell'utente. In mancanza di un ICD, Vista fornisce comunque funzionalità OpenGL 1.4 senza estensioni, attraverso uno strato di emulazione basato su Direct3D.
Il futuro di OpenGL in ambito videoludico è quindi ora nelle mani dei produttori di videogiochi, i quali non sembrano comunque molto propensi all'utilizzo di questa API, come dimostrerebbe anche una decisione di uno dei suoi più illustri sostenitori in questo ambito, ovvero [[John Carmack]] di [[id Software]]. Quest'ultimo ha infatti affermato<ref>[
== Note ==
Riga 345:
== Collegamenti esterni ==
* {{cita web|
* {{en}} [
=== Risorse per programmatori ===
* {{en}} [
* {{en}} [http://nehe.gamedev.net/ NeHe Productions] - Tutorial per la programmazione con OpenGL
* {{en}} [https://web.archive.org/web/20060116010741/http://www.codesampler.com/oglsrc.htm CodeSampler.com] - Esempi di codice e tutorial per la programmazione di giochi in OpenGL 1.2-2.0
|