Hva er en OpenGL®-sfære?
En åpen grafikkbibliotek® (OpenGL®) sfære, på det mest grunnleggende nivået, er et tredimensjonalt (3D) objekt som består av en serie trekanter eller firkantede sider hvis vertikater alle er like store fra et midtpunkt. Dette betyr at når en OpenGL®-sfære blir sett fra alle vinkler, vises omrisset som en perfekt sirkel for betrakteren, selv om belysning og skyggelegging kan gi volumet et mer balllignende utseende. Antall vertekser som brukes til å lage en OpenGL®-sfære, bestemmer objektets glatthet i dens tilnærming til en faktisk sfære, med mindre enn 12 punkter som skaper et objekt som ikke kan betraktes som en sfære. Selv om en sfære er ansett som en primitiv form i mange grafiske applikasjoner og biblioteker, har OpenGL® ikke noen medfødt funksjonalitet for å gjengi en sfære, noe som betyr at tilleggsverktøyer som OpenGL® verktøyverktøysett (GLUT) må brukes for å unngå å skrive kode å manuelt generere formen.
Når du arbeider med toppunkt i OpenGL®, er den minste mengden punkter som kan brukes til å generere en kule med en viss grad av glatthet 12, og skaper et objekt med 20 trekantede flater kjent som en icosahedron. Uten videre behandling vil en OpenGL®-sfære konstruert på denne måten ha synlige skarpe hjørner rundt kantene, noe som kan være akseptabelt for noen applikasjoner. For å oppnå en mer avrundet sfære, må hvert ansikt deles videre.
Å dele en icosahedron for å øke antallet vertikater den inneholder og danne en jevnere OpenGL®-sfære innebærer å lage nye toppunkt i midten av hver kant av hver eksisterende trekant. Dette betyr at hvert trekantet ansikt nå vil inneholde fire trekanter. Underavdelingen kan fortsette så mye som kreves, selv om å legge til poeng eksponentielt raskt kan lage et objekt som har høy gjengittid og kan bli uhåndterlig å oversette.
Til tross for noen av de matematiske bekvemmelighetene som en OpenGL®-sfære gir for programmerere, for eksempel overflatenormalene som lett kan beregnes fra toppunktkoordinatene, kan teksturering av en sfære gi noen kompleksiteter. Å bruke en standard todimensjonal (2D) tekstur projisert på sfæren betyr at de øverste og nedre områdene av teksturbildet blir komprimert, fordi formen til trekantene nær polene i sfæren er komprimert selv. For å få bukt med dette kan kubekartlegging brukes eller programmereren kan generere teksturkoordinatene manuelt for objektet.
En faktor bør bemerkes om bruk av et hjelpebibliotek for generering av en OpenGL®-sfære. En sfære generert av GLUT eller lignende verktøysett kan noen ganger være vanskelig å endre, optimalisere og administrere i OpenGL®. Av denne grunn er det noen ganger fordelaktig å bruke tilpasset skrevet kode for å generere en OpenGL®-sfære, slik at den er opprettet og kan brukes på en mest mulig effektiv måte i programmet.