ืžื ื•ืขื™ ืขื™ื‘ื•ื“ ื—ื“ืฉื™ื ืขื‘ื•ืจ OpenGL ื•-Vulkan ื ื•ืกืคื• ืœ-GTK

ื”ืžืคืชื—ื™ื ืฉืœ ืกืคืจื™ื™ืช GTK ื”ื›ืจื™ื–ื• ืขืœ ื–ืžื™ื ื•ืชื ืฉืœ ืฉื ื™ ืžื ื•ืขื™ ืขื™ื‘ื•ื“ ื—ื“ืฉื™ื - "ngl" ื•-"vulkan", ืชื•ืš ืฉื™ืžื•ืฉ ื‘- OpenGL (GL 3.3+ ื•-GLES 3.0+) ื•-Vulkan ื’ืจืคื™ API. ืžื ื•ืขื™ื ื—ื“ืฉื™ื ื›ืœื•ืœื™ื ื‘ืžื”ื“ื•ืจื” ื”ื ื™ืกื™ื•ื ื™ืช ืฉืœ GTK 4.13.6. ื‘ืขื ืฃ ื”-GTK ื”ื ื™ืกื™ื•ื ื™, ืžื ื•ืข ื”-ngl ืžืฉืžืฉ ื›ืขืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืืš ืื ื™ื–ื•ื”ื• ื‘ืขื™ื•ืช ืžืฉืžืขื•ืชื™ื•ืช ื‘ืขื ืฃ ื”ื™ืฆื™ื‘ ื”ื‘ื 4.14, ืžื ื•ืข ื”ืขื™ื‘ื•ื“ ื”ื™ืฉืŸ ืฉืœ "gl" ื™ื•ื—ื–ืจ.

ืžื ื•ืขื™ื ื—ื“ืฉื™ื ืžืžื•ืงืžื™ื ื›ืžืื•ื—ื“ื™ื ื•ืžื•ืจื›ื‘ื™ื ืžื‘ืกื™ืก ืงื•ื“ ืื—ื“. ืžื”ื•ืช ื”ืื™ื—ื•ื“ ื”ื™ื ืฉื‘ืกื™ืก Vulkan API, ืฉืขืœื™ื• ื ื•ืฆืจื” ืจืžืช ื”ืคืฉื˜ื” ื ืคืจื“ืช ืœ-OpenGL, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ื”ื‘ื“ืœื™ื ื‘ื™ืŸ OpenGL ืœ-Vulkan. ื’ื™ืฉื” ื–ื• ืืคืฉืจื” ืœื”ืฉืชืžืฉ ื‘ืชืฉืชื™ืช ืžืฉื•ืชืคืช ื‘ืฉื ื™ ื”ืžื ื•ืขื™ื ืœืขื™ื‘ื•ื“ ื’ืจืฃ ื”ืกืฆื ื”, ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช, ื˜ืงืกื˜ื•ืจื•ืช ืžื˜ืžื•ืŸ ื•ื’ืœื™ืคื™ื. ื”ืื™ื—ื•ื“ ื’ื ืคืฉื˜ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืชื—ื–ื•ืงื” ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ ืฉื ื™ ื”ืžื ื•ืขื™ื ื•ืฉืžื™ืจื” ืขืœื™ื”ื ืžืขื•ื“ื›ื ื™ื ื•ืžืกื•ื ื›ืจื ื™ื.

