Hvad er en OpenGL® -sfære?

Et åbent grafikbibliotek® (OpenGL®) sfære på det mest basale niveau er et tredimensionelt (3D) objekt, der består af en række trekanter eller firkanter, hvis vertikater alle er ensartede fra et midtpunkt. Dette betyder, at når en OpenGL®-sfære ses fra en hvilken som helst vinkel, vises konturen som en perfekt cirkel for seeren, selvom belysning og skygge muligvis giver lydstyrken et mere boldlignende udseende. Antallet af vertikater, der bruges til at skabe en OpenGL® -sfære, 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 kugle. Selvom en sfære betragtes som en formprimitive i mange grafiske applikationer og biblioteker, har OpenGL® ikke nogen medfødt funktionalitet til at gengive en sfære, hvilket betyder supplerende værktøjssæt, såsom OpenGL® Utility Toolkit (GLUT)ICES i OpenGL®, er den mindst mængde punkter, der kan bruges til at generere en kugle med en vis grad af glathed, 12, hvilket skaber et objekt med 20 trekantede ansigter kendt som en Icosahedron. Uden yderligere behandling vil en OpenGL® -sfære konstrueret på denne måde 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.

Opdeling af en icosahedron for at øge antallet af vertikater, den indeholder, og danne en glattere OpenGL® -sfære involverer at skabe nye vertikater i midten af ​​hver kant af hver eksisterende trekant. Dette betyder, at hvert trekantet ansigt nu vil indeholde fire trekanter. Underafdelingen kan fortsætte så meget som krævet, selvom tilføjelse af point eksponentielt kan skabe et objekt, der har en tid med høj render og kan blive uhåndterlig til at oversætte.

på trods af some af de matematiske bekvemmeligheder En OpenGL® -sfære giver programmerere, såsom overfladingnormaler, der let kan beregnes ud fra toppunktets koordinater, kan teksturering af en sfære 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 hjælpebibliotek 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® selv. Af denne grund er det undertiden fordelagtigt at bruge brugerdefineret skriftlig kode til at generere en OpenGL® -sfære, så det er oprettet og kan bruges på den mest effektive måde, der er muligt W.ITHIN programmet.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?