OpenGL-ի և Vulkan-ի համար նոր ռենդերային շարժիչներ ավելացվել են GTK-ին

GTK գրադարանի մշակողները հայտարարել են երկու նոր արտապատկերման շարժիչների առկայության մասին՝ «ngl» և «vulkan»՝ օգտագործելով OpenGL (GL 3.3+ և GLES 3.0+) և Vulkan գրաֆիկական API-ները: GTK 4.13.6-ի փորձնական թողարկումում ներառված են նոր շարժիչներ: Փորձարարական GTK ճյուղում ngl շարժիչն այժմ օգտագործվում է լռելյայն, բայց եթե հաջորդ կայուն ճյուղում հայտնաբերվեն էական խնդիրներ, ապա կվերադարձվի հին «gl» մատուցման շարժիչը:

Նոր շարժիչները տեղադրվում են որպես միասնական և հավաքվում են մեկ ծածկագրի բազայից: Միավորման էությունն այն է, որ որպես հիմք օգտագործվում է Vulkan API-ն, որի վերևում OpenGL-ի համար ստեղծվել է առանձին աբստրակցիոն մակարդակ՝ հաշվի առնելով OpenGL-ի և Vulkan-ի տարբերությունները։ Այս մոտեցումը հնարավորություն տվեց օգտագործել ընդհանուր ենթակառուցվածք երկու շարժիչներում՝ տեսարանի գրաֆիկի, փոխակերպումների, քեշավորման հյուսվածքների և հոլովակների մշակման համար: Միավորումը նաև զգալիորեն պարզեցրեց երկու շարժիչների կոդերի բազայի պահպանումը և դրանց արդիականությունն ու համաժամացումը:

Ի տարբերություն հին gl շարժիչի, որն օգտագործում էր առանձին պարզ շեյդեր յուրաքանչյուր տեսակի ռենդերային հանգույցի համար և պարբերաբար վերադասավորում էր տվյալները էկրանից դուրս ցուցադրման ժամանակ, նոր շարժիչները արտաէկրանային ռենդերավորման փոխարեն օգտագործում են բարդ շեյդեր (ubershader), որը մեկնաբանում է տվյալները բուֆերից։ . Իր ներկայիս տեսքով նոր ներդրումը դեռևս հետ է մնում հինից՝ օպտիմալացումների մակարդակով, քանի որ ներկա փուլում հիմնական շեշտը դրված է ճիշտ շահագործման և պահպանման հեշտության վրա:

Նոր առանձնահատկություններ, որոնք բացակայում են հին gl շարժիչում.

  • Եզրագծերի հարթեցում - թույլ է տալիս պահպանել նուրբ մանրամասները և հասնել ավելի հարթ ուրվագծերի:
    OpenGL-ի և Vulkan-ի համար նոր ռենդերային շարժիչներ ավելացվել են GTK-ին
  • Կամայական գրադիենտների ձևավորում, որոնք կարող են օգտագործել ցանկացած քանակի գույներ և հակաալիզինգ (gl շարժիչում ապահովվել են միայն գծային, շառավղային և կոնաձև գրադիենտներ՝ 6 կանգառ գույներով):
    OpenGL-ի և Vulkan-ի համար նոր ռենդերային շարժիչներ ավելացվել են GTK-ին
  • Կոտորակային սանդղակ, որը թույլ է տալիս սահմանել ոչ ամբողջական սանդղակի արժեքներ, օրինակ՝ 125x1200 պատուհանի համար 800% սանդղակ օգտագործելիս կհատկացվի 1500x1000 բուֆեր, և ոչ թե 2400x1600, ինչպես հին շարժիչում:
  • Աջակցություն DMA-BUF տեխնոլոգիային մի քանի GPU-ների օգտագործման և առանձին գործողություններ մեկ այլ GPU-ի վրա բեռնելու համար:
  • Շատ ռենդերային հանգույցներ, որոնք խնդիրներ ունեին հին իրականացման ժամանակ, ճիշտ են մշակվում:

Նոր շարժիչների սահմանափակումները ներառում են ոչ ամբողջ թվային արժեքներով (կոտորակային դիրք) և glshader հանգույցներով դիրքավորման աջակցության բացակայությունը, որոնք մեծապես կապված էին հին շարժիչի առանձնահատկությունների հետ, և որոնք այլևս անհրաժեշտ չէին աջակցություն ավելացնելուց հետո: հանգույցներ դիմակներով (դիմակ) և հյուսվածքներ թափանցիկությամբ: Նշվում է նաև, որ հնարավոր է գրաֆիկական դրայվերների հետ կապված հնարավոր խնդիրներ առաջանան վարորդների հետ աշխատելու եղանակի փոփոխության պատճառով։

Ապագայում, հիմնվելով նոր միասնական մոդելի վրա, չի բացառվում Metal-ի օգտագործմամբ ռենդերային շարժիչների ստեղծումը macOS-ում և DirectX-ում Windows-ում, սակայն նման շարժիչների ստեղծումը բարդանում է ստվերների համար այլ լեզուների կիրառմամբ («ngl» « և «vulkan» շարժիչներն օգտագործում են GLSL լեզուն, այնպես որ Metal-ի և Direct-ի համար պետք է կամ կրկնօրինակեն ստվերները կամ օգտագործեն շերտ՝ հիմնված SPIRV-Cross գործիքակազմի վրա):

Ապագա պլանները ներառում են HDR աջակցության և գունային ճիշտ կառավարման գործիքների տրամադրում, GPU-ի կողմից Path-ի ցուցադրման աջակցություն, հոլովակներ ցուցադրելու հնարավորություն, արտահոսքից դուրս ցուցադրում և կատարողականի օպտիմալացում հին և ցածր էներգիայի սարքերի համար: Իր ներկայիս տեսքով «vulkan» շարժիչի աշխատանքը մոտ է հին «gl» շարժիչի աշխատանքին։ «ngl» շարժիչն իր կատարողականությամբ զիջում է հին «gl» շարժիչին, սակայն առկա կատարումը բավարար է 60 կամ 144 FPS արագությամբ ցուցադրման համար: Ակնկալվում է, որ օպտիմալացումից հետո իրավիճակը կփոխվի։

Source: opennet.ru

Добавить комментарий