OpenGL® 3D-modeller, i den mest generiska bemärkelsen, är samlingar av sammankopplade punkter i tredimensionell (3D) rymd, kallade hörn, som kombineras för att bilda en sekvens av polygoner som kan renderas för att representera ett objekt i ett virtuellt rum. Nästan alla 3D-objekt som inte är formprimitiver, som trianglar, kan verkligen betraktas som OpenGL® 3D-modeller. I en mer praktisk mening refererar referenser till en OpenGL® 3D-modell vanligtvis till ett komplext 3D-objekt som har konstruerats i ett 3D-modelleringsprogram. En komplett modell innehåller oftast texturer, ytnormaler och bumpkartor och, för animerade objekt, skelettinformation och vertexvikter.
OpenGL® är designat för att bara vara ett bibliotek med grafikfunktioner som används för snabba visningsrutiner, så det ger inget riktigt högnivåstöd för 3D-modeller. Istället används vanligtvis mellanliggande programmeringsbibliotek för att ladda modeller från populära filformat och placera dem i datastrukturer i minnet som kan användas av OpenGL®. Fullt realiserade OpenGL® 3D-modeller är mycket komplexa att skapa, så de görs nästan alltid med fullfjädrad modelleringsprogramvara. Även om ett bibliotek kan användas för att ladda en komplett modell i OpenGL®, kräver faktiskt implementering av funktioner som animering eller rörelse kod som skrivs av programmeraren, eftersom OpenGL® inte har någon medfödd förmåga utöver att visa modellen.
Alla OpenGL® 3D-modeller behöver inte laddas från en fil. De kan konstrueras inuti ett program med hjälp av en sekvens av algoritmer eller procedurer. Dessa procedurmässigt genererade modeller kan vara utökade primitiver, såsom en sfär eller torus, eller kan vara mer komplexa former, såsom en helix. Genom användning av fraktala algoritmer kan 3D-modeller som approximerar berg, träd eller porlande vatten göras och manipuleras efter behov.
Det finns vissa komplexiteter som kan uppstå när du använder OpenGL® 3D-modeller. Det vanligaste är problemet med att läsa in en fil, eftersom inte alla 3D-modellerare tillhandahåller specifikationen för hur en fil sparas. Ett annat problem kan vara proprietära metoder för att lagra information om hörn, texturer eller material. Detta skulle innebära att vissa delar av modellen kan laddas inverterat, eller så kan texturkartläggning vara helt värdelös.
Ett problem som kan uppstå med OpenGL® 3D-modeller, oavsett filformat, är uppdelningen av ytor från modelleraren till OpenGL®. Ytor som fyrhörningar bryts ibland upp i trianglar med en formel, medan OpenGL® kan använda en annan. Detta kan göra att modeller dyker upp med hål i ytan, och det kan vara ett problem som är svårt att lösa. Dåliga underindelningar kan också leda till modeller som har blivit överdrivet uppdelade, vilket gör att en enkel modell blir mycket minnesintensiv när antalet polygoner ökar.