Mis on OpenGL® 3D-mudelid?

OpenGL® 3D mudelid on kõige üldisemas tähenduses ühendatud punktide kogumid kolmemõõtmelises (3D) ruumis, mida nimetatakse tippudeks ja mis koos moodustavad hulknurkade jada, mida saab renderdada, et kujutada objekti virtuaalses ruumis. Peaaegu kõiki 3D-objekte, mis ei ole kujundiprimitiivid, näiteks kolmnurgad, võib tõesti pidada OpenGL® 3D-mudeliteks. Praktilisemas mõttes viitavad viited OpenGL® 3D-mudelile tavaliselt keerukale 3D-objektile, mis on konstrueeritud 3D-modelleerimisprogrammis. Tervikmudel sisaldab enamasti tekstuure, pinnanormaale ja konaruste kaarte ning animeeritud objektide puhul skeletiteavet ja tippude kaalusid.

OpenGL® on loodud lihtsalt graafikafunktsioonide raamatukoguks, mida kasutatakse kiirete kuvamisrutiinide jaoks, nii et see ei paku 3D-mudelite jaoks tõelist kõrgetasemelist tuge. Selle asemel kasutatakse tavaliselt vahepealseid programmeerimisteeke, et laadida mudeleid populaarsetest failivormingutest ja paigutada need mällu andmestruktuuridesse, mida OpenGL® saab kasutada. Täielikult realiseeritud OpenGL® 3D-mudelite loomine on väga keeruline, seega tehakse neid peaaegu alati täisfunktsionaalse modelleerimistarkvaraga. Kuigi kogu mudeli OpenGL®-i laadimiseks saab kasutada teeki, nõuab selliste funktsioonide nagu animatsioon või liikumine tegelikult programmeerija koodi kirjutamist, sest OpenGL®-il pole peale mudeli kuvamise loomupäraseid võimeid.

Kõik OpenGL® 3D mudelid ei pea olema failist laaditud. Neid saab konstrueerida programmi sees, kasutades algoritmide või protseduuride jada. Need protseduuriliselt loodud mudelid võivad olla laiendatud primitiivid, nagu sfäär või torus, või keerulisemad kujundid, näiteks spiraal. Fraktaalgoritmide abil saab valmistada mägesid, puid või loksuvat vett umbkaudselt kirjeldavaid 3D-mudeleid ja vajadusel neid manipuleerida.

OpenGL® 3D-mudelite kasutamisel võib tekkida mõningaid keerukusi. Kõige tavalisem on faili lugemise probleem, sest mitte kõik 3D-modelleerijad ei anna faili salvestamise spetsifikatsiooni. Teiseks probleemiks võivad olla patenteeritud meetodid tippude, tekstuuride või materjalide kohta teabe salvestamiseks. See tähendaks, et mõned mudeli osad võidakse laadida tagurpidi või tekstuuri kaardistamine võib olla täiesti kasutu.

Probleem, mida võib OpenGL® 3D mudelite puhul ette tulla, olenemata failivormingust, on pindade jaotamine modelleerijast OpenGL®-i. Pinnad, nagu nelinurgad, jagatakse mõnikord kolmnurkadeks ühe valemi abil, samas kui OpenGL® võib kasutada teist valemit. See võib põhjustada mudelite ilmumist nende pinnale aukudega ja see võib olla probleem, mida on raske lahendada. Kehvad alajaotused võivad viia ka mudeliteni, mida on liiga palju jaotatud, mistõttu muutub lihtne mudel hulknurkade arvu suurenedes väga mälumahukaks.