OpenGL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
Nessun oggetto della modifica
Riga 1:
{{da tradurre|inglese}}
{{wikificare}}
'''OpenGL''' (da '''Open''' '''G'''raphics '''L'''ibrary, ossia libreria aperta di grafica) è una specifica che definisce una API per più linguaggi e per più piattaforme per scrivere applicazioni che producono [[computer grafica]] 3D e 2D. L'interfaccia consiste in circa 250 diverse chiamate di funzione che si possono usare per disegnare complesse sxcene tridimensionali da semplici primitive. È molto usato nell'industria dei videogiochi (nella quale compete con Direct3D su Microsoft Windows). OpenGL viene usato anche per applicazioni di CAD, realtà virtuale, e CAE.
 
Esistono implementazioni efficienti di OpenGL (che sfruttano in modo più o meno completo le [[GPU]]) per [[Microsoft Windows]], molte piattaforme [[Unix]], la Playstation 3, e il Mac OS. Queste implementazioni vengono normalmente fornite dai costruttori di dispositivi video e si affidano pesantemente sull'hardware fornito dal costruttore. La libreria ''open source'' ''Mesa'' è un'API grafica basata solamente su librerie software che è compatibile con OpenGL. Tuttavia, a causa della licenza, può solo sostenere di di essere un'API "molto simile".
Riga 15:
Può succedere che più di un produttore si accordi per implementare la stessa funzionalità estesa.
 
In tal caso, si usa l'abbreviazione ''EXT''.
In that case, the abbreviation ''EXT'' is used. It may further happen that the Architecture Review Board "blesses" the extension. It then becomes known as a ''standard extension'', and the abbreviation ''ARB'' is used. The first ARB extension was <code>GL_ARB_multitexture</code>. Following the official extension promotion path, multitexturing is no longer an optionally implemented ARB extension, but has been a part of the OpenGL core API since version 1.4.
Può anche accadere che l'ARB approvi l'estensione.
Specifications for nearly all extensions can be found at the official extension repository [http://oss.sgi.com/projects/ogl-sample/registry/].
Allora essa diventa nota come una ''estensione standard'', e si usa l'abbreviazione ''ARB''.
La prima estensione ARB è stata la <code>GL_ARB_multitexture</code>.
Avendo seguito il percorso di promozione per le estensioni ufficiali, la multitexture non è più un'estensione ARB implementata opzionalmente, ma è stata integrata nell'API base di OpenGL a partire dalla versione 1.4.
Le specifiche per quasi tutte le estensioni si trovano nel repository ufficiale delle estensioni: [http://oss.sgi.com/projects/ogl-sample/registry/].
 
SeveralVarie librarieslibrerie aresono builtstate oncostruite top ofsopra OpenGL toper providefornire featuresfunzionalità notnon availabledisponibili in OpenGL itselfstesso:
 
* [[GLU]]
Riga 24 ⟶ 28:
* [[GLUI]]
 
In particularparticolare, thela libreria [[OpenGL Performer]] library, developedsviluppata byda SGI ande availabledisponibile forper [[IRIX]], [[Linux]], ande severalvarie versionsversioni ofdi [[Microsoft Windows]], buildssi onappoggia a OpenGL toper enableabilitare thela creationcreazione ofdi applicazioni di simulazione visuale in [[Real-time computing|real-time]] visual simulation applications.
 
==BindingsBinding==
 
InAl orderfine todi enforceimporre itsle sue caratteristiche multi-languagelinguaggio ande multi-platform characteristicspiattaforma, variousvari [[binding (computer science)|bindings]] ande [[porting|portsport]] havesono beenstati developedsviluppati forper OpenGL in manymolti languageslinguaggi. MostTra notablyi più notevoli, thela libreria [[Java 3D]] librarypuò canappoggiarsi rely onsu OpenGL forper itssfruttare l'accelerazione hardware acceleration. VeryMolto recentlyrecentemente, Sun hasha releasedrilasciato le versioni beta versionsdel of thesistema JOGL system, whichche providesfornisce directbinding bindingsai tocomandi OpenGL in [[C programming language|C]] OpenGL commands, unlikediversamente da Java 3D whichche doesnon notfornisce providetale suchsupporto lowa levelbasso supportlivello. Thela OpenGLpagina officialOpenGL pageufficiale [http://www.opengl.org/] listselenca variousvari bindings forper i linguaggi [[Java programming language|Java]], [[Fortran 90]], [[Perl]], [[Pike programming language|Pike]], [[Python programming language|Python]], [[Ada programming language|Ada]], ande [[Visual Basic]]. BindingsI binding aresono alsodisponibili availableanche forper [[C plus plus|C++]] ande [[C Sharp programming language|C#]], seevedere [http://www.exocortex.org/3dengine/].
 
==Funzionalità ad alto livello==
==Higher level functionality==
 
OpenGL è sato progettato per essere di solo output: fornisce solamente funzioni di [[rendering]]. L'API di base non contempla la gestione di finestre, l'audio, la stampa, la tastiera, il mouse, né altri dispositivi di input. Per quanto questo può sembrare restrittivo, permette al codice di rendering di essere completamente indipendente dal [[sistema operativo]] su cui funziona, permettendo lo sviluppo di codice indipendente dalla piattaforma.
OpenGL was designed to be output-only: it provides only [[rendering (computer graphics)|rendering]] functions. The core API has no concept of [[windowing system]]s, audio, [[Digital printing|printing]], keyboard/mouse, or other [[input device]]s. While this seems restrictive at first, it allows the code that does the rendering to be completely independent of the [[operating system]] it is running on, allowing cross-platform development. However some integration with the native windowing system is required to allow clean interaction with the host system. This is performed through the following add-on APIs:
Tuttavia, per consentire un'interazione con il sistema ospitante, è necessario integrare il software con il sistema a finestre nativo.
Ciò viene effettuato tramite le seguenti API aggiuntive:
 
* [[GLX]] - X11 (includingcomprensivo networkdi transparencytrasparenza di rete)
* [[WGL]] - [[Microsoft]] Windows]]
 
AdditionallyIn theaggiunta le librerie [[GLUT]] ande [[Simple DirectMedia Layer|SDL]] librariesforniscono providefunzionalità functionalityper foruna basicgestione windowingelementare usingdelle finestre con OpenGL, in a portablemanera mannerportabile.
[[Mac OS X]] hasha threetre APIsAPI toper getottenere OpenGLil supportsupporto di OpenGL: [[AGL (API)|AGL]] forper [[Carbon (API)|Carbon]], [[NSOpenGL]] forper [[Cocoa (API)|Cocoa]] ande [[CGL]] forper directl'accesso accessdiretto.
 
==History==