Zhvilluesit e bibliotekĂ«s GTK shpallĂ«n gatishmĂ«rinĂ« e dy engineve tĂ« rinj tĂ« renderimit â "ngl" dhe "vulkan", qĂ« pĂ«rdorin API-tĂ« grafike OpenGL (GL 3.3+ dhe GLES 3.0+) dhe Vulkan. Engine tĂ« rinj janĂ« pĂ«rfshirĂ« nĂ« versionin eksperimental GTK 4.13.6. NĂ« degĂ«n eksperimentale tĂ« GTK, engine "ngl" tani pĂ«rdoret si parazgjedhje, por nĂ« rast se do tĂ« identifikohen probleme tĂ« mĂ«dha, nĂ« versionin e ardhshĂ«m tĂ« stabilizuar 4.14 do tĂ« kthehet engine i vjetĂ«r i renderimit "gl".
Engine të rinj pozicionohen si të unifikuar dhe janë të ndërtuar nga një bazë e vetme kodi. Thelbi i unifikimit është se si bazë përdoret API Vulkan, mbi të cilin për OpenGL është krijuar një nivel i veçantë abstraksioni që merr parasysh ndryshimet midis OpenGL dhe Vulkan. Ky qasje ka lejuar përdorimin e një infrastrukture të përbashkët për të dy engine-t për përpunimin e grafit të skenës, transformimeve, caching të teksteve dhe gjeveve. Unifikimi gjithashtu ka thjeshtuar ndjeshëm mirëmbajtjen e bazës së kodit të të dy engine-ve dhe mbajtjen e saj në një gjendje të përditësuar dhe të sinkronizuar.
Ndryshe nga engine i vjetër "gl", në të cilin çdo lloj nodi renderimi (rendernode) përdorte një shader të thjeshtë të veçantë dhe kryhej një renditje periodike e të dhënave gjatë renderimit jashtë skenës (offscreen), në engine të rinj përdoret një shader i komplikuar (ubershader), i cili interpreton të dhënat nga buffer-i. Në formën aktuale, implementimi i ri qëndron pas atij të vjetër për sa i përket nivelit të optimizimeve, pasi vëmendja kryesore në këtë fazë është për korrektësinë e funksionimit dhe lehtësinë e mirëmbajtjes.
Mundësitë e reja që mungojnë në engine-in e vjetër "gl":
- Antialiasing â mundĂ«son ruajtjen e detajeve tĂ« vogla dhe arritjen e konturave mĂ« tĂ« rrafshta.

- Formimi i gradientëve të rastësishëm, në të cilët mund të përdoren çdo numër ngjyrash dhe antialiasing (në engine-in "gl" janë mbështetur vetëm gradientët linearë, radialë dhe konikë me 6 ngjyra ndalimi).

- Skalimi i fraktuar (fractional scale), qĂ« lejon caktimin e vlerave tĂ« papara, pĂ«r shembull, duke pĂ«rdorur njĂ« shkallĂ« prej 125% pĂ«r njĂ« dritare 1200Ă800 do tĂ« vihet nĂ« dispozicion njĂ« buffer 1500Ă1000, jo 2400Ă1600 si nĂ« engine-in e vjetĂ«r.
- Mbështetje për teknologjinë DMA-BUF për përdorimin e disa GPU dhe për realizimin e operacioneve të veçanta në një GPU tjetër.
- Shumë nyje renditjeje trajtohen siç duhet, për të cilat ka pasur probleme në realizimin e vjetër.
Kufizimeve të reja të motorëve u është referuar mosmbështetjeja e pozicionimit me vlera jo të plota (fractional position) dhe nyjeve glshader, të cilat ishin fort të lidhura me veçoritë e motorit të vjetër dhe për të cilat ka humbur nevoja pas shtimit të mbështetjes për nyje me maska (mask) dhe tekstura me transparencë. Po ashtu, përmendet ekzistenca e mundësive për shfaqjen e problemeve të mundshme me drejtuesit grafikë, të shkaktuara nga ndryshimi i metodës së punës me drejtuesit.
Në të ardhmen, mbi bazën e modelit të ri të unifikuar, nuk përjashtohet krijimi i motorëve të renderimit që përdorin Metal në macOS dhe DirectX në Windows, por krijimi i tillë motorësh është i vështirësuar nga përdorimi i gjuhëve të tjera për shenjat (në motorët 'ngl' dhe 'vulkan' është përdorur gjuha GLSL, prandaj për Metal dhe Direct do të duhet ose të dyfishohen shenjat, ose të përdoret një ndërfaqe mbi bazën e mjetit SPIRV-Cross).
Në planet për të ardhmen, përmendet sigurimi i mbështetjes për HDR dhe mjete për menaxhimin e duhur të ngjyrës, mbështetje për rrugët e renderimit (Path rendering) në anën e GPU-së, mundësia e renderimit të glifëve, renderimi jashtë rrjedhës kryesore dhe optimizimi i performancës për pajisje më të vjetra dhe më të dobëta. Në formën aktuale, performanca e motorit 'vulkan' është e afërt me performancën e motorit të vjetër 'gl'. Motoi 'ngl' është më i vonuar në performancë se motori i vjetër 'gl', por treguesit aktualë janë të mjaftueshëm për renderim me frekuencë 60 ose 144 FPS. Pritet që situata të ndryshojë pas optimizimit.
Burimi: opennet.ru

