Hva er et OpenGL® skyggespråk?
OpenGL® Shading Language (GLSL) er et dataprogrammeringsspråk designet spesielt for å manipulere og kontrollere tredimensjonal (3D) grafikk under gjengivelsesprosessen direkte innenfor den grafiske prosesseringsenheten (GPU) til et grafikkort ved hjelp av OpenGL®-biblioteker. I hovedsak gir OpenGL® Shading Language programmerere direkte tilgang til 3D -geometri og gjengivelse på det laveste nivået som mulig uten å måtte skrive monteringsspråkrutiner for å grensesnitt mot GPU -maskinvare. Gjennom bruk av OpenGL® Shading -språket kan effekter som prosessuelt genererte teksturer og geometri implementeres og optimaliseres direkte i GPU, noe som fremskynder gjengivelsesprosessen. Det gjør at mer komplekse funksjoner, for eksempel animasjon eller spesialeffekter, kan implementeres effektivt uten overhead av kode på høyere nivå. Skyggespråket er samlet av GPU til kjørbar kode, noe som betyr at spesifikke implementeringer og kompilatorer kan utformes forIndividuelle grafikkort, øker ytelsesgevinstene ved å bruke de forskjellige skyggeleggerne.
For alle praktiske formål er OpenGL® Shading Language et fullt implementert programmeringsspråk som etterligner syntaksen til C-programmeringsspråket på nesten alle måter, med unntak av pekertypevariabler og noen forprosessoredirektiver. Brukerdefinerte funksjoner, variabler og logiske forgrenings- og looping-setninger støttes alle, slik at fullt realiserte programmer kan skrives ved hjelp av bare Shader-språket, og gir et abstraksjonsnivå som er bærbart på tvers av forskjellige operativsystemer og maskinvarekonfigurasjoner. Når et Shader -program er fullført, sendes det til GPU, der det er samlet og utført etter behov under gjengivelsesprosessen.
Et program skrevet på OpenGL® skyggespråket sendes til slutt til GPU, hvor det kan kompileres av HARDware eller drivere produsert av produsenten av grafikkortet. Dette betyr at visse utsagn som brukes inne i språket kan ha sin faktiske kompilerte bytecode optimalisert for å jobbe effektivt med de spesifikke maskinvarefunksjonene til et spesifikt grafikkort. Dette øker utførelseshastigheten og kan utvide den grunnleggende funksjonaliteten til å omfatte spesielle gjengivelsesalternativer og effekter som kan være unike for et enkelt grafikkort.
Det er tre typer skyggelegger som OpenGL® skyggespråk kan brukes til å skrive. Den første er kjent som en Vertex Shader og er designet for å utføre komplekse operasjoner på individuelle hjørner, for eksempel å oversette, skalere eller teksturere et punkt i verdensrommet. Det andre er en geometri -skyggelegger og kan brukes til å legge til, fjerne eller på annen måte manipulere polygoner før de til slutt blir rastert. Fragment Shaders, også kalt Pixel Shaders, kan skrives for å utføre operasjoner på punkter i 3D-scenen når de blir oversatt til en flat todimensjonal (2D)Bilde for visning på en skjerm, for eksempel lyseffekter eller forvrengninger.