GTK teegi arendajad on teada andnud kahe uue renderdamise mootori - "ngl" ja "vulkan" - valmidusest, mis kasutavad graafilisi API-sid OpenGL (GL 3.3+ ja GLES 3.0+) ning Vulkan. Uued mootori on kaasatud eksperimentaalsesse GTK 4.13.6 vĂ€ljaandesse. Eksperimentaalses GTK harus kasutatakse mootori ngl nĂŒĂŒd vaikimisi, kuid oluliste probleemide ilmnemisel jĂ€rgmises stabiilses harus 4.14 tagastatakse vana renderdamismootor "gl".
Uued mootorid positsioneeritakse kui ĂŒhtsed ja koostatud ĂŒhest koodibaasist. Ăhtsuse mĂ”te seisneb selles, et aluseks on API Vulkan, mille peal on OpenGL jaoks loodud eraldi abstraktsioonitasand, mis arvestab OpenGL ja Vulkan vahe. Selline lĂ€henemine vĂ”imaldas mĂ”lemas mootori kasutada ĂŒhist infrastruktuuri stseenigraafi (scene graph) töötlemiseks, transformatsioonide, tekstuuride ja glĂŒĂŒpide vahemĂ€luks. Ăhtsus on samuti oluliselt lihtsustanud mĂ”lema mootori koodibaasi hooldust ja nende ajakohasena hoidmist.
Erinevalt vanast mootorest "gl", kus iga renderdamise sĂ”lme (rendernode) jaoks kasutati eraldi lihtsat shneiderit ja andmete perioodilist ĂŒmberjĂ€rjestamist kaadrivĂ€lises renderduses (offscreen), uutes mootors kasutatakse kaadrivĂ€lise renderdamise asemel keerulist shneiderit (ubershader), mis tĂ”lgendab andmeid puhvrist. Praeguses seisus jÀÀb uus rakendus senisest lahjemaks optimeerimiste tasemelt, kuna praeguses etapis keskendutakse peamiselt töö korrektsusele ja lihtsale hooldusele.
Uued vÔimalused, mida vana mootori "gl" puhul ei ole:
- Kontuuride silumine - vĂ”imaldab sĂ€ilitada vĂ€ikeseid detaile ja saavutada ĂŒhtlasemaid kontuure.

- Mugavad gradientide kujundamine, kus vÔib kasutada suvalist arvu vÀrve ja silumist (mootoris "gl" toetas vaid lineaarsed, radiaalsed ja koonuslikud gradientid 6 vÀrvi peatuses).

- Murdosa suurendamine (fractional scale), mis vĂ”imaldab seada mitte-kĂŒsimusi suuruse vÀÀrtusi, nĂ€iteks, kui kasutatakse suurust 125% akna 1200Ă800 jaoks, eraldatakse puhver 1500Ă1000, mitte 2400Ă1600 nagu vanas mootoris.
- DMA-BUF tehnoloogia tugi, et kasutada mitut GPU-d ja viia eraldi operatsioone teisele GPU-le.
- Paljusid renderdamise sÔlmi töödeldakse korrektselt, millega olid seotud probleemid vana teostuse juures.
Uute mootorite piirangute hulka kuulub tervete vÀÀrtuste (fractional position) paigutuse toetuse puudumine ning glshader sÔlmed, mis olid tugevalt seotud vana mootori eripÀradega ja mis on muutunud tarbetuks maskisÔlmede (mask) ja lÀbipaistvate tekstuuride toe lisamisel. Samuti mainitakse, et on tÔenÀolisus, et graafikadriveritega vÔivad tekkida probleemid, mis on tingitud meetodite muutumisest driver'itega töötamisel.
Tulevikus ei vĂ€listata uute ĂŒhtsete mudelite baasil joonistusmootorite loomist, mis kasutaks macOS-is Metalit ja Windowsis DirectX-i, kuid sarnaste mootrite loomist raskendab teiste keelte kasutamine shaderite jaoks (ngl ja vulkan mootrites kasutatakse GLSL-i, seega tuleb Metal ja Direct jaoks kas shaderite dubleerimist teha vĂ”i SPIRV-Cross tööriista baasil kihti kasutada).
Tuleviku plaanides mainitakse HDR toe ja vĂ€rvikorrektsiooni tööriistade tagamist, GPU kĂŒlge renderdamise tee toetust (Path rendering), glĂŒifide renderdamise vĂ”imalust, renderdamist peamise voolu vĂ€liselt ja jĂ”udluse optimeerimist vanade ja madala vĂ”imsusega seadmete jaoks. Praegu on 'vulkan' mootori jĂ”udlus lĂ€hedane vana 'gl' mootori jĂ”udlusele. 'ngl' mootori jĂ”udlus jÀÀb alla vana 'gl' mootori omale, kuid olemasolevad nĂ€itajad on piisavad, et renderdada 60 vĂ”i 144 FPS juures. Eeldatakse, et olukord muutub pĂ€rast optimeerimist.
Allikas: opennet.ru

