Skip to main content

Hvad er en OpenGL Sfære?

Et åbent grafikbibliotek og reg;(OpenGL ) Sphere, på det mest basale niveau, er et tredimensionelt (3D) objekt, der består af en række trekanter eller firkantede, hvis hjørner alle er ensartede fra et midtpunkt.Dette betyder, at når en OpenGL Kugle ses fra enhver vinkel, konturen vises som en perfekt cirkel for seeren, selvom belysning og skygge muligvis giver lydstyrken et mere kuglelignende udseende.Antallet af vertikater, der bruges til at oprette en OpenGL Kugle bestemmer objektets glathed i dens tilnærmelse af en faktisk sfære, hvor mindre end 12 punkter skaber et objekt, der ikke kan betragtes som en sfære.Selvom en kugle betragtes som en formprimitive i mange grafiske applikationer og biblioteker, openGL har ikke nogen medfødt funktionalitet til at gengive en kugle, hvilket betyder supplerende værktøjssæt, såsom OpenGL Hjælpeværktøjssæt (GLUT) skal bruges til at undgå at skrive kode til manuelt at generere formen.

Ved håndtering af vertikater i OpenGL , er det mindst mulige punkter, der kan bruges til at generere en sfære med en vis grad af glathed, 12,Oprettelse af et objekt med 20 trekantede ansigter kendt som en icosahedron.Uden yderligere behandling, en OpenGL Kugle, der er konstrueret på denne måde, vil have synlige skarpe hjørner omkring kanterne, hvilket kan være acceptabelt til nogle applikationer.For at opnå en mere afrundet sfære skal hvert ansigt være yderligere opdelt.

Underopdeling af en icosahedron for at øge antallet af vertikater, det indeholder, og danne en glattere OpenGL Kugle involverer oprettelse af nye vertikater i midten af hver kant af hver eksisterende trekant.Dette betyder, at hvert trekantet ansigt nu vil indeholde fire trekanter.Underopdelingen kan fortsætte så meget som krævet, selvom tilføjelse af point eksponentielt kan skabe et objekt, der har en høj gengivelsestid og kan blive uhåndterlig til at oversætte.

På trods af nogle af de matematiske bekvemmeligheder en OpenGL Sfære sørger for programmerere, såsom de overfladeknorm, der let kan beregnes ud fra toppunktkoordinaterne, kan teksturering af en kugle give nogle kompleksiteter.Brug af en standard to-dimensionel (2D) tekstur, der projiceres på kuglen, betyder, at de øverste og nederste områder af teksturbilledet vil blive komprimeret, fordi formen på trekanterne nær polerne på kuglen komprimeres selv.For at overvinde dette kunne terningskortlægning bruges, eller programmereren kunne generere teksturkoordinaterne manuelt for objektet.

En faktor skal bemærkes om at bruge et værktøjsbibliotek til generering af en OpenGL sfære.En kugle genereret af GLUT eller lignende værktøjssæt kan undertiden være vanskelige at ændre, optimere og styre inden for OpenGL sig selv.Af denne grund er det undertiden fordelagtigt at bruge brugerdefineret skriftlig kode til at generere en OpenGL sfære, så det er skabt og kan bruges på den mest effektive måde, der er muligt i programmet.