I modelli OpenGL® 3D, nel senso più generico, sono raccolte di punti collegati nello spazio tridimensionale (3D), chiamati vertici, che si combinano per formare una sequenza di poligoni che possono essere renderizzati per rappresentare un oggetto in uno spazio virtuale. Quasi tutti gli oggetti 3D che non sono primitive di forma, come i triangoli, possono essere considerati modelli 3D OpenGL®. In un senso più pratico, i riferimenti a un modello 3D OpenGL® di solito si riferiscono a un oggetto 3D complesso che è stato costruito in un programma di modellazione 3D. Un modello completo include molto spesso trame, normali alla superficie e mappe di rilievo e, per gli oggetti animati, informazioni scheletriche e pesi dei vertici.
OpenGL® è progettato per essere solo una libreria di funzioni grafiche utilizzate per routine di visualizzazione veloci, quindi non fornisce alcun supporto reale di alto livello per i modelli 3D. Invece, le librerie di programmazione intermedie vengono solitamente impiegate per caricare modelli da formati di file popolari e inserirli in strutture di dati in memoria che possono essere utilizzate da OpenGL®. I modelli 3D OpenGL® completamente realizzati sono molto complessi da creare, quindi vengono quasi sempre realizzati con un software di modellazione completo. Sebbene una libreria possa essere utilizzata per caricare un modello completo in OpenGL®, l’implementazione di funzionalità come l’animazione o il movimento richiede che il codice venga scritto dal programmatore, perché OpenGL® non ha capacità innate oltre alla visualizzazione del modello.
Non tutti i modelli OpenGL® 3D devono essere caricati da un file. Possono essere costruiti all’interno di un programma utilizzando una sequenza di algoritmi o procedure. Questi modelli generati proceduralmente possono essere primitive estese, come una sfera o un toro, o possono essere forme più complesse, come un’elica. Attraverso l’uso di algoritmi frattali, è possibile creare e manipolare modelli 3D che approssimano montagne, alberi o acqua increspata secondo necessità.
Ci sono alcune complessità che possono sorgere quando si utilizzano modelli 3D OpenGL®. Il più comune è il problema della lettura di un file, perché non tutti i modellatori 3D forniscono le specifiche su come salvare un file. Un altro problema possono essere i metodi proprietari per memorizzare informazioni su vertici, trame o materiali. Ciò significherebbe che alcune parti del modello potrebbero essere caricate invertite o la mappatura delle texture potrebbe essere completamente inutile.
Un problema che si può incontrare con i modelli 3D OpenGL®, indipendentemente dal formato del file, è la suddivisione delle superfici dal modellatore a OpenGL®. Le superfici come i quadrilateri vengono talvolta suddivise in triangoli utilizzando una formula, mentre OpenGL® potrebbe utilizzarne un’altra. Ciò può causare la comparsa di modelli con fori sulla superficie e può essere un problema difficile da risolvere. Suddivisioni scadenti possono anche portare a modelli che sono stati eccessivamente suddivisi, facendo sì che un modello semplice diventi molto dispendioso in memoria all’aumentare del numero di poligoni.