Guider

▷ Opengl: hva er det og hva er det for

Innholdsfortegnelse:

Anonim

Har du noen gang hørt om OpenGL ? Det ble raskt bransjens ledende grafikk-API i sanntid, ettersom det i utgangspunktet var det eneste som er tilgjengelig på flere plattformer. I dag gir vi deg denne artikkelen der vi forklarer hva OpenGL er og hva den er til for.

Innholdsindeks

historie

80-tallet var en virkelig utfordring for utviklere å utvikle programvare som var kompatibel med et bredt spekter av maskinvare relatert til den grafiske verdenen. Du måtte håndtere veldig forskjellige grensesnitt og skrive spesifikke drivere for hver type maskinvare, og være veldig dyre, derfor ble team av programmerere outsourcet for å fremskynde utviklingen. Siden hvert team jobbet hver for seg på sine grensesnitt, ble det produsert mye overflødig kode. I 1992 ledet SGI opprettelsen av OpenGL Architecture Review Board (OpenGL ARB), en gruppe selskaper som ville opprettholde og utvide spesifikasjonen i de påfølgende årene. OpenGL utviklet seg fra IRIS GL og overviste maskinvareavhengighetsproblemet ved å tilby programvareemulering for de funksjonene som ikke støttes. Dermed kan applikasjoner bruke avansert grafikk på relativt svake systemer.

For å forstå hva OpenGL er, må vi først vite hva en API er.

Forstå OpenGL, hva er et API?

Et API eller applikasjonsprogrammeringsgrensesnitt er et sett med koder som kan brukes til forskjellige applikasjoner for å kommunisere med hverandre. Det er noe som utfører en oppgave som ligner brukergrensesnittet når det gjelder å fremme interaksjon mellom person og program, kun brukt kun og utelukkende i programvaremiljøet. Det brukes til å koble koder eller funksjoner mellom forskjellige plattformer, slik at du kan dra nytte av tjenestene til ett nettsted på et annet.

Hva er OpenGL?

Det blir hovedsakelig betraktet som et API som gir oss et stort sett med funksjoner som vi kan bruke til å manipulere 3D- og 2D-grafikk og bilder. Imidlertid er det i seg selv ikke bare et API, men en spesifikasjon, utviklet og vedlikeholdt av Khronos Group. Den brukes også til videospillutvikling, der den konkurrerer med Direct3D på Microsoft-plattformen.

Angir nøyaktig hva utgangen til hver funksjon skal være og hvordan den skal fungere. Siden OpenGL-spesifikasjonen ikke inneholder implementeringsdetaljer, kan de faktiske utviklede versjonene ha forskjellige implementeringer, så lenge resultatene er i samsvar med spesifikasjonen (og derfor er de samme for brukeren).

Utviklere av OpenGL-biblioteker er vanligvis produsentene av grafikkort. Hver GPU støtter spesifikke versjoner av dette API, som er OpenGL-versjoner utviklet spesielt for det grafikkortet. Når du for eksempel bruker et system fra et selskap som Apple, opprettholder de OpenGL-biblioteket, og under Linux er det en kombinasjon av grafikkleverandørversjoner og tilpasninger for disse bibliotekene. Dette kan bety at når OpenGL viser merkelig oppførsel som det ikke skal, er det sannsynlig feilen til grafikkortprodusentene. Hver gang det er en feil i implementeringen, løses det vanligvis ved å oppdatere grafikkortdriverne. Disse driverne inkluderer de nyeste versjonene som GPU-en støtter. Av denne grunn anbefales det alltid å oppdatere driverne.

OpenGL-mål

Hovedmålene er:

  • Reduser kompleksiteten i grensesnittet med de forskjellige grafikkortene , og presenterer programmereren et unikt og ensartet API. Skjul de forskjellige mulighetene til forskjellige maskinvareplattformer , og krever at alle implementeringer støtter hele settet med OpenGL-funksjoner (ved bruk av programvareemulering om nødvendig).

OpenGLs grunnleggende operasjon er å akseptere primitive handlinger som punkter, linjer og polygoner, og konvertere dem til piksler. Denne prosessen utføres av en grafisk rørledning kjent som OpenGL State Machine. De fleste OpenGL-kommandoer utgir primitive operasjoner for grafsegmentering. Inntil versjonen 2.0 ble utgitt, ble hvert trinn i segmenteringen utført i en etablert funksjon, noe som resulterte i liten konfigurerbarhet. Fra denne versjonen er flere stadier fullt programmerbare ved bruk av GLSL.

utvidelser

En veldig interessant flott funksjon er utvidelsesstøtten. Hver gang et selskap med GPUer introduserer en ny teknologi eller en ny måte å optimalisere for å gjengi 3D-bilder , er det i en utvidelse implementert i driverne. Hvis maskinvaren en applikasjon kjører på støtter denne utvidelsen, kan utvikleren bruke funksjonaliteten som leveres av utvidelsen for å få mer avansert eller effektiv grafikk. På denne måten kan en videospillutvikler bruke disse nye gjengivelsesteknikkene uten å måtte vente på at OpenGL inkluderer funksjonaliteten i fremtidige versjoner, ganske enkelt ved å sjekke om grafikkortet støtter utvidelsen. Ofte, når en utvidelse er populær eller veldig nyttig, blir den til slutt en del av fremtidige versjoner av OpenGL.

VI ANBEFALER deg Mad Max slipper støtte for Vulkan i sin nye offentlige beta for Linux

OpenGL evolusjon

I mars 2015 ble Vulkan API introdusert som etterfølgeren til OpenGL på Game Developers Conference. Opprinnelig kjent som "Next Generation OpenGL" eller "glNext", programmeringsgrensesnittet er åpen kildekode og kryssplattform. Forskjellen med OpenGL er at mer oppmerksomhet rettes mot maskinvare under programmering, noe som øker effekten betydelig. Noen PC-spill støtter allerede Vulkan, men de fleste bruker DirectX. Vulkan er også utviklet av Khronos Group.

Vi anbefaler å lese de beste grafikkortene på markedet.

Foreløpig artikkelen vår om OpenGL, forhåpentligvis har du forstått hva den består av og mer. Uansett kan du legge igjen spørsmål i kommentarene.

Guider

Redaktørens valg

Back to top button