Kas yra „OpenGL®“ šešėlių kalba?

OpenGL® šešėliavimo kalba (GLSL) yra kompiuterio programavimo kalba, sukurta specialiai manipuliuoti ir valdyti trimatę (3D) grafiką atvaizdavimo proceso metu tiesiogiai grafikos plokštės grafiniame apdorojimo bloke (GPU), naudojant OpenGL® bibliotekas. Iš esmės OpenGL® šešėliavimo kalba programuotojams suteikia tiesioginę prieigą prie 3D geometrijos ir atvaizdavimo žemiausiu įmanomu lygiu, net nereikalaujant rašyti surinkimo kalbos rutinos, kad būtų galima susieti su GPU aparatine įranga. Naudojant „OpenGL®“ šešėliavimo kalbą, tokius efektus kaip procedūriškai sugeneruotos tekstūros ir geometrija galima įdiegti ir optimizuoti tiesiogiai GPU, taip pagreitinant atvaizdavimo procesą. Tai taip pat leidžia efektyviai įgyvendinti sudėtingesnes funkcijas, pvz., animaciją ar specialiuosius efektus, nenaudojant aukštesnio lygio kodo. Atspalvio kalbą GPU sukompiliuoja į vykdomąjį kodą, o tai reiškia, kad atskiroms vaizdo plokštėms gali būti sukurti konkretūs diegimai ir kompiliatoriai, taip padidinant našumą naudojant skirtingus atspalvius.

Visais praktiniais tikslais OpenGL® šešėliavimo kalba yra visiškai įdiegta programavimo kalba, kuri beveik visais būdais imituoja C programavimo kalbos sintaksę, išskyrus rodyklės tipo kintamuosius ir kai kurias išankstinio procesoriaus direktyvas. Palaikomos vartotojo nustatytos funkcijos, kintamieji ir loginio išsišakojimo bei kilpos teiginiai, leidžiantys visiškai realizuotas programas parašyti naudojant tik atspalvio kalbą ir suteikiant abstrakcijos lygį, kurį galima perkelti skirtingose ​​​​operacinėse sistemose ir aparatinės įrangos konfigūracijose. Užbaigus šešėliavimo programą, ji perduodama GPU, kur ji sukompiliuojama ir vykdoma pagal poreikį atvaizdavimo proceso metu.

Programa, parašyta „OpenGL®“ šešėlių kalba, galiausiai perduodama GPU, kur ją gali sudaryti aparatinė įranga arba tvarkyklės, pagamintos grafikos plokštės gamintojo. Tai reiškia, kad tam tikri kalboje naudojami teiginiai gali turėti savo tikrąjį sudarytą baitų kodą, optimizuotą, kad efektyviai veiktų su konkrečiomis konkrečios vaizdo plokštės aparatinės įrangos funkcijomis. Tai padidina vykdymo greitį ir gali išplėsti pagrindines funkcijas, įtraukiant specialias atvaizdavimo parinktis ir efektus, kurie gali būti unikalūs vienai vaizdo plokštei.

Yra trijų tipų šešėliai, kuriems rašyti galima naudoti OpenGL® šešėliavimo kalbą. Pirmasis yra žinomas kaip viršūnių šešėliuotojas ir yra skirtas atlikti sudėtingas operacijas su atskiromis viršūnėmis, pavyzdžiui, perkelti, keisti mastelį ar tekstūruoti erdvės tašką. Antrasis yra geometrijos šešėliuotojas ir gali būti naudojamas pridėti, pašalinti ar kitaip manipuliuoti daugiakampiais, kol jie galiausiai rastruojami. Fragmentų šešėliuotojai, dar vadinami pikselių šešėliais, gali būti parašyti, kad būtų galima atlikti operacijas su 3D scenos taškais, nes jie paverčiami plokščiu dvimačiu (2D) vaizdu, kad būtų rodomi ekrane, pvz., apšvietimo efektai ar iškraipymai.