Mikä on OpenGL® Sphere?

Open Graphics Library® (OpenGL®) -sfääri, alkeellisimmalla tasolla, on kolmiulotteinen (3D) objekti, joka koostuu sarjasta kolmioita tai nelikulmia, joiden kärkipisteet ovat yhtä kaukana keskipisteestä. Tämä tarkoittaa sitä, että kun OpenGL®-palloa katsellaan mistä tahansa kulmasta, ääriviivat näkyvät katsojalle täydellisenä ympyränä, vaikka valaistus ja varjostus voivat antaa äänenvoimakkuudelle pallomaisemman ulkonäön. OpenGL® -pallon luomiseen käytettyjen kärkien lukumäärä määrää objektin sileyden sen lähentäessä todellista palloa, ja alle 12 pistettä luo objektin, jota ei voida pitää pallona. Vaikka palloa pidetään muodon primitiivisenä monissa graafisissa sovelluksissa ja kirjastoissa, OpenGL®: llä ei ole luontaisia ​​toimintoja pallon muodostamiseen, joten lisätyökaluja, kuten OpenGL® Utility Toolkit (GLUT), on käytettävä koodin kirjoittamisen välttämiseksi muodon luomiseksi manuaalisesti.

Kun käsitellään OpenGL®: n kärkipisteitä, vähiten pisteitä, joita voidaan käyttää jonkinlaisen sileyden muodostavan pallon luomiseen, on 12, jolloin muodostuu objekti, jossa on 20 kolmikulmaista kasvoa, jotka tunnetaan ikosaedrinä. Ilman lisäkäsittelyä tällä tavalla rakennetussa OpenGL® -pallossa on näkyviä teräviä kulmia reunojen ympärillä, mikä saattaa olla hyväksyttävää joissakin sovelluksissa. Pyöreämmän pallon saavuttamiseksi jokainen kasvot on jaettava edelleen osiin.

Ikososaedrin jakaminen osiin sen sisältämien pisteiden määrän lisäämiseksi ja tasaisemman OpenGL® -pallon muodostamiseksi edellyttää uusien kärkien luomista jokaisen olemassa olevan kolmion jokaisen reunan keskelle. Tämä tarkoittaa, että jokainen kolmionmuotoinen pinta sisältää nyt neljä kolmiota. Alajako voi jatkua niin paljon kuin tarvitaan, vaikka pisteiden lisääminen eksponentiaalisesti voi nopeasti luoda objektin, jolla on pitkä renderointiaika ja joka voi tulla hankalaksi kääntää.

Huolimatta joistakin matemaattisista mukavuuksista, joita OpenGL® -pallo tarjoaa ohjelmoijille, kuten pinnan normaalit, jotka voidaan helposti laskea kärkipisteiden koordinaateista, pallon teksturointi voi aiheuttaa joitain monimutkaisuuksia. Palloon projisoidun tavanomaisen kaksiulotteisen (2D) kuvion käyttäminen tarkoittaa, että tekstuurikuvan ylä- ja alaalue pakataan, koska pallon napojen lähellä olevien kolmioiden muoto pakataan itse. Tämän ratkaisemiseksi voitaisiin käyttää kuutiokartoitusta tai ohjelmoija voisi luoda tekstuurikoordinaatit manuaalisesti objektille.

Yksi tekijä on otettava huomioon apukirjaston käyttämisessä OpenGL® -pallon luomiseen. GLUT: n tai vastaavien työkalupakkien tuottamaa palloa voi joskus olla vaikea muokata, optimoida ja hallita itse OpenGL®: ssä. Tästä syystä on joskus hyödyllistä käyttää mukautettua kirjoitettua koodia OpenGL® -pallon luomiseen, jotta se luodaan ja sitä voidaan käyttää mahdollisimman tehokkaasti ohjelman sisällä.