Në GTK janë shtuar motorët e rinj të renderimit për OpenGL dhe Vulkan

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.
    Në GTK janë shtuar motorët e rinj të renderimit për OpenGL dhe Vulkan
  • 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).
    Në GTK janë shtuar motorët e rinj të renderimit për OpenGL dhe Vulkan
  • 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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster