Mitä OpenGL® 3D -mallit ovat?

OpenGL® 3D -mallit ovat yleisessä mielessä kokoelmia kolmiulotteisessa (3D) -tilassa olevista toisiinsa yhdistetyistä pisteistä, joita kutsutaan huippukohdiksi. Nämä yhdistelmät muodostavat monikulmiojärjestyksen, joka voidaan esittää edustamaan kohdetta virtuaalitilassa. Lähes kaikkia 3D -objekteja, jotka eivät ole muodon primitiivejä, kuten kolmioita, voidaan todella pitää OpenGL® 3D -malleina. Käytännön kannalta viittaukset OpenGL® 3D -malliin viittaavat yleensä monimutkaiseen 3D -objektiin, joka on rakennettu 3D -mallinnusohjelmassa. Täydellinen malli sisältää useimmiten tekstuureja, pinnan normaaleja ja kuoppakarttoja sekä animoitujen kohteiden osalta luustotietoja ja kärkipainoja.

OpenGL® on suunniteltu vain kirjastoksi grafiikkatoiminnoista, joita käytetään nopeisiin näyttörutiineihin, joten se ei tarjoa todellista korkean tason tukea 3D-malleille. Sen sijaan välittäjäohjelmointikirjastoja käytetään yleensä mallien lataamiseen suosituista tiedostomuodoista ja niiden sijoittamiseen muistiin tietorakenteisiin, joita OpenGL® voi käyttää. Täysin toteutetut OpenGL® 3D -mallit ovat erittäin monimutkaisia ​​luoda, joten ne tehdään lähes aina täydellisellä mallinnusohjelmistolla. Vaikka kirjastoa voidaan käyttää koko mallin lataamiseen OpenGL®: ään, todelliset ominaisuudet, kuten animaatio tai liike, edellyttävät ohjelmoijan kirjoittamaa koodia, koska OpenGL®: llä ei ole muita ominaisuuksia kuin mallin näyttäminen.

Kaikkia OpenGL® 3D -malleja ei tarvitse ladata tiedostosta. Ne voidaan rakentaa ohjelman sisällä käyttämällä algoritmeja tai menettelytapoja. Nämä prosessuaalisesti luodut mallit voivat olla laajennettuja primitiivejä, kuten pallo tai torus, tai ne voivat olla monimutkaisempia muotoja, kuten kierre. Fraktaalialgoritmien avulla voidaan tehdä ja muokata 3D -malleja, jotka lähentävät vuoria, puita tai aaltoilevaa vettä.

OpenGL® 3D -malleja käytettäessä voi esiintyä monimutkaisuuksia. Yleisin on tiedoston lukemiseen liittyvä ongelma, koska kaikki 3D -mallinnusohjelmat eivät määrittele tiedoston tallennustapaa. Toinen ongelma voi olla patentoidut menetelmät tietojen tallentamiseksi kärkipisteistä, tekstuureista tai materiaaleista. Tämä tarkoittaisi, että jotkin mallin osat voitaisiin ladata käänteisesti tai tekstuurikartoitus voi olla täysin hyödytöntä.

Ongelma, joka voi ilmetä OpenGL® 3D -malleissa tiedostomuodosta riippumatta, on pintojen jakaminen mallinnuksesta OpenGL® -muotoon. Pinnat, kuten nelikulmiot, jaetaan joskus kolmioihin käyttämällä yhtä kaavaa, kun taas OpenGL® saattaa käyttää toista. Tämä voi aiheuttaa malleja, joiden pinnassa on reikiä, ja se voi olla ongelma, jota on vaikea ratkaista. Huono alajako voi myös johtaa malleihin, jotka on jaettu liikaa, jolloin yksinkertaisesta mallista tulee erittäin muistin intensiivinen sen monikulmioiden määrän kasvaessa.