Modelele OpenGL® 3D, în sensul cel mai generic, sunt colecții de puncte conectate în spațiul tridimensional (3D), numite vârfuri, care se combină pentru a forma o secvență de poligoane care pot fi redate pentru a reprezenta un obiect într-un spațiu virtual. Aproape toate obiectele 3D care nu sunt forme primitive, cum ar fi triunghiurile, pot fi considerate modele 3D OpenGL®. Într-un sens mai practic, referințele la un model 3D OpenGL® se referă de obicei la un obiect 3D complex care a fost construit într-un program de modelare 3D. Un model complet include cel mai adesea texturi, normale ale suprafeței și hărți cu denivelări și, pentru obiectele animate, informații scheletice și greutăți de vârf.
OpenGL® este conceput pentru a fi doar o bibliotecă de funcții grafice care sunt utilizate pentru rutine de afișare rapidă, așa că nu oferă suport real la nivel înalt pentru modelele 3D. În schimb, bibliotecile de programare intermediare sunt de obicei folosite pentru a încărca modele din formate de fișiere populare și pentru a le plasa în structuri de date din memorie care pot fi utilizate de OpenGL®. Modelele OpenGL® 3D realizate pe deplin sunt foarte complexe de creat, așa că sunt aproape întotdeauna realizate cu un software de modelare complet. Deși o bibliotecă poate fi folosită pentru a încărca un model complet în OpenGL®, implementarea unor funcții precum animația sau mișcarea necesită scrisul codului de către programator, deoarece OpenGL® nu are nicio abilitate înnăscută în afară de afișarea modelului.
Nu toate modelele OpenGL® 3D trebuie să fie încărcate dintr-un fișier. Ele pot fi construite în interiorul unui program folosind o secvență de algoritmi sau proceduri. Aceste modele generate procedural pot fi primitive extinse, cum ar fi o sferă sau un tor, sau pot fi forme mai complexe, cum ar fi o spirală. Prin utilizarea algoritmilor fractali, modelele 3D care aproximează munții, copacii sau apa ondulată pot fi realizate și manipulate după cum este necesar.
Există unele complexități care pot apărea la utilizarea modelelor OpenGL® 3D. Cea mai frecventă este problema citirii într-un fișier, deoarece nu toți modelatorii 3D oferă specificația pentru modul în care este salvat un fișier. O altă problemă poate fi metodele proprietare pentru stocarea informațiilor despre vârfuri, texturi sau materiale. Aceasta ar însemna că unele părți ale modelului ar putea fi încărcate inversate sau maparea texturii ar putea fi complet inutilă.
O problemă care poate fi întâlnită cu modelele OpenGL® 3D, indiferent de formatul fișierului, este subdivizarea suprafețelor de la modelator la OpenGL®. Suprafețele precum patrulaterele sunt uneori împărțite în triunghiuri folosind o formulă, în timp ce OpenGL® poate folosi alta. Acest lucru poate face ca modelele să apară cu găuri pe suprafața lor și poate fi o problemă greu de rezolvat. Subdiviziunile slabe pot duce, de asemenea, la modele care au fost subdivizate excesiv, ceea ce face ca un model simplu să devină foarte consumator de memorie pe măsură ce numărul său de poligoane crește.