OpenGL рдЖрдгрд┐ Vulkan рд╕рд╛рдареА рдирд╡реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рди GTK рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд

GTK рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрдиреА OpenGL (GL 3.3+ рдЖрдгрд┐ GLES 3.0+) рдЖрдгрд┐ Vulkan рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рд╡рд╛рдкрд░реВрди рджреЛрди рдирд╡реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рди - тАЬnglтАЭ рдЖрдгрд┐ тАЬvulkanтАЭ рдЪреНрдпрд╛ рдЙрдкрд▓рдмреНрдзрддреЗрдЪреА рдШреЛрд╖рдгрд╛ рдХреЗрд▓реА рдЖрд╣реЗ. GTK 4.13.6 рдЪреНрдпрд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рдирд╡реАрди рдЗрдВрдЬрд┐рди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ GTK рд╢рд╛рдЦреЗрдд, ngl рдЗрдВрдЬрд┐рди рдЖрддрд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рдкрд░рдВрддреБ рдкреБрдвреАрд▓ рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ 4.14 рдордзреНрдпреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдУрд│рдЦрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛рд╕, рдЬреБрдиреЗ "gl" рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рди рдкрд░рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.

рдирд╡реАрди рдЗрдВрдЬрд┐рдиреЗ рдпреБрдирд┐рдлрд╛рдЗрдб рдореНрд╣рдгреВрди рдареЗрд╡рд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдПрдХрд╛рдЪ рдХреЛрдб рдмреЗрд╕рд╡рд░реВрди рдПрдХрддреНрд░ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдПрдХреАрдХрд░рдгрд╛рдЪрд╛ рд╕рд╛рд░ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рд╡рд▓реНрдХрди API рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рдЪреНрдпрд╛ рд╡рд░ OpenGL рдЖрдгрд┐ Vulkan рдордзреАрд▓ рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, OpenGL рд╕рд╛рдареА рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ ре▓рдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рд╕реНрддрд░ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдореБрд│реЗ рджреГрд╢реНрдп рдЖрд▓реЗрдЦ, рдкрд░рд┐рд╡рд░реНрддрди, рдХреЕрд╢рд┐рдВрдЧ рдЯреЗрдХреНрд╕рдЪрд░ рдЖрдгрд┐ рдЧреНрд▓рд┐рдлреНрд╕рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрдиреНрд╣реА рдЗрдВрдЬрд┐рдирдордзреНрдпреЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ. рдпреБрдирд┐рдлрд┐рдХреЗрд╢рдирдиреЗ рджреЛрдиреНрд╣реА рдЗрдВрдЬрд┐рдирд╛рдВрдЪреНрдпрд╛ рдХреЛрдб рдмреЗрд╕рдЪреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдЕрджреНрдпрдпрд╛рд╡рдд рдареЗрд╡рдгреЗ рдЖрдгрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╕реБрд▓рдн рдХреЗрд▓реЗ.

рдЬреБрдиреНрдпрд╛ gl рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдЬреНрдпрд╛рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд░реЗрдВрдбрд░ рдиреЛрдбрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рд╕рд╛рдзрд╛ рд╢реЗрдбрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЖрдгрд┐ рдСрдлрд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рджрд░рдореНрдпрд╛рди рдбреЗрдЯрд╛рдЪреА рд╡реЗрд│реЛрд╡реЗрд│реА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд▓реА, рдирд╡реАрди рдЗрдВрдЬрд┐рди рдСрдлрд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧрдРрд╡рдЬреА рдЬрдЯрд┐рд▓ рд╢реЗрдбрд░ (рдЙрдмрд░рд╢реЗрдбрд░) рд╡рд╛рдкрд░рддрд╛рдд рдЬреЗ рдмрдлрд░рдордзреАрд▓ рдбреЗрдЯрд╛рдЪрд╛ рдЕрд░реНрде рд▓рд╛рд╡рддрд╛рдд. . рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ, рдирд╡реАрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЕрдЬреВрдирд╣реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреНрдпрд╛ рдкрд╛рддрд│реАрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЬреБрдиреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдорд╛рдЧреЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдореБрдЦреНрдп рд▓рдХреНрд╖ рдпреЛрдЧреНрдп рдСрдкрд░реЗрд╢рди рдЖрдгрд┐ рджреЗрдЦрднрд╛рд▓ рд╕реБрд▓рднрддреЗрд╡рд░ рдЖрд╣реЗ.

