Kaj je OpenGL® Sphere?

Sfera Open Graphics Library® (OpenGL®), na najosnovnejši ravni, je tridimenzionalni (3D) objekt, sestavljen iz niza trikotnikov ali štirikotnikov, katerih oglišča so enako oddaljena od središčne točke. To pomeni, da se ob gledanju krogle OpenGL® iz katerega koli kota obris zdi gledalcu popoln krog, čeprav lahko osvetlitev in senčenje dajeta volumnu bolj kroglični videz. Število oglišč, uporabljenih za ustvarjanje krogle OpenGL®, določa gladkost predmeta v njegovi približevanju dejanski krogli, pri čemer manj kot 12 točk ustvari predmet, ki ga ni mogoče šteti za kroglo. Čeprav se krogla v številnih grafičnih aplikacijah in knjižnicah šteje za primitivno obliko, OpenGL® nima nobene prirojene funkcionalnosti za upodabljanje krogle, kar pomeni, da je treba uporabiti dodatne komplete orodij, kot je komplet orodij OpenGL® (GLUT), da se izognemo pisanju kode. za ročno generiranje oblike.

Ko se ukvarjamo z oglišči v OpenGL®, je najmanjše število točk, ki jih je mogoče uporabiti za generiranje krogle z določeno stopnjo gladkosti, 12, kar ustvarja objekt z 20 trikotnimi ploskvami, znanimi kot ikosaeder. Brez nadaljnje obdelave bo tako izdelana krogla OpenGL® imela vidne ostre vogale okoli robov, kar bi lahko bilo sprejemljivo za nekatere aplikacije. Da bi dosegli bolj zaobljeno kroglo, je treba vsak obraz dodatno razdeliti.

Razdelitev ikosaedra za povečanje števila vozlišč, ki jih vsebuje, in oblikovanje bolj gladke sfere OpenGL® vključuje ustvarjanje novih vozlišč v središču vsakega roba vsakega obstoječega trikotnika. To pomeni, da bo vsak trikotni obraz zdaj vseboval štiri trikotnike. Razdelitev se lahko nadaljuje, kolikor je potrebno, čeprav lahko eksponentno dodajanje točk hitro ustvari objekt, ki ima dolg čas upodabljanja in lahko postane okoren za prevajanje.

Kljub nekaterim matematičnim udobjem, ki jih OpenGL® krogla nudi programerjem, kot so normalne površine, ki jih je mogoče zlahka izračunati iz koordinat vrhov, lahko teksturiranje krogle predstavlja nekaj zapletenosti. Uporaba standardne dvodimenzionalne (2D) teksture, projicirane na kroglo, pomeni, da bosta zgornji in spodnji del slike teksture stisnjeni, ker se oblika trikotnikov blizu polov krogle stisne sama. Da bi to premagali, bi lahko uporabili preslikavo kocke ali pa bi programer lahko ročno ustvaril koordinate teksture za predmet.

Pri uporabi knjižnice pripomočkov za generiranje krogle OpenGL® je treba opozoriti na en dejavnik. Sfero, ki jo ustvari GLUT ali podobni kompleti orodij, je včasih težko spremeniti, optimizirati in upravljati znotraj samega OpenGL®. Zaradi tega je včasih koristno uporabiti napisano kodo po meri za generiranje sfere OpenGL®, tako da se ustvari in se lahko uporablja na najbolj učinkovit način v programu.