GTK-sse on lisatud uued OpenGL-i ja Vulkani renderdusmootorid

GTK teegi arendajad on teatanud kahe uue renderdusmootori – “ngl” ja “vulkan” – kättesaadavusest, kasutades OpenGL-i (GL 3.3+ ja GLES 3.0+) ja Vulkani graafika API-sid. Uued mootorid on lisatud GTK 4.13.6 eksperimentaalsesse väljalasesse. Eksperimentaalses GTK harus kasutatakse nüüd vaikimisi ngl-mootorit, kuid kui järgmises stabiilses harus 4.14 tuvastatakse olulisi probleeme, tagastatakse vana "gl" renderdusmootor.

Uued mootorid on positsioneeritud ühtsetena ja kokku pandud ühest koodialusest. Unifitseerimise olemus seisneb selles, et aluseks on võetud Vulkan API, mille peale on OpenGL-i jaoks loodud eraldi abstraktsioonitase, arvestades OpenGL-i ja Vulkani erinevusi. See lähenemine võimaldas kasutada mõlemas mootoris ühist infrastruktuuri stseenigraafiku, teisenduste, vahemällu tekstuuride ja glüüfide töötlemiseks. Ühtlustamine lihtsustas oluliselt ka mõlema mootori koodibaasi hooldust ning nende ajakohasena ja sünkroniseerituna hoidmist.

Erinevalt vanast gl-mootorist, mis kasutas iga renderdussõlme tüübi jaoks eraldi lihtsat varjutajat ja sorteeris andmeid perioodiliselt ümber ekraanivälise renderduse ajal, kasutavad uued mootorid ekraanivälise renderduse asemel keerukat varjutajat (ubershader), mis tõlgendab puhvrist pärinevaid andmeid. . Praegusel kujul jääb uus teostus optimeerimistasemelt endiselt vanast maha, kuna praeguses etapis on põhirõhk õigel toimimisel ja hoolduse lihtsusel.

Uued funktsioonid, mis vanas gl-mootoris puuduvad:

  • Kontuuride silumine – võimaldab säilitada peeneid detaile ja saavutada sujuvamaid kontuure.
    GTK-sse on lisatud uued OpenGL-i ja Vulkani renderdusmootorid
  • Suvaliste gradientide moodustamine, mis võivad kasutada mis tahes arvu värve ja antialiasingut (gl-mootoris toetati ainult lineaarseid, radiaalseid ja koonusekujulisi gradiente 6 stoppvärviga).
    GTK-sse on lisatud uued OpenGL-i ja Vulkani renderdusmootorid
  • Fraktsiooniline skaala, mis võimaldab teil määrata mittetäisarvulisi skaala väärtusi, näiteks kui kasutate 125% skaalat 1200x800 akna jaoks, eraldatakse puhver suurusega 1500x1000, mitte 2400x1600 nagu vanas mootoris.
  • DMA-BUF-tehnoloogia tugi mitme GPU kasutamiseks ja üksikute toimingute teisele GPU-le mahalaadimiseks.
  • Paljusid renderdussõlmi, millel oli vanas teostuses probleeme, töödeldakse õigesti.

Uute mootorite piirangud hõlmavad mittetäisarvuliste väärtuste (fraktsiooniline asend) ja glshaderi sõlmede alusel positsioneerimise toe puudumist, mis olid tugevalt seotud vana mootori omadustega ja mis ei olnud pärast toe lisamist enam vajalikud. sõlmed maskidega (mask) ja tekstuurid läbipaistvusega. Samuti mainitakse, et draiveritega töötamise meetodi muudatuste tõttu võivad tekkida probleemid graafika draiveritega.

Tulevikus ei ole uue ühtse mudeli põhjal välistatud renderdusmootorite loomine MacOS-is Metalli ja Windowsis DirectX-i abil, kuid selliste mootorite loomist raskendab varjundite jaoks muude keelte kasutamine (“ngl ” ja „vulkan” mootorid kasutavad GLSL-i keelt, nii et Metall ja Direct peavad kas dubleerima varjutajaid või kasutama SPIRV-Crossi tööriistakomplektil põhinevat kihti).

Tulevased plaanid hõlmavad HDR-i toe ja tööriistade pakkumist õigeks värvihalduseks, teekonna renderdamise tuge GPU poolel, glüüfide renderdamise võimalust, voovälist renderdamist ning jõudluse optimeerimist vanemate ja vähese energiatarbega seadmete jaoks. Praegusel kujul on "vulkan" mootori jõudlus lähedane vana "gl" mootori jõudlusele. "ngl" mootor on jõudluses halvem kui vana "gl" mootor, kuid saadaolev jõudlus on piisav 60 või 144 kaadrit sekundis renderdamiseks. Eeldatakse, et pärast optimeerimist olukord muutub.

Allikas: opennet.ru

Lisa kommentaar