Į GTK buvo įtraukti nauji „OpenGL“ ir „Vulkan“ atvaizdavimo varikliai

GTK bibliotekos kūrėjai paskelbė apie du naujus atvaizdavimo variklius – „ngl“ ir „vulkan“, naudojantys OpenGL (GL 3.3+ ir GLES 3.0+) ir Vulkan grafikos API. Nauji varikliai įtraukti į eksperimentinę GTK 4.13.6 versiją. Eksperimentinėje GTK šakoje ngl variklis dabar naudojamas pagal numatytuosius nustatymus, tačiau jei kitoje stabilioje šakoje 4.14 bus nustatytos reikšmingos problemos, bus grąžintas senasis „gl“ atvaizdavimo variklis.

Nauji varikliai išdėstyti kaip vieningi ir surinkti iš vieno kodo bazės. Suvienodinimo esmė ta, kad kaip pagrindas naudojama Vulkan API, ant kurios buvo sukurtas atskiras OpenGL abstrakcijos lygis, atsižvelgiant į OpenGL ir Vulkan skirtumus. Šis metodas leido naudoti bendrą infrastruktūrą abiejuose varikliuose, kad būtų galima apdoroti scenos diagramą, transformacijas, talpyklos tekstūras ir glifus. Suvienodinimas taip pat žymiai supaprastino abiejų variklių kodų bazės priežiūrą ir jų atnaujinimą bei sinchronizavimą.

Skirtingai nuo senojo gl variklio, kuris naudojo atskirą paprastą atspalvį kiekvienam atvaizdavimo mazgo tipui ir periodiškai iš naujo rūšiuodavo duomenis neekrano atvaizdavimo metu, naujieji varikliai vietoj atvaizdavimo už ekrano naudoja sudėtingą atspalvį (ubershader), kuris interpretuoja duomenis iš buferio. . Dabartiniu pavidalu naujasis diegimas optimizavimo lygiu vis dar atsilieka nuo senojo, nes pagrindinis dėmesys dabartiniame etape yra teisingas veikimas ir priežiūros paprastumas.

Naujos funkcijos, kurių trūksta senajame gl variklyje:

  • Kontūrų išlyginimas – leidžia išsaugoti smulkias detales ir pasiekti lygesnius kontūrus.
    Į GTK buvo įtraukti nauji „OpenGL“ ir „Vulkan“ atvaizdavimo varikliai
  • Savavališkų gradientų formavimas, galintis naudoti bet kokį spalvų skaičių ir anti-aliasing (gl variklyje buvo palaikomi tik linijiniai, radialiniai ir kūginiai gradientai su 6 stabdymo spalvomis).
    Į GTK buvo įtraukti nauji „OpenGL“ ir „Vulkan“ atvaizdavimo varikliai
  • Trupmenų skalė, leidžianti nustatyti ne sveikųjų skaičių skalės reikšmes, pavyzdžiui, naudojant 125% skalę 1200x800 langui, bus skiriamas 1500x1000 buferis, o ne 2400x1600, kaip senajame variklyje.
  • DMA-BUF technologijos palaikymas, skirtas naudoti kelis GPU ir atskirų operacijų perkėlimą į kitą GPU.
  • Daugelis atvaizdavimo mazgų, kurie turėjo problemų naudojant seną diegimą, yra tinkamai apdorojami.

Naujųjų variklių trūkumai apima padėties nustatymą pagal ne sveikųjų skaičių reikšmes (trupmeninę padėtį) ir glshader mazgus, kurie buvo labai susieti su senojo variklio savybėmis ir kurie nebereikalingi pridėjus palaikymą. mazgai su kaukėmis (kaukė) ir tekstūros su skaidrumu. Taip pat minima, kad dėl darbo su tvarkyklėmis metodo pasikeitimų gali kilti problemų su grafikos tvarkyklėmis.

Ateityje, remiantis naujuoju unifikuotu modeliu, neatmetama galimybė sukurti atvaizdavimo variklius naudojant Metalą MacOS ir DirectX sistemoje Windows, tačiau tokių variklių kūrimą apsunkina kitų kalbų naudojimas šešėliams (angl. “ ir „vulkan“ varikliai naudoja GLSL kalbą, todėl „Metal“ ir „Direct“ turės arba dubliuoti atspalvius, arba naudoti sluoksnį, pagrįstą SPIRV-Cross įrankių rinkiniu).

Ateities planai apima HDR palaikymą ir teisingo spalvų valdymo įrankius, kelio atvaizdavimo GPU pusėje palaikymą, galimybę atvaizduoti glifus, atvaizdavimą ne sraute ir našumo optimizavimą senesniems ir mažai energijos vartojantiems įrenginiams. Dabartiniu pavidalu „vulkan“ variklio našumas yra artimas senojo „gl“ variklio našumui. „ngl“ variklis savo našumu yra prastesnis už senąjį „gl“ variklį, tačiau turimo našumo pakanka, kad būtų galima atkurti 60 arba 144 FPS. Tikimasi, kad po optimizavimo situacija pasikeis.

Šaltinis: opennet.ru

Добавить комментарий