Нови машини Π·Π° изобразяванС Π·Π° OpenGL ΠΈ Vulkan са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към GTK

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° GTK обявиха Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π²Π° Π½ΠΎΠ²ΠΈ двигатСля Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ - β€žnglβ€œ ΠΈ β€žvulkanβ€œ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ OpenGL (GL 3.3+ ΠΈ GLES 3.0+) ΠΈ Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ API Π½Π° Vulkan. Нови Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² СкспСримСнталната вСрсия Π½Π° GTK 4.13.6. Π’ СкспСримСнталния ΠΊΠ»ΠΎΠ½ Π½Π° GTK, ngl Π΅Π½Π΄ΠΆΠΈΠ½ΡŠΡ‚ Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π½ΠΎ Π°ΠΊΠΎ Π±ΡŠΠ΄Π°Ρ‚ установСни Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² слСдващия стабилСн ΠΊΠ»ΠΎΠ½ 4.14, старият "gl" Ρ€Π΅Π½Π΄ΠΈΡ€Π°Ρ‰ Π΅Π½Π΄ΠΆΠΈΠ½ Ρ‰Π΅ бъдС Π²ΡŠΡ€Π½Π°Ρ‚.

НовитС Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ са ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΈ сглобСни ΠΎΡ‚ Π΅Π΄ΠΈΠ½Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅, Ρ‡Π΅ ΠΊΠ°Ρ‚ΠΎ основа сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Vulkan API, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ създадСно ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° абстракция Π·Π° OpenGL, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ OpenGL ΠΈ Vulkan. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ‰Π° инфраструктура Π² Π΄Π²Π°Ρ‚Π° двигатСля Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° Π½Π° сцСната, трансформации, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° тСкстури ΠΈ Π³Π»ΠΈΡ„ΠΎΠ²Π΅. ΠžΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опрости ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° Π΄Π²Π°Ρ‚Π° двигатСля ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈ ΠΈ синхронизирани.

Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ стария gl Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ прост ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ Π·Π° всСки Ρ‚ΠΈΠΏ възСл Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ прСсортира Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ извън Π΅ΠΊΡ€Π°Π½Π°, Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ вмСсто Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ извън Π΅ΠΊΡ€Π°Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ слоТСн ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ (ubershader), ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Π±ΡƒΡ„Π΅Ρ€Π° . Π’ сСгашния си Π²ΠΈΠ΄ Π½ΠΎΠ²Π°Ρ‚Π° рСализация всС ΠΎΡ‰Π΅ изостава ΠΎΡ‚ старата ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ основният фокус Π½Π° настоящия Π΅Ρ‚Π°ΠΏ Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ лСсната ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.

Нови Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ липсват Π² стария gl Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»:

  • ИзглаТданС Π½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΈΡ‚Π΅ - позволява Π²ΠΈ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ Ρ„ΠΈΠ½ΠΈΡ‚Π΅ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ ΠΈ Π΄Π° постигнСтС ΠΏΠΎ-Π³Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΈ.
    Нови машини Π·Π° изобразяванС Π·Π° OpenGL ΠΈ Vulkan са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към GTK
  • Π€ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅ ΠΈ Π°Π½Ρ‚ΠΈ-алиасинг (Π² gl двигатСля сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ…Π° само Π»ΠΈΠ½Π΅ΠΉΠ½ΠΈ, Ρ€Π°Π΄ΠΈΠ°Π»Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΈ с 6 стоп цвята).
    Нови машини Π·Π° изобразяванС Π·Π° OpenGL ΠΈ Vulkan са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към GTK
  • Π”Ρ€ΠΎΠ±Π΅Π½ ΠΌΠ°Ρ‰Π°Π±, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ нСцСлочислСни стойности Π½Π° ΠΌΠ°Ρ‰Π°Π±Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΌΠ°Ρ‰Π°Π± ΠΎΡ‚ 125% Π·Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† ΠΎΡ‚ 1200x800, Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π±ΡƒΡ„Π΅Ρ€ ΠΎΡ‚ 1500x1000, Π° Π½Π΅ 2400x1600, ΠΊΠ°ΠΊΡ‚ΠΎ Π² стария Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π».
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° тСхнологията DMA-BUF Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° мноТСство Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ процСсори ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ към Π΄Ρ€ΡƒΠ³ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ процСсор.
  • Много възли Π·Π° изобразяванС, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΈΠΌΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² старата рСализация, сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΡ‚Π° Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ липсата Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· нСцСлочислСни стойности (Π΄Ρ€ΠΎΠ±Π½Π° позиция) ΠΈ glshader възли, ΠΊΠΎΠΈΡ‚ΠΎ бяха силно ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½ΠΈ с характСристикитС Π½Π° стария Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ бяха Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ слСд добавянСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° възли с маски (mask) ΠΈ тСкстури с прозрачност. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС спомСнава, Ρ‡Π΅ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° възмоТни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ, Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ.

Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅, въз основа Π½Π° новия ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΌΠΎΠ΄Π΅Π», Π½Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ Metal Π² macOS ΠΈ DirectX Π² Windows, Π½ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ Π΅ услоТнСно ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ (β€žnglβ€œ ” ΠΈ β€žvulkan” Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΅Π·ΠΈΠΊΠ° GLSL, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π° Metal ΠΈ Direct Ρ‰Π΅ трябва ΠΈΠ»ΠΈ Π΄Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Ρ‚Π΅ ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слой, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° инструмСнтариума SPIRV-Cross).

Π‘ΡŠΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ осигуряванС Π½Π° HDR ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈ инструмСнти Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅Ρ‚Π΅, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ Π½Π° Path ΠΎΡ‚ страна Π½Π° GPU, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Π»ΠΈΡ„ΠΎΠ²Π΅, Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ извън ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° производитСлността Π·Π° ΠΏΠΎ-стари устройства с ниска мощност. Π’ сСгашния си Π²ΠΈΠ΄ производитСлността Π½Π° двигатСля "Π²ΡƒΠ»ΠΊΠ°Π½" Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ производитСлността Π½Π° стария Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» "gl". Π•Π½Π΄ΠΆΠΈΠ½ΡŠΡ‚ "ngl" ΠΎΡ‚ΡΡ‚ΡŠΠΏΠ²Π° ΠΏΠΎ производитСлност Π½Π° стария Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» "gl", Π½ΠΎ Π½Π°Π»ΠΈΡ‡Π½Π°Ρ‚Π° производитСлност Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ 60 ΠΈΠ»ΠΈ 144 FPS. ΠžΡ‡Π°ΠΊΠ²Π° сС ситуацията Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ слСд оптимизация.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€