рдЬреБрдиреНрдпрд╛ рдЬреАрдПрд▓ рдЗрдВрдЬрд┐рдирдордзреНрдпреЗ рдЧрд╣рд╛рд│ рдЕрд╕рд▓реЗрд▓реА рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ:

  • рд╕рдореЛрдЪреНрдЪ рд╕реНрдореВрдерд┐рдВрдЧ - рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдмрд╛рд░реАрдХрд╕рд╛рд░реАрдХ рддрдкрд╢реАрд▓ рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдирд┐рддрд│ рдЖрдХреГрддрд┐рдмрдВрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
    OpenGL рдЖрдгрд┐ Vulkan рд╕рд╛рдареА рдирд╡реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рди GTK рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд
  • рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЧреНрд░реЗрдбрд┐рдпрдВрдЯреНрд╕рдЪреА рдирд┐рд░реНрдорд┐рддреА, рдЬреЗ рдХрд┐рддреАрд╣реА рд░рдВрдЧ рдЖрдгрд┐ рдЕрдБрдЯреА-рдЕрд▓рд╛рдпрдЭрд┐рдВрдЧ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛рдд (gl рдЗрдВрдЬрд┐рдирдордзреНрдпреЗ, 6 рд╕реНрдЯреЙрдк рд░рдВрдЧрд╛рдВрд╕рд╣ рдлрдХреНрдд рд░реЗрдЦреАрдп, рд░реЗрдбрд┐рдпрд▓ рдЖрдгрд┐ рд╢рдВрдХреВрдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдЪреЗ рдЧреНрд░реЗрдбрд┐рдпрдВрдЯ рд╕рдорд░реНрдерд┐рдд рд╣реЛрддреЗ).
    OpenGL рдЖрдгрд┐ Vulkan рд╕рд╛рдареА рдирд╡реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рди GTK рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд
  • рдлреНрд░реЕрдХреНрд╢рдирд▓ рд╕реНрдХреЗрд▓, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдирд╕рд▓реЗрд▓реА рд╕реНрдХреЗрд▓ рдореВрд▓реНрдпреЗ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 125x1200 рдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛрд╕рд╛рдареА 800% рд╕реНрдХреЗрд▓ рд╡рд╛рдкрд░рддрд╛рдирд╛, 1500x1000 рдЪрд╛ рдмрдлрд░ рд╡рд╛рдЯрдк рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓, рдЬреБрдиреНрдпрд╛ рдЗрдВрдЬрд┐рдирдкреНрд░рдорд╛рдгреЗ 2400x1600 рдирд╛рд╣реА.
  • рдПрдХрд╛рдзрд┐рдХ GPU рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рджреБрд╕рд▒реНрдпрд╛ GPU рд╡рд░ рд╡реИрдпрдХреНрддрд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рдСрдлрд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА DMA-BUF рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди.
  • рдЬреБрдиреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреЗрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдиреЛрдбреНрд╕рд╡рд░ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ.

рдирд╡реАрди рдЗрдВрдЬрд┐рдирд╛рдВрдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛рдВрдордзреНрдпреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдирд╕рд▓реЗрд▓реА рдореВрд▓реНрдпреЗ (рдлреНрд░реЕрдХреНрд╢рдирд▓ рдкреЛрдЭрд┐рд╢рди) рдЖрдгрд┐ рдЧреНрд▓рд╢реЗрдбрд░ рдиреЛрдбреНрд╕рджреНрд╡рд╛рд░реЗ рдкреЛрдЭрд┐рд╢рдирд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди рдирд╕рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдЬреЗ рдЬреБрдиреНрдпрд╛ рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╢реА рдЬреЛрд░рджрд╛рд░рдкрдгреЗ рдЬреЛрдбрд▓реЗрд▓реЗ рд╣реЛрддреЗ рдЖрдгрд┐ рдЬреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реНрдпрд╛рдирдВрддрд░ рдпрд╛рдкреБрдвреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╡реНрд╣рддреЗ. рдореБрдЦрд╡рдЯреЗ (рдореБрдЦрд╡рдЯрд╛) рдЖрдгрд┐ рдкрд╛рд░рджрд░реНрд╢рдХрддреЗрд╕рд╣ рдкреЛрдд рдЕрд╕рд▓реЗрд▓реЗ рдиреЛрдбреНрд╕. рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдЪреНрдпрд╛ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрдд рдмрджрд▓ рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдордзреНрдпреЗ рд╕рдВрднрд╛рд╡реНрдп рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЕрд╕рд▓реНрдпрд╛рдЪреЗрд╣реА рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ.

