Vad är ett OpenGL® -skuggningsspråk?
OpenGL® Shading Language (GLSL) är ett datorprogrammeringsspråk utformat specifikt för att manipulera och kontrollera tredimensionell (3D) grafik under renderingsprocessen direkt inom den grafiska processenheten (GPU) för ett grafikkort med OpenGL®-bibliotek. I huvudsak ger OpenGL® Shading Language programmerare direkt tillgång till 3D -geometri och rendering på den lägsta nivån som möjligt utan att faktiskt behöva skriva monteringsspråkrutiner för att gränssnitt med GPU -hårdvara. Genom att använda OpenGL® -skuggningsspråket kan effekter såsom procedurellt genererade strukturer och geometri implementeras och optimeras direkt inom GPU, och påskyndar återgivningsprocessen. Det gör det också möjligt att implementera mer komplexa funktioner, såsom animation eller specialeffekter, utan att kodens omkostnader effektivt. Skuggningsspråket sammanställs av GPU till körbar kod, vilket innebär att specifika implementeringar och kompilatorer kan utformas förIndividuella grafikkort, ökar prestandan från att använda de olika skuggarna.
För alla praktiska ändamål är OpenGL®-skuggningsspråket ett fullt implementerat programmeringsspråk som efterliknar syntaxen för C-programmeringsspråket på nästan alla sätt, med undantag för variabler av pointer-typ och vissa förprocessordirektiv. Användardefinierade funktioner, variabler och logiska förgrening och slingande uttalanden stöds alla, vilket gör att fullt realiserade program kan skrivas med bara Shader-språket och tillhandahålla en abstraktionsnivå som är bärbar mellan olika operativsystem och hårdvarukonfigurationer. När ett skuggprogram är klart överförs det till GPU, där det sammanställs och körs efter behov under renderingsprocessen.
Ett program skrivet på OpenGL® -skuggningsspråket överförs i slutändan till GPU, där det kan sammanställas av HARDWare eller drivrutiner som produceras av tillverkaren av grafikkortet. Detta innebär att vissa uttalanden som används inuti språket kan ha sin faktiska sammanställda bytekod optimerat för att fungera effektivt med de specifika hårdvarufunktionerna på ett specifikt grafikkort. Detta ökar exekveringshastigheten och kan utöka den grundläggande funktionaliteten till att inkludera specialreationsalternativ och effekter som kan vara unika för ett enda grafikkort.
Det finns tre typer av skuggare som OpenGL® -skuggningsspråket kan användas för att skriva. Den första är känd som en vertex -skuggare och är utformad för att utföra komplexa operationer på enskilda vertikaler, såsom att översätta, skala eller strukturera en punkt i rymden. Den andra är en geometri -skuggare och kan användas för att lägga till, ta bort eller på annat sätt manipulera polygoner innan de så småningom raseras. Fragment Shaders, även kallade pixelskuggare, kan skrivas för att utföra operationer på punkter i 3D-scenen när de översätts till en platt tvådimensionell (2D)Bild för display på en skärm, till exempel belysningseffekter eller distorsioner.