เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš OpenGL เปเบฅเบฐ Vulkan เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ GTK

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” GTK เป„เบ”เป‰เบ›เบฐเบเบฒเบ”เบเบฒเบ™เบกเบตเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เปƒเบซเบกเปˆ - "ngl" เปเบฅเบฐ "vulkan", เป‚เบ”เบเปƒเบŠเป‰ OpenGL (GL 3.3+ เปเบฅเบฐ GLES 3.0+) เปเบฅเบฐ Vulkan graphics APIs. เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบซเบกเปˆเปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡ GTK 4.13.6. เปƒเบ™เบชเบฒเบ‚เบฒ GTK เบ—เบปเบ”เบฅเบญเบ‡, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ ngl เบ›เบฐเบˆเบธเบšเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบ–เป‰เบฒเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ•เปเปˆเป„เบ› 4.14, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเบฐเปเบ”เบ‡เบœเบปเบ™ "gl" เป€เบเบปเปˆเบฒเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบซเบกเปˆเบ–เบทเบเบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบšเปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบฒเบˆเบฒเบเบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ”เบฝเบง. เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบงเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเปเบกเปˆเบ™เบงเปˆเบฒ Vulkan API เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™, เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบš abstraction เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเปเบฒเบฅเบฑเบš OpenGL, เป‚เบ”เบเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ OpenGL เปเบฅเบฐ Vulkan. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบฑเบ‡เบชเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบŸ scene, เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐ glyphs. เบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบฑเบ‡เบชเบญเบ‡เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบ–เบดเบ‡เบงเบฑเบ™เบ—เบตเปเบฅเบฐ synchronized.

เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ gl เป€เบเบปเปˆเบฒ, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰ shader เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ render node เปเบฅเบฐเบˆเบฑเบ”เบฎเบฝเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡ offscreen, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบซเบกเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡ offscreen เปƒเบŠเป‰ shader เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™ (ubershader) เบ—เบตเปˆเบ•เบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ buffer. . เปƒเบ™เบฎเบนเบšเปเบšเบšเบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆเบเบฑเบ‡เบŠเป‰เบฒเบเบงเปˆเบฒเป€เบเบปเปˆเบฒเปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบˆเบธเบ”เบชเบธเบกเบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒ.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเปเปˆเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ gl เป€เบเบปเปˆเบฒ:

  • Contour smoothing - เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบญเบฑเบ™เบ”เบตเบ‡เบฒเบกเปเบฅเบฐเบšเบฑเบ™เบฅเบธ contours smoother.
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš OpenGL เปเบฅเบฐ Vulkan เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ GTK
  • เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ gradients arbitrary, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบชเบตเปเบฅเบฐเบเบฒเบ™เบ•เป‰เบฒเบ™เบเบฒเบ™เบ™เบฒเบกเปเบเบ‡ (เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ gl, เบžเบฝเบ‡เปเบ•เปˆ gradients linear, radial เปเบฅเบฐเบฎเบนเบšเบˆเบงเบเบ—เบตเปˆเบกเบต 6 เบขเบธเบ”เบชเบตเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™).
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš OpenGL เปเบฅเบฐ Vulkan เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ GTK
  • เบ‚เบฐเบซเบ™เบฒเบ”เป€เบชเบ”เบชเปˆเบงเบ™, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ” 125% เบชเปเบฒเบฅเบฑเบšเบ›เปˆเบญเบ‡เบขเป‰เบฝเบก 1200x800, buffer 1500x1000 เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™ 2400x1600 เบ„เบทเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบปเปˆเบฒ.
  • เบฎเบญเบ‡เบฎเบฑเบšเป€เบ—เบเป‚เบ™เป‚เบฅเบเบต DMA-BUF เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ GPU เบซเบผเบฒเบเบญเบฑเบ™ เปเบฅเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เป„เบ›เปƒเบชเปˆ GPU เบญเบทเปˆเบ™.
  • เป‚เบซเบ™เบ”เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเป€เบเบปเปˆเบฒเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบซเบกเปˆเบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ‚เบฒเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป‚เบ”เบเบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก (เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบชเบ”เบชเปˆเบงเบ™) เปเบฅเบฐ glshader nodes, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบœเบนเบเบกเบฑเบ”เบขเปˆเบฒเบ‡เบซเบ™เบฑเบเปเบซเบ™เป‰เบ™เบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบปเปˆเบฒ, เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบญเบตเบเบ•เปเปˆเป„เบ›เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš nodes เบ—เบตเปˆเบกเบตเบซเบ™เป‰เบฒเบเบฒเบ (เบซเบ™เป‰เบฒเบเบฒเบ) เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเป‚เบ›เปˆเบ‡เปƒเบช. เบกเบฑเบ™เบเบฑเบ‡เป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบšเป„เบ”เป€เบงเบตเบเบฒเบŸเบดเบเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเป‰เบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เบปเบ™เบ‚เบฑเบš.

เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฎเบนเบšเปเบšเบšเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เปƒเบซเบกเปˆ, เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเบฐเปเบ”เบ‡เบœเบปเบ™เป‚เบ”เบเปƒเบŠเป‰ Metal เปƒเบ™ macOS เปเบฅเบฐ DirectX เปƒเบ™ Windows เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบงเบฑเป‰เบ™, เปเบ•เปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบชเบฒเบญเบทเปˆเบ™เบชเปเบฒเบฅเบฑเบš shaders ("ngl. โ€ เปเบฅเบฐ โ€œvulkanโ€ เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบŠเป‰เบžเบฒเบชเบฒ GLSL, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบš Metal เปเบฅเบฐ Direct เบˆเบฐเบ•เป‰เบญเบ‡เบŠเป‰เปเบฒเบเบฑเบ™ shaders เบซเบผเบทเปƒเบŠเป‰ layer เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท SPIRV-Cross).

เปเบœเบ™เบเบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ HDR เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบชเบตเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš Path rendering เปƒเบ™เบ”เป‰เบฒเบ™ GPU, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡ glyphs, เบเบฒเบ™เบชเบฐเปเบ”เบ‡ off-stream, เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เป€เบเบปเปˆเบฒเปเบฅเบฐเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ•เปˆเปเบฒ. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ "vulkan" เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ "gl" เป€เบเบปเปˆเบฒ. เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ "ngl" เปเบกเปˆเบ™เบ•เปˆเปเบฒเบเบงเปˆเบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ "gl" เป€เบเบปเปˆเบฒ, เปเบ•เปˆเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบขเบนเปˆเบ—เบตเปˆ 60 เบซเบผเบท 144 FPS. เบ„เบฒเบ”เบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™