ื‘ื ื™ื’ื•ื“ ืœืžื ื•ืข ื”-gl ื”ื™ืฉืŸ, ืฉื”ืฉืชืžืฉ ื‘-Shader ืคืฉื•ื˜ ื ืคืจื“ ืขื‘ื•ืจ ื›ืœ ืกื•ื’ ืฉืœ ืฆื•ืžืช ืจื™ื ื“ื•ืจ ื•ืžืžื™ื™ืŸ ืžื—ื“ืฉ ืืช ื”ื ืชื•ื ื™ื ืžื“ื™ ืคืขื ื‘ืžื”ืœืš ืจื™ื ื“ื•ืจ ืžื—ื•ืฅ ืœืžืกืš, ื”ืžื ื•ืขื™ื ื”ื—ื“ืฉื™ื ื‘ืžืงื•ื ืจื™ื ื“ื•ืจ ืžื—ื•ืฅ ืœืžืกืš ืžืฉืชืžืฉื™ื ื‘-Shader ืžื•ืจื›ื‘ (ubershader) ืฉืžืคืจืฉ ืืช ื”ื ืชื•ื ื™ื ืžื”ืžืื’ืจ . ื‘ืžืชื›ื•ื ืชื• ื”ื ื•ื›ื—ื™ืช, ื”ื”ื˜ืžืขื” ื”ื—ื“ืฉื” ืขื“ื™ื™ืŸ ืžืคื’ืจืช ืื—ืจื™ ื”ื™ืฉืŸ ืžื‘ื—ื™ื ืช ืจืžืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช, ืฉื›ืŸ ื”ื“ื’ืฉ ื”ืขื™ืงืจื™ ื‘ืฉืœื‘ ื”ื ื•ื›ื—ื™ ื”ื•ื ืขืœ ืชืคืขื•ืœ ื ื›ื•ืŸ ื•ืงืœื•ืช ืชื—ื–ื•ืงื”.

ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืฉื—ืกืจื•ืช ื‘ืžื ื•ืข gl ื”ื™ืฉืŸ:

  • ื”ื—ืœืงืช ืงื•ื•ื™ ืžืชืืจ - ืžืืคืฉืจืช ืœืฉืžืจ ืคืจื˜ื™ื ืขื“ื™ื ื™ื ื•ืœื”ืฉื™ื’ ืงื•ื•ื™ ืžืชืืจ ื—ืœืงื™ื ื™ื•ืชืจ.
    ืžื ื•ืขื™ ืขื™ื‘ื•ื“ ื—ื“ืฉื™ื ืขื‘ื•ืจ OpenGL ื•-Vulkan ื ื•ืกืคื• ืœ-GTK
  • ื”ื™ื•ื•ืฆืจื•ืช ืฉืœ ืฉื™ืคื•ืขื™ื ืฉืจื™ืจื•ืชื™ื™ื, ืฉื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืžืกืคืจ ืฉืœ ืฆื‘ืขื™ื ื•-anti-aliasing (ื‘ืžื ื•ืข gl, ืจืง ืฉื™ืคื•ืขื™ื ืœื™ื ื™ืืจื™ื™ื, ืจื“ื™ืืœื™ื™ื ื•ืงื•ื ื™ื™ื ืขื 6 ืฆื‘ืขื™ ืขืฆื™ืจื” ื ืชืžื›ื•).
    ืžื ื•ืขื™ ืขื™ื‘ื•ื“ ื—ื“ืฉื™ื ืขื‘ื•ืจ OpenGL ื•-Vulkan ื ื•ืกืคื• ืœ-GTK
  • ืงื ื” ืžื™ื“ื” ื—ืœืงื™, ื”ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืขืจื›ื™ ืงื ื” ืžื™ื“ื” ืฉืื™ื ื ืฉืœืžื™ื, ืœืžืฉืœ, ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืงื ื” ืžื™ื“ื” ืฉืœ 125% ืขื‘ื•ืจ ื—ืœื•ืŸ ืฉืœ 1200x800, ื™ื•ืงืฆื” ืžืื’ืจ ืฉืœ 1500x1000, ื•ืœื 2400x1600 ื›ืžื• ื‘ืžื ื•ืข ื”ื™ืฉืŸ.
  • ืชืžื™ื›ื” ื‘ื˜ื›ื ื•ืœื•ื’ื™ื™ืช DMA-BUF ืœืฉื™ืžื•ืฉ ื‘ืžืกืคืจ GPUs ื•ื”ื•ืจื“ืช ืคืขื•ืœื•ืช ื‘ื•ื“ื“ื•ืช ืœ-GPU ืื—ืจ.
  • ืฆืžืชื™ ืจื™ื ื“ื•ืจ ืจื‘ื™ื ืฉื”ื™ื• ืœื”ื ื‘ืขื™ื•ืช ื‘ื™ื™ืฉื•ื ื”ื™ืฉืŸ ืžืขื•ื‘ื“ื™ื ื›ื”ืœื›ื”.

ื”ืžื’ื‘ืœื•ืช ืฉืœ ื”ืžื ื•ืขื™ื ื”ื—ื“ืฉื™ื ื›ื•ืœืœื•ืช ืืช ื”ื™ืขื“ืจ ืชืžื™ื›ื” ื‘ืžื™ืงื•ื ืœืคื™ ืขืจื›ื™ื ืฉืื™ื ื ืฉืœืžื™ื (ืžื™ืงื•ื ื—ืœืงื™) ื•ืฆืžืชื™ glshader, ืฉื”ื™ื• ืงืฉื•ืจื™ื ืžืื•ื“ ืœืชื›ื•ื ื•ืช ืฉืœ ื”ืžื ื•ืข ื”ื™ืฉืŸ, ื•ืืฉืจ ืœื ื”ื™ื• ื ื—ื•ืฆื™ื ืขื•ื“ ืœืื—ืจ ื”ื•ืกืคืช ืชืžื™ื›ื” ืขื‘ื•ืจ ืฆืžืชื™ื ืขื ืžืกื›ื•ืช (ืžืกื›ื”) ื•ืžืจืงืžื™ื ืขื ืฉืงื™ืคื•ืช. ื›ืžื• ื›ืŸ, ืžื•ื–ื›ืจ ื›ื™ ืงื™ื™ืžืช ืืคืฉืจื•ืช ืœื‘ืขื™ื•ืช ืืคืฉืจื™ื•ืช ื‘ื“ืจื™ื™ื‘ืจื™ื ื”ื’ืจืคื™ื™ื ื”ื ื•ื‘ืขื•ืช ืขืงื‘ ืฉื™ื ื•ื™ื™ื ื‘ืฉื™ื˜ืช ื”ืขื‘ื•ื“ื” ืขื ื“ืจื™ื™ื‘ืจื™ื.

ื‘ืขืชื™ื“, ื‘ื”ืชื‘ืกืก ืขืœ ื”ืžื•ื“ืœ ื”ืžืื•ื—ื“ ื”ื—ื“ืฉ, ื™ืฆื™ืจืช ืžื ื•ืขื™ ืจื™ื ื“ื•ืจ ื‘ืืžืฆืขื•ืช Metal ื‘-macOS ื•-DirectX ื‘-Windows ืื™ื ื” ื ื›ืœืœืช, ืืš ื™ืฆื™ืจืช ืžื ื•ืขื™ื ื›ืืœื” ืžืกื•ื‘ื›ืช ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืฉืคื•ืช ืื—ืจื•ืช ืขื‘ื•ืจ shaders (ื”"ngl "ืžื ื•ืขื™ "ื•ื•ืœืงืŸ" ืžืฉืชืžืฉื™ื ื‘ืฉืคืช GLSL, ื›ืš ืฉืœ Metal ื•-Direct ื™ื”ื™ื” ืฆื•ืจืš ืœืฉื›ืคืœ ื”ืฆืœืœื•ืช ืื• ืœื”ืฉืชืžืฉ ื‘ืฉื›ื‘ื” ื”ืžื‘ื•ืกืกืช ืขืœ ืขืจื›ืช ื”ื›ืœื™ื SPIRV-Cross).

ืชื•ื›ื ื™ื•ืช ืขืชื™ื“ื™ื•ืช ื›ื•ืœืœื•ืช ืžืชืŸ ืชืžื™ื›ื” ื•ื›ืœื™ื ื‘-HDR ืœื ื™ื”ื•ืœ ืฆื‘ืขื™ื ื ื›ื•ืŸ, ืชืžื™ื›ื” ื‘ืขื™ื‘ื•ื“ ื ืชื™ื‘ ื‘ืฆื“ ื”-GPU, ื™ื›ื•ืœืช ืจื™ื ื“ื•ืจ ื’ืœื™ืคื™ื, ืขื™ื‘ื•ื“ ืžื—ื•ืฅ ืœื–ืจื ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืœ ื‘ื™ืฆื•ืขื™ื ืขื‘ื•ืจ ื”ืชืงื ื™ื ื™ืฉื ื™ื ื•ื‘ืขืœื™ ื”ืกืคืง ื ืžื•ืš. ื‘ืฆื•ืจืชื• ื”ื ื•ื›ื—ื™ืช, ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžื ื•ืข ื”"ื•ื•ืœืงืŸ" ืงืจื•ื‘ื™ื ืœื‘ื™ืฆื•ืขื™ื ืฉืœ ืžื ื•ืข ื”"gl" ื”ื™ืฉืŸ. ืžื ื•ืข ื”"ngl" ื ื—ื•ืช ื‘ื‘ื™ืฆื•ืขื™ื ืžืžื ื•ืข ื”"gl" ื”ื™ืฉืŸ, ืืš ื”ื‘ื™ืฆื•ืขื™ื ื”ื–ืžื™ื ื™ื ืžืกืคื™ืงื™ื ืœืขื™ื‘ื•ื“ ื‘-60 ืื• 144 FPS. ืฆืคื•ื™ ืฉื”ืžืฆื‘ ื™ืฉืชื ื” ืœืื—ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”