title: O3D
text: # O3D
  
  O3D è una API JavaScript realizzata da Google per la creazione di applicazioni grafiche interattive 3D. La libreria è open source ed è distribuita sotto licenza BSD.
  
  ## Caratteristiche
  
  O3D è distribuito sotto forma di plugin, utilizzabile da tutti i principali browser: Safari, Chrome, Firefox ed Internet Explorer. Si tratta di un plugin con un'accelerazione di rendering particolarmente potente, per cui i requisiti di sistema, necessari per il corretto funzionamento del plugin, sono piuttosto elevati. O3D è un plugin ad alto livello, come può essere Flash (obsoleto dal 2020) o Silverlight, ed è principalmente rivolto ai sviluppatori di giochi 3D.
  
  L'architettura software di O3D è composta da due diverse componenti: una parte realizzata in C e C++ per l'interfaccia con l'hardware e per le chiamate alle librerie OpenGL o Direct3D. L'altra componente che rappresenta l'applicazione ad alto livello è realizzata in JavaScript e si basa sul concetto di scene-graph.
  
  O3D è visto come colmare il divario tra applicazioni grafiche accelerate 3D basate su desktop e browser web basati su HTML. I sostenitori affermano che la creazione di un motore grafico 3D completo che può essere scaricato ed eseguito tramite browser Web può eliminare la necessità di installare applicazioni di grandi dimensioni su un computer desktop locale. Ciò consente a O3D di massimizzare la riutilizzabilità tra le risorse dell'applicazione, fornendo al contempo un'interfaccia robusta alla CPU e alla GPU del client utilizzando JavaScript.
  
  In origine, O3D utilizzava un'architettura basata su plug-in che consentiva agli sviluppatori di terze parti di integrare funzionalità personalizzate come effetti pre e post rendering, sistemi di particelle e / o motori fisici, ad esempio. È importante notare che il plugin è stato scritto in C che comunicava direttamente con l'hardware, quindi la velocità del rendering della scena dipendeva in gran parte dalla scheda grafica del computer che lo rendeva. Gran parte di questa stessa funzionalità è incorporata in WebGL.
  
  Il vantaggio principale di O3D rispetto ai motori di rendering 3D alternativi basati su desktop o console è che O3D può caricare, eseguire il rendering e trasformare i modelli e le rispettive trame dinamicamente, utilizzando AJAX e / o COMET in tempo reale. La compilazione tradizionale del codice sorgente, delle risorse dell'applicazione e delle librerie di oggetti non è più necessaria, poiché tutti questi aspetti vengono caricati in tempo reale. Queste risorse remote possono essere progettate, sviluppate e mantenute al di fuori del rendering principale o dell'applicazione di visualizzazione all'interno di un tipico MVC orientato agli oggetti. Il risultato diretto di ciò, semplifica esplicitamente lo sviluppo di ricche applicazioni 3D, poiché non è necessario ricompilare l'applicazione O3D per modifiche alle risorse. Ciò consente un approccio più robusto e distributivo durante la progettazione di applicazioni 3D.
  
  Il 7 maggio 2010, Google ha annunciato che O3D sarebbe passato da un plugin a una libreria JavaScript in esecuzione su WebGL.
  
  