GTK ir pievienotas jaunas renderēŔanas programmas OpenGL un Vulkan

GTK bibliotēkas izstrādātāji ir paziņojuÅ”i par divu jaunu renderÄ“Å”anas dzinēju ā€“ ā€œnglā€ un ā€œvulkanā€ ā€“ pieejamÄ«bu, izmantojot OpenGL (GL 3.3+ un GLES 3.0+) un Vulkan grafikas API. Jauni dzinēji ir iekļauti GTK 4.13.6 eksperimentālajā izlaidumā. Eksperimentālajā GTK zarā tagad pēc noklusējuma tiek izmantots ngl dzinējs, taču, ja nākamajā stabilajā zarā 4.14 tiks konstatētas bÅ«tiskas problēmas, vecais "gl" renderÄ“Å”anas dzinējs tiks atgriezts.

Jaunie dzinēji ir novietoti kā vienoti un samontēti no vienas koda bāzes. Unifikācijas bÅ«tÄ«ba ir tāda, ka par pamatu tiek izmantots Vulkan API, kuram virsÅ« ir izveidots atseviŔķs abstrakcijas lÄ«menis OpenGL, ņemot vērā atŔķirÄ«bas starp OpenGL un Vulkan. Å Ä« pieeja ļāva izmantot kopÄ«gu infrastruktÅ«ru abos dzinējos, lai apstrādātu ainas grafiku, transformācijas, keÅ”atmiņas tekstÅ«ras un glifus. Unifikācija arÄ« ievērojami vienkārÅ”oja abu dzinēju kodu bāzes uzturÄ“Å”anu un to atjaunināŔanu un sinhronizāciju.

AtŔķirÄ«bā no vecā gl dzinēja, kas izmantoja atseviŔķu vienkārÅ”u ēnotāju katram renderÄ“Å”anas mezgla veidam un periodiski pārkārtoja datus ārpusekrāna renderÄ“Å”anas laikā, jaunie dzinēji ārpusekrāna renderÄ“Å”anas vietā izmanto sarežģītu ēnotāju (ubershader), kas interpretē datus no bufera. . PaÅ”reizējā formā jaunā ievieÅ”ana joprojām atpaliek no vecās optimizācijas lÄ«meņa ziņā, jo paÅ”reizējā posmā galvenā uzmanÄ«ba tiek pievērsta pareizai darbÄ«bai un apkopes vienkārŔībai.

Jaunas funkcijas, kuru trūkst vecajā gl dzinējā:

  • KontÅ«ru izlÄ«dzināŔana ā€“ ļauj saglabāt smalkas detaļas un panākt gludākas kontÅ«ras.
    GTK ir pievienotas jaunas renderēŔanas programmas OpenGL un Vulkan
  • Patvaļīgu gradientu veidoÅ”ana, kas var izmantot jebkuru krāsu skaitu un pretapstrādi (gl dzinējā tika atbalstÄ«ti tikai lineāri, radiāli un koniski gradienti ar 6 pieturas krāsām).
    GTK ir pievienotas jaunas renderēŔanas programmas OpenGL un Vulkan
  • Frakcionālā skala, kas ļauj iestatÄ«t skalas vērtÄ«bas, kas nav veseli skaitļi, piemēram, izmantojot 125% skalu logam 1200x800, tiks pieŔķirts buferis 1500x1000, nevis 2400x1600 kā vecajā dzinējā.
  • DMA-BUF tehnoloÄ£ijas atbalsts vairāku GPU lietoÅ”anai un atseviŔķu darbÄ«bu pārsÅ«tÄ«Å”anai uz citu GPU.
  • Daudzi renderÄ“Å”anas mezgli, kuriem bija problēmas vecajā implementācijā, tiek apstrādāti pareizi.

Jauno dzinēju ierobežojumi ietver atbalsta trÅ«kumu pozicionÄ“Å”anai pēc vērtÄ«bām, kas nav veseli skaitļi (frakcionēta pozÄ«cija) un glshader mezgliem, kas bija cieÅ”i saistÄ«ti ar vecā dzinēja funkcijām un kas vairs nebija nepiecieÅ”ami pēc atbalsta pievienoÅ”anas mezgli ar maskām (maska) un faktÅ«ras ar caurspÄ«dÄ«gumu. Tāpat tiek minēts, ka ir iespējamas problēmas ar grafikas draiveriem, kas var rasties sakarā ar izmaiņām darbā ar draiveriem.

Nākotnē, pamatojoties uz jauno vienoto modeli, nav izslēgta renderÄ“Å”anas dzinēju izveide, izmantojot Metal operētājsistēmā MacOS un DirectX operētājsistēmā Windows, taču Ŕādu dzinēju izveidi sarežģī citu valodu izmantoÅ”ana ēnotājiem (ā€œngl ā€ un ā€œvulkanā€ dzinēji izmanto GLSL valodu, tāpēc Metal un Direct bÅ«s vai nu jādublē ēnotāji, vai jāizmanto slānis, kura pamatā ir SPIRV-Cross rÄ«kkopa).

Nākotnes plānos ietilpst nodroÅ”ināt HDR atbalstu un rÄ«kus pareizai krāsu pārvaldÄ«bai, atbalstu ceļa renderÄ“Å”anai GPU pusē, spēju renderēt glifus, ārpus plÅ«smas renderÄ“Å”anu un veiktspējas optimizāciju vecākām un mazjaudas ierÄ«cēm. PaÅ”reizējā formā "vulkan" dzinēja veiktspēja ir tuvu vecā "gl" dzinēja veiktspējai. "ngl" dzinēja veiktspēja ir zemāka par veco "gl" dzinēju, taču pieejamā veiktspēja ir pietiekama, lai renderētu ar 60 vai 144 FPS. Paredzams, ka pēc optimizācijas situācija mainÄ«sies.

Avots: opennet.ru

Pievieno komentāru