Wat is een OpenGL® -schaduwtaal?
De OpenGL®-schaduwtaal (GLSL) is een computerprogrammeertaal die speciaal is ontworpen om driedimensionale (3D) graphics tijdens het renderingproces direct binnen de grafische verwerkingseenheid (GPU) van een grafische kaart te manipuleren en te regelen met behulp van OpenGL®-bibliotheken. In wezen geeft OpenGL® -schaduwtaal programmeurs directe toegang tot 3D -geometrie en weergave op het laagst mogelijke niveau zonder daadwerkelijk assemblagetaalroutines te schrijven om te communiceren met GPU -hardware. Door het gebruik van de OpenGL® -schaduwtaal, kunnen effecten zoals procedureel gegenereerde texturen en geometrie direct binnen de GPU worden geïmplementeerd en geoptimaliseerd, waardoor het renderingproces wordt versneld. Het maakt het ook mogelijk om complexere functies, zoals animatie of speciale effecten, efficiënt te implementeren zonder de overhead van code op een hoger niveau. De schaduwtaal wordt door de GPU samengesteld in uitvoerbare code, wat betekent dat specifieke implementaties en compilers kunnen worden ontworpenIndividuele grafische kaarten, waardoor de prestaties worden verhoogd door de verschillende shaders te gebruiken.
Voor alle praktische doeleinden is de OpenGL®-schaduwtaal een volledig geïmplementeerde programmeertaal die de syntaxis van de C-programmeertaal in bijna alle manieren nabootst, met uitzondering van pointer-type variabelen en enkele preprocessor-richtlijnen. Door de gebruiker gedefinieerde functies, variabelen en logische vertakkings- en lusverklaringen worden allemaal ondersteund, waardoor volledig gerealiseerde programma's kunnen worden geschreven met alleen de shader-taal en een abstractieniveau bieden dat draagbaar is in verschillende besturingssystemen en hardwareconfiguraties. Zodra een Shader -programma is voltooid, wordt het doorgegeven aan de GPU, waar het wordt samengesteld en uitgevoerd indien nodig tijdens het renderingproces.
Een programma geschreven in de OpenGL® -schaduwtaal wordt uiteindelijk doorgegeven aan de GPU, waar het kan worden samengesteld door HARDware of stuurprogramma's geproduceerd door de fabrikant van de grafische kaart. Dit betekent dat bepaalde uitspraken die in de taal worden gebruikt, hun werkelijke samengestelde bytecode kunnen hebben geoptimaliseerd om efficiënt te werken met de specifieke hardwarefuncties van een specifieke grafische kaart. Dit verhoogt de snelheid van de uitvoering en kan de basisfunctionaliteit uitbreiden met speciale renderingopties en -effecten die uniek kunnen zijn voor een enkele grafische kaart.
Er zijn drie soorten shaders die de OpenGL® -schaduwtaal kan worden gebruikt om te schrijven. De eerste staat bekend als een Vertex Shader en is ontworpen om complexe bewerkingen uit te voeren op individuele hoekpunten, zoals het vertalen, schalen of texteren van een punt in de ruimte. De tweede is een geometrie shader en kan worden gebruikt om polygonen toe te voegen, te verwijderen of anderszins te manipuleren voordat ze uiteindelijk worden gerasterd. Fragment Shaders, ook wel pixel shaders genoemd, kunnen worden geschreven om bewerkingen uit te voeren op punten in de 3D-scène, omdat ze worden vertaald in een plat tweedimensionaal (2D)Afbeelding voor weergave op een scherm, zoals lichteffecten of vervormingen.