рднрд╡рд┐рд╖реНрдпрд╛рдд, рдирд╡реАрди рдпреБрдирд┐рдлрд╛рдЗрдб рдореЙрдбреЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рд╡рд┐рдВрдбреЛрдЬрдордзреНрдпреЗ рдореЕрдХрдУрдПрд╕ рдЖрдгрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕рдордзреНрдпреЗ рдореЗрдЯрд▓ рд╡рд╛рдкрд░реВрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрд┐рдирдЪреА рдирд┐рд░реНрдорд┐рддреА рд╡рдЧрд│рдгреНрдпрд╛рдд рдЖрд▓реЗрд▓реА рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╢реЗрдбрд░реНрд╕рд╕рд╛рдареА рдЗрддрд░ рднрд╛рд╖рд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдЕрд╢рд╛ рдЗрдВрдЬрд┐рдирдЪреА рдирд┐рд░реНрдорд┐рддреА рдХреНрд▓рд┐рд╖реНрдЯ рдЖрд╣реЗ (тАЬрдПрдирдЬреАрдПрд▓ тАЭ рдЖрдгрд┐ тАЬрд╡рд▓реНрдХрдитАЭ рдЗрдВрдЬрд┐рдиреЗ GLSL рднрд╛рд╖рд╛ рд╡рд╛рдкрд░рддрд╛рдд, рдореНрд╣рдгреВрди рдореЗрдЯрд▓ рдЖрдгрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯрд╕рд╛рдареА рдПрдХрддрд░ рд╢реЗрдбрд░реНрд╕рдЪреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдВрд╡рд╛ SPIRV-рдХреНрд░реЙрд╕ рдЯреВрд▓рдХрд┐рдЯрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд▓реЗрдпрд░ рд╡рд╛рдкрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓).

рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдпреЛрдЬрдирд╛рдВрдордзреНрдпреЗ рдпреЛрдЧреНрдп рд░рдВрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рд╕рд╛рдареА HDR рд╕рдорд░реНрдерди рдЖрдгрд┐ рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ, GPU рдмрд╛рдЬреВрд▓рд╛ рдкрд╛рде рд░реЗрдВрдбрд░рд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди, рдЧреНрд▓рд┐рдл рд░реЗрдВрдбрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рдСрдл-рд╕реНрдЯреНрд░реАрдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЖрдгрд┐ рдЬреБрдиреНрдпрд╛ рдЖрдгрд┐ рдХрдореА-рд╢рдХреНрддреАрдЪреНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд, "рд╡рд▓реНрдХрди" рдЗрдВрдЬрд┐рдирдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреБрдиреНрдпрд╛ "рдЬреАрдПрд▓" рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рдХрд╛рдордЧрд┐рд░реАрдЪреНрдпрд╛ рдЬрд╡рд│рдкрд╛рд╕ рдЖрд╣реЗ. "ngl" рдЗрдВрдЬрд┐рди рдЬреБрдиреНрдпрд╛ "gl" рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рдХрд╛рдордЧрд┐рд░реАрдордзреНрдпреЗ рдирд┐рдХреГрд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди 60 рдХрд┐рдВрд╡рд╛ 144 FPS рд╡рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдирдВрддрд░ рдкрд░рд┐рд╕реНрдерд┐рддреА рдмрджрд▓реЗрд▓ рдЕрд╢реА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