Što su OpenGL® 3D modeli?

OpenGL® 3D modeli, u najopćenitijem smislu, skup su povezanih točaka u trodimenzionalnom (3D) prostoru, nazvanih vrhovima, koji se kombiniraju u niz poligona koji se mogu prikazati da predstavljaju objekt u virtualnom prostoru. Gotovo svi 3D objekti koji nisu primitivi oblika, kao što su trokuti, zaista se mogu smatrati OpenGL® 3D modelima. U praktičnijem smislu, reference na OpenGL® 3D model obično se odnose na složeni 3D objekt koji je konstruiran u programu za 3D modeliranje. Cjelovit model najčešće uključuje teksture, površinske normale i karte neravnina te, za animirane objekte, informacije o skeletu i težine vrhova.

OpenGL® je dizajniran da bude samo biblioteka grafičkih funkcija koje se koriste za brze rutine prikaza, tako da ne pruža nikakvu stvarnu podršku visoke razine za 3D modele. Umjesto toga, posredničke programske knjižnice obično se koriste za učitavanje modela iz popularnih formata datoteka i njihovo postavljanje u strukture podataka u memoriji koje OpenGL® može koristiti. Potpuno realizirani OpenGL® 3D modeli vrlo su složeni za izradu, tako da se gotovo uvijek rade s potpuno opremljenim softverom za modeliranje. Iako se knjižnica može koristiti za učitavanje cijelog modela u OpenGL®, stvarna implementacija značajki kao što su animacija ili kretanje zahtijeva programer da napiše kod, jer OpenGL® nema urođenu sposobnost osim prikazivanja modela.

Ne moraju se svi OpenGL® 3D modeli učitavati iz datoteke. Mogu se konstruirati unutar programa pomoću niza algoritama ili postupaka. Ovi proceduralno generirani modeli mogu biti prošireni primitivi, kao što su kugla ili torus, ili mogu biti složeniji oblici, kao što je spirala. Korištenjem fraktalnih algoritama, 3D modeli koji aproksimiraju planine, drveće ili talasastu vodu mogu se izraditi i manipulirati po potrebi.

Postoje neke složenosti koje se mogu pojaviti pri korištenju OpenGL® 3D modela. Najčešći je problem čitanja u datoteci, jer svi 3D modeleri ne daju specifikaciju kako se datoteka sprema. Drugi problem mogu biti vlasničke metode za pohranjivanje informacija o vrhovima, teksturama ili materijalima. To bi značilo da bi se neki dijelovi modela mogli učitati obrnuto, ili bi mapiranje teksture moglo biti potpuno beskorisno.

Problem koji se može susresti s OpenGL® 3D modelima, bez obzira na format datoteke, je podjela površina od modelara do OpenGL®. Površine kao što su četverokuti ponekad su razbijene u trokute pomoću jedne formule, dok OpenGL® može koristiti drugu. To može uzrokovati pojavu modela s rupama na površini, a to može biti problem koji je teško riješiti. Loše podjele također mogu dovesti do modela koji su pretjerano podijeljeni, što uzrokuje da jednostavan model postane vrlo intenzivan u memoriji kako se njegov broj poligona povećava.