OpenGL eta Vulkan errendatze-motor berriak gehitu dira GTK-ra

GTK liburutegiaren garatzaileek bi errendatze-motor berriren erabilgarritasuna iragarri dute: "ngl" eta "vulkan", OpenGL (GL 3.3+ eta GLES 3.0+) eta Vulkan grafikoen APIak erabiliz. Motor berriak sartzen dira GTK 4.13.6 bertsio esperimentalean. GTK adar esperimentalean, ngl motorra lehenespenez erabiltzen da orain, baina hurrengo 4.14 adar egonkorrean arazo nabarmenak identifikatzen badira, "gl" errendatze-motor zaharra itzuliko da.

Motor berriak bateratu gisa kokatzen dira eta kode oinarri bakar batetik muntatzen dira. Batasunaren funtsa Vulkan APIa oinarri gisa erabiltzen dela da, eta horren gainean OpenGLrako abstrakzio maila bereizia sortu da, OpenGL eta Vulkanen arteko desberdintasunak kontuan hartuta. Ikuspegi honek bi motorretan azpiegitura komun bat erabiltzea posible egin zuen eszenaren grafikoa, eraldaketak, testurak eta glifoak prozesatzeko. Bateratzeak ere nabarmen erraztu zuen bi motorren kode-oinarria mantentzea eta eguneratuta eta sinkronizatuta mantenduz.

gl motor zaharrak ez bezala, errendatze-nodo mota bakoitzerako itzaltzaile sinple bereizia erabiltzen zuen eta aldian-aldian datuak berriro ordenatzen zituen pantailatik kanpo errendatzean, motor berriek pantailatik kanpo errendatzearen ordez itzalgailu konplexu bat (ubershader) erabiltzen dute, buffer-eko datuak interpretatzen dituena. . Gaur egungo forman, inplementazio berria zaharraren atzetik dago oraindik optimizazio-mailari dagokionez, egungo fasean ardatz nagusia funtzionamendu zuzena eta mantentze-erraztasuna baita.

gl motor zaharrean falta diren ezaugarri berriak:

  • Ingerada leuntzea - ​​xehetasun finak gordetzeko eta ingerada leunagoak lortzeko aukera ematen du.
    OpenGL eta Vulkan errendatze-motor berriak gehitu dira GTK-ra
  • Gradiente arbitrarioen eraketa, edozein kolore eta antialiasing erabil ditzaketenak (gl motorrean, 6 stop koloretako gradiente linealak, erradialak eta konikoak bakarrik onartzen ziren).
    OpenGL eta Vulkan errendatze-motor berriak gehitu dira GTK-ra
  • Eskala zatikatua, osoak ez diren eskala balioak ezartzeko aukera ematen duena, adibidez, 125x1200 leiho baterako %800eko eskala erabiltzean, 1500x1000ko buffer bat esleituko da, eta ez 2400x1600 motor zaharrean bezala.
  • DMA-BUF teknologiarako laguntza GPU anitz erabiltzeko eta eragiketa banakako beste GPU batera deskargatzeko.
  • Inplementazio zaharrean arazoak izan zituzten errendatze-nodo asko behar bezala prozesatzen dira.

Motor berrien mugen artean, osoko ez diren balioen (posizio zatikatua) eta glshader nodoen kokapenerako euskarririk eza daude, motor zaharraren ezaugarriei oso lotuta zeudenak eta laguntza gehitu ondoren jada beharrezkoak ez zirenak. maskarak dituzten nodoak (maskara) eta gardentasuna duten testurak. Gidariekin lan egiteko metodo aldaketak direla-eta grafiko-gidariekin arazo posibleak izateko aukera dagoela ere aipatzen da.

Etorkizunean, eredu bateratu berrian oinarrituta, Metal macOS-en eta DirectX Windows-en erabiliz errendatzeko motorrak sortzea ez da baztertzen, baina motor horien sorrera zaildu egiten da itzalgailuetarako beste hizkuntza batzuk erabiltzeagatik (Β«ngl ” eta β€œvulkan” motorrek GLSL lengoaia erabiltzen dute, beraz, Metal eta Direct-erako itzalgailuak bikoiztu edo SPIRV-Cross tresna-kitaren araberako geruza bat erabili beharko dute).

Etorkizuneko planen artean, besteak beste, HDR laguntza eta koloreak zuzen kudeatzeko tresnak eskaintzea, GPU aldean Path errendatzeko laguntza, glifoak errendatzeko gaitasuna, korrontetik kanpo errendatzea eta errendimendu-optimizazioak gailu zaharretan eta potentzia gutxiko gailuentzat. Gaur egungo forman, "vulkan" motorren errendimendua "gl" motor zaharraren errendimendutik hurbil dago. "ngl" motorra "gl" motor zaharraren errendimendua txikiagoa da, baina erabilgarri dagoen errendimendua nahikoa da 60 edo 144 FPS-tan errendatzeko. Optimizazioaren ondoren egoera aldatuko dela espero da.

Iturria: opennet.ru

Gehitu iruzkin berria