Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

API – графичСскиС интСрфСйсы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

API – графичСскиС интСрфСйсы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

API Direct 3D. API OpenGL. API Microsoft DirectX.

API Direct 3D. Direct 3D являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ API, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ DirectX. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ­Π½ΠΎΠ΅ обСспСчСниС ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ графичСскиС интСрфСйсы Π₯ WinΒ­dows ΠΈ OpenGL. Π­Ρ‚ΠΎΡ‚ API ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для облСгчСния программирования ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Direct 3D ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ°: RM (Retained mode) – абстрактный ΠΈ IM (Immediale) – нСпосрСдствСнный. IM состоит ΠΈΠ· Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взаимодСйствуСт с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ обСспСчиваСт самоС высокоС быстродСйствиС. RM являСтся высокоуровнСвым интСрфСйсом, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ для программиста мноТСство графичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ 3D-ΠΈΠ³Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ IM. Π’ Windows Vista Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ… ΠΆΠ΅ интСрфСйсов Direct3D ΠΈ DirectDraw, ΠΊΠ°ΠΊ Π² Windows XP, начиная с DirectX 3 (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ° Retained Mode Π² Direct3D). БущСствуСт ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows XP Professional x64 Edition, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄ Windows Vista ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Direct3D9, DirectDraw7 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями интСрфСйсов.

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм ΠΈ DirectX ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½Β­ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмой:

(АппаратноС обСспСчСниС) > (Direc+X) > (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΒ­ΠΌΠ½ΠΎΠ΅ обСспСчСниС).

ОбновлСниС DirectX ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСзависимо ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. DirectX состоит ΠΈΠ· «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ» слоя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт доступ ΠΊ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ устройст­вам, устройствам Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, уст­ройствам Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ установки. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс DirectX содСрТит слой Media, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоит ΠΈΠ· API.

Π‘Π»ΠΎΠΉ Media DirectX прС­доставляСт сСрвис для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Β­Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ³Ρ€, Web ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠ΅Π΄ΠΈΠ°-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Бамая послСдняя вСрсия DirectX доступна для бСсплатной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с Web-ΡƒΠ·Π»Π° Ρ„ΠΈΡ€ΠΌΡ‹ MiΒ­crosoft. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, DirectX являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ Internet Explorer, WinΒ­dows 2000. НСкоторыС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСс­пСчСния ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ вмСстС со своими ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ DirectX. ΠŸΠ΅Ρ€Π΅Π΄ инсталляциСй Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии установлСнного ΠΏΡ€ΠΎΒ­Π³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса. Если установлСнная вСрсия устарСла, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΒ­ΠΆΠ΅Π½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс DirectX ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстим, Ρ‚.Π΅. послСдняя вСрсия ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ всСх ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса DirectX.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Знакомство с Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹ΠΌΠΈ API

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠœΡ‹ Π½Π΅ пСрСстаСм ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ проСктирования API послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ встрСтили Π² ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»Π΅ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Β«ManningΒ» Π²ΠΎΡ‚ эту ΠΊΠ½ΠΈΠ³Ρƒ. БСгодня ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΠ± ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Graph API ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π΅Ρ‰Π΅ Ρ€Π°Π· Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½ΠΎΠ²Ρ‹Π΅ API послС Π±Π΅Π·Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ популярности REST.

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠ³ΠΎ чтСния!

Если Π² послСдниС 10 Π»Π΅Ρ‚ Π²Π°ΠΌ доводилось ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ API – Π³ΠΎΡ‚ΠΎΠ² ΠΏΠΎΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π» REST API. ВСроятно, Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ структурированы Π²ΠΎΠΊΡ€ΡƒΠ³ рСсурсов, Π² ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ id, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° связанныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ HTTP-ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ: ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ (Π΄Π°, согласСн, это вольноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° Π½Π΅ каноничСский REST Роя Π€ΠΈΠ»Π΄ΠΈΠ½Π³Π°). НСкотороС врСмя API Π² стилС REST Π±Ρ‹Π»ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ стандартом Π² нашСй индустрии.

Однако, Ρƒ REST Π΅ΡΡ‚ΡŒ свои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ лишниС Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ Ρ†Π΅Π»Ρ‹ΠΉ рСсурс Π² случаС, ΠΊΠΎΠ³Π΄Π° Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹ лишь ΠΎΠ΄ΠΈΠ½-Π΄Π²Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΌΠΎΠ³ΡƒΡ‚ рСгулярно Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΡ… всС Π² ΠΎΠ΄Π½ΠΎΠΌ запросС – Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Β«Π½Π΅Π΄ΠΎΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅Β» Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎ касаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, измСнСния Π² REST API ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ потрСбуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всю ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° соотвСтствовала Π½ΠΎΠ²ΠΎΠΉ структурС API ΠΈΠ»ΠΈ схСмам ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΎΠ².

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² послСдниС Π³ΠΎΠ΄Ρ‹ всС Π°ΠΊΡ‚ΠΈΠ²Π½Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‹Π΅ API, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ Β«Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹ΠΌΠΈΒ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Graph API?

Π’ Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠΌ API ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ со всСх Ρ‚Ρ€Π΅Ρ… рСсурсов Π²Ρ‹Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ Π·Π°Ρ…ΠΎΠ΄. ΠšΠ»ΠΈΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π΅ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ для Π½Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹, прСдоставив Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ схСмой ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°.
Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ устроСн этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, рассмотрим ΠΏΠ°Ρ€Ρƒ кСйсов с описаниСм ΠΆΠΈΠ²Ρ‹Ρ… Π½Π΅Π²Ρ‹Π΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… API.

КСйс 1: Π“Ρ€Π°Ρ„ΠΎΠ²Ρ‹ΠΉ API Facebook

Facebook выпустил Π²Π΅Ρ€ΡΠΈΡŽ 1.0 своСго API Π² 2010 Π³ΠΎΠ΄Ρƒ ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ вСрсии, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΡΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹Ρ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠ·Π»Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, постам ΠΈ коммСнтариям, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π±Ρ€Π°, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡ… ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ «относится» ΠΊ этому посту. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт всСй конструкции Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Ρƒ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ REST API, ΠΎΠ΄Π½Π°ΠΊΠΎ, всС Ρ€Π°Π²Π½ΠΎ позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ пост ΠΈ рассмотрим, ΠΊΠ°ΠΊΠΈΠ΅ простыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ с Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Для Π½Π°Ρ‡Π°Π»Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ запроса GET Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ пост ΠΈΠ· корня API, исходя ΠΈΠ· ID поста.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС возвращаСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π΄Π°Π½Π½ΠΎΠ³ΠΎ поста. Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ трСбуСтся доступ лишь ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ элСмСнтам поста – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ создания – Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти поля, ΡƒΠΊΠ°Π·Π°Π² Π΄Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса:

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π±Ρ€ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ посту:

Π”ΠΎ сих ΠΏΠΎΡ€ всС это Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ REST API. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ подмноТСство ΠΏΠΎΠ»Π΅ΠΉ – Π² Π½ΠΎΠ²ΠΈΠ½ΠΊΡƒ, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΊΠ°ΠΊ рСсурсы. Битуация становится интСрСснСС, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ собираСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ запрос. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π΅Ρ‰Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ посту:

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ запрос Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΈΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится врСмя создания поста, Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ список ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния выбираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ id ΠΈ сообщСниС). Π’ REST Π²Ρ‹ Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ смогли. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ сначала Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ пост, Π° Π·Π°Ρ‚Π΅ΠΌ β€” ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

А Ρ‡Ρ‚ΠΎ, Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ влоТСния?

Π’ этом запросС Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ посту, Π² Ρ‚ΠΎΠΌ числС, id ΠΈ имя Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ коммСнтария. Рассмотрим, ΠΊΠ°ΠΊ это дСлалось Π±Ρ‹ Π² REST. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ пост, Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π² сСрии ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°Π²Ρ‚ΠΎΡ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ коммСнтария. Π‘Ρ€Π°Π·Ρƒ набираСтся мноТСство HTTP-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²! Однако, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π³Ρ€Π°Ρ„Π° вся эта информация кондСнсируСтся Π² ΠΎΠ΄Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅, ΠΈ Π² этом Π²Ρ‹Π·ΠΎΠ²Π΅ оказываСтся лишь Ρ‚Π° информация, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

НаконСц, послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎ Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΡ‹ΠΉ с Ρ€Π΅Π±Ρ€Π°, сам являСтся ΡƒΠ·Π»ΠΎΠΌ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ нСпосрСдствСнно. Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ выбираСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ URL Π²ΠΈΠ΄Π° /posts/

КСйс 2: GitHub V4 GraphQL API

Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠ³ΠΎ API ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ GraphQL. Π­Ρ‚Π° концСпция Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ REST, здСсь прСдоставляСтся всСго ΠΎΠ΄Π½Π° конСчная Ρ‚ΠΎΡ‡ΠΊΠ°, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ запросы GET ΠΈ POST. ΠŸΡ€ΠΈ всСх взаимодСйствиях с API ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ запросы, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ синтаксису GraphQL.

Π’ ΠΌΠ°Π΅ 2017 Π³ΠΎΠ΄Π° GitHub выпустил 4-ю Π²Π΅Ρ€ΡΠΈΡŽ своСго API, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ этой спСцификации. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ² ΠΈΠ· сСбя GraphQL, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ опрСдСляСт запрос GraphQL:

Π’ Π΄Π°Π½Π½ΠΎΠΌ запросС выбираСтся ID ΠΈ описаниС рСпозитория β€œtransformer” с рСсурса Zapier org. Π—Π΄Π΅ΡΡŒ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ считываСм Π΄Π°Π½Π½Ρ‹Π΅ с API ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ POST, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ посылаСм Π² запросС Ρ‚Π΅Π»ΠΎ сообщСния. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° самого запроса записана Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, Ρ‡Ρ‚ΠΎ прСдписано Π² стандартС GraphQL. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, структура запроса Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ, какая ΡƒΠΊΠ°Π·Π°Π½Π° Π² нашСм запросС, <"data": <"repository": <"id": "MDEwOlJlcG9zaXRvcnk1MDEzODA0MQ==", "description": ". ">>> (ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ»ΡŽΡ‡ data – Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°Ρ… GraphQL).

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, относящиСся ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠ»ΠΈΠ΅Π½Ρ‚ примСняСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ запрос:

Π­Ρ‚ΠΎΡ‚ запрос Π²Ρ‹Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ID ΠΈ описаниС рСпозитория, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ тСкст послСдних 20 Π·Π°Π΄Π°Ρ‡, созданных Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΎΠ³ΠΈΠ½ (имя) Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС укладываСтся масса ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ выглядСл Π±Ρ‹ REST-эквивалСнт Ρ‚Π°ΠΊΠΎΠ³ΠΎ запроса – ΠΈ становится понятно, ΠΊΠ°ΠΊΠΈΠ΅ возмоТности ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ обСспСчиваСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ GraphQL Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… GraphQL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «мутация». Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ REST, Π³Π΄Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ выполняСтся ΠΏΡƒΡ‚Π΅ΠΌ PUT ΠΈΠ»ΠΈ POST ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ рСсурса Π½Π° Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΅Π΅ ΠΈΠ·Π²Π»Π΅ΠΊ, мутация GraphQL – это явная опСрация, опрСдСляСмая API. Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ трСбуСтся ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ трСбуСтся Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° сСрвСрС. Π£Π΄ΠΎΠ±Π½ΠΎ, Ρ‡Ρ‚ΠΎ GraphQL позволяСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… процСсса ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «интроспСкция схСмы».

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ схСмы GraphQL Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ эту схСму Π² соотвСтствии с синтаксисом GraphQL. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ возмоТности API ΠΏΡƒΡ‚Π΅ΠΌ интроспСкции.

Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ трСбуСтся ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π² GitHub, ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ:

НадСюсь, эти кСйсы наглядно Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚, ΠΊΠ°ΠΊ развиваСтся Π΄ΠΈΠ·Π°ΠΉΠ½ API Π² SaaS-индустрии. Π― Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π° Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹ΠΌΠΈ API Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, Π° REST ΠΌΠ΅Ρ€Ρ‚Π². Π’ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… ΠΊΠ°ΠΊ GraphQL Π΅ΡΡ‚ΡŒ собствСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Но Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΡƒΠ³ возмоТностСй ΡˆΠΈΡ€ΠΈΡ‚ΡΡ, ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ API, Π²Ρ‹ смоТСтС Π²Π·Π²Π΅ΡΠΈΡ‚ΡŒ всС компромиссы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приходится ΠΈΠ΄Ρ‚ΠΈ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Vulkan. Руководство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ тСхничСским ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠΌ иТСвской IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ CG Tribe, которая ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° ΠΌΠ½Π΅ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² сообщСство ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ интСрСсных статСй ΠΈ руководств.

Π—Π΄Π΅ΡΡŒ я Π±ΡƒΠ΄Ρƒ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ руководства ΠΊ Vulkan API. Бсылка Π½Π° источник β€” vulkan-tutorial.com. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ этого ΠΆΠ΅ руководства занимаСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π₯Π°Π±Ρ€Π° β€” kiwhy, ΠΌΡ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π’ своих публикациях я Π±ΡƒΠ΄Ρƒ Π΄Π°Π²Π°Ρ‚ΡŒ ссылки Π½Π° Π³Π»Π°Π²Ρ‹, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ kiwhy.

9. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

10. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠΏ-ΠΊΠ°Ρ€Ρ‚

FAQ

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

1. ВступлСниС

2. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ возникновСния Vulkan


Как ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ графичСскиС API, Vulkan Π·Π°Π΄ΡƒΠΌΠ°Π½ ΠΊΠ°ΠΊ кроссплатформСнная абстракция Π½Π°Π΄ GPU. Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚Π°ΠΊΠΈΡ… API Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ использовалось графичСскоС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ фиксированным Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Π°Ρ… Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ Π² ΠΏΠ»Π°Π½Π΅ освСщСния ΠΈ Ρ‚Π΅Π½Π΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ зависСли ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ графичСских процСссоров.

По ΠΌΠ΅Ρ€Π΅ развития Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ Π² Π½Π΅ΠΉ стало ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ всС большС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ВсС Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ API. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ абстракциям ΠΈ мноТСству Π³ΠΈΠΏΠΎΡ‚Π΅Π· со стороны графичСского Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ замысСл программиста Π² соврСмСнных графичСских Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΈΠ³Ρ€Π°Ρ… выпускаСтся большоС количСство ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Из-Π·Π° слоТности Ρ‚Π°ΠΊΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² срСди поставщиков часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ расхоТдСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² синтаксисС, принятом для ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ². Помимо этого, Π² послСднСС дСсятилСтиС Ρ‚Π°ΠΊΠΆΠ΅ наблюдался ΠΏΡ€ΠΈΡ‚ΠΎΠΊ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств с ΠΌΠΎΡ‰Π½Ρ‹ΠΌ графичСским ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. АрхитСктуры этих ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… GPU ΠΌΠΎΠ³ΡƒΡ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ ΠΈ ΡΠ½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся Ρ‚Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ контроля Π½Π°Π΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, связанным с возрастом API, являСтся ограничСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° многопоточности, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию ΡƒΠ·ΠΊΠΎΠ³ΠΎ мСста со стороны ЦП.

Vulkan ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создан для соврСмСнных графичСских Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€. Π­Ρ‚ΠΎ сниТаСт ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π½Π° сторонС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ свои Ρ†Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ API. Vulkan позволяСт ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π’Π°ΠΊΠΆΠ΅ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ расхоТдСния компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π·Π° счСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° стандартизованный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ компилятора. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Vulkan Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π³Π»Π°Π²Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ соврСмСнных Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚, объСдиняя графичСскиС ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ API.

Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ?


ΠœΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассмотрим шаги, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для отрисовки Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ процСссС. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….

Π¨Π°Π³ 1 β€” ЭкзСмпляр (instance) ΠΈ физичСскиС устройства

Π Π°Π±ΠΎΡ‚Π° с Vulkan начинаСтся с настройки Vulkan API Ρ‡Π΅Ρ€Π΅Π· VkInstance (экзСмпляр). ЭкзСмпляр создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ описания вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ всСх Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ПослС создания экзСмпляра Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Vulkan, ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько VkPhysicalDevices для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ VRAM ΠΈ возмоТности устройств, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ устройства, Ссли Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹.

Π¨Π°Π³ 2 β€” ЛогичСскоС устройство ΠΈ сСмСйства ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ подходящСС hardware устройство для использования, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ VkDevice (логичСскоС устройство), Π³Π΄Π΅ Π²Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡˆΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ возмоТности (VkPhysicalDeviceFeatures) Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² нСсколько viewport-ΠΎΠ² (multi viewport rendering) ΠΈ 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ сСмСйства ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π²Ρ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. МногиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Vulkan, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ рисования ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² памяти, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ асинхронно послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² VkQueue. ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· сСмСйства ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сСмСйство ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. НапримСр, для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… памяти ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сСмСйства ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΈΡ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ физичСского устройства. НСкоторыС устройства с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Vulkan Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… графичСских возмоТностСй, ΠΎΠ΄Π½Π°ΠΊΠΎ, всС соврСмСнныС Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Vulkan, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с очСрСдями.

Π¨Π°Π³ 3 β€” Window surface ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π° (swap chain)

Если вас интСрСсуСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ внСэкранный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ для отобраТСния ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Окна ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API исходной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ GLFW ΠΈ SDL. Π’ руководствС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GLFW, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ расскаТСм Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π° β€” это Π½Π°Π±ΠΎΡ€ Ρ†Π΅Π»Π΅ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°. Π•Π΅ Π·Π°Π΄Π°Ρ‡Π° β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рСндСрится Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΎΡΡŒ ΠΎΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° экранС. Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ изобраТСния. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Π΄Ρ€, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π° прСдоставила Π½Π°ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°Π΄Ρ€ создан, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ возвращаСтся Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π½Π° экранС. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ†Π΅Π»Π΅ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈ условий для отобраТСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° экранС зависит ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ (vsync) ΠΈ Ρ‚Ρ€ΠΎΠΉΠ½ΡƒΡŽ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠœΡ‹ рассмотрим ΠΈΡ… Π² Π³Π»Π°Π²Π΅, посвящСнной созданию Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°.

НСкоторыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ нСпосрСдствСнно Π½Π° экран Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ VK_KHR_display ΠΈ VK_KHR_display_swapchain Π±Π΅Π· взаимодСйствия с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΎΠΊΠΎΠ½. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ surface, которая прСдставляСт собой вСсь экран ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ вашСго собствСнного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΎΠΊΠΎΠ½.

Π¨Π°Π³ 4 β€” Image views ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ±ΡƒΡ„Π΅Ρ€Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (image), ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² VkImageView ΠΈ VkFramebuffer. Image view ссылаСтся Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ изобраТСния, Π° Ρ„Ρ€Π΅ΠΉΠΌΠ±ΡƒΡ„Π΅Ρ€ ссылаСтся Π½Π° image views, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρ‹ Ρ†Π²Π΅Ρ‚Π°, Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ шаблонов (stencil). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мноТСство Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ создадим image view ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ±ΡƒΡ„Π΅Ρ€ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя рисования.

Π¨Π°Π³ 5 β€” ΠŸΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€Π°

ΠŸΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π² Vulkan ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²ΠΎ врСмя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… содСрТимоС. ΠŸΠ΅Ρ€Π΅Π΄ отрисовкой Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΌΡ‹ сообщим Vulkan, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² качСствС Π±ΡƒΡ„Π΅Ρ€Π° Ρ†Π²Π΅Ρ‚Π° ΠΈ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ рисованиСм. Если ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Ρ€Π΅Π½Π΄Π΅Ρ€Π° описываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² качСствС Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², Ρ‚ΠΎ VkFramebuffer фактичСски связываСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ изобраТСния с этими слотами.

Π¨Π°Π³ 6 β€” ГрафичСский ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ (pipeline)

ГрафичСский ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π² Vulkan настраиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° VkPipeline. Он описываСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ состояниС Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ viewport ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π±ΡƒΡ„Π΅Ρ€Π° Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ состояниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ VkShaderModule. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ VkShaderModule ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ†Π΅Π»ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅. ΠœΡ‹ Π·Π°Π΄Π°Π΅ΠΌ ΠΈΡ…, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Ρ€Π΅Π½Π΄Π΅Ρ€Π°.

Одна ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй Vulkan ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ API-интСрфСйсами Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС систСмныС настройки графичСского ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π°Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ vertex layout, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ графичСский ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ придСтся Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² VkPipeline для всСх ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°. Волько Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ настройки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ viewport ΠΈ Ρ†Π²Π΅Ρ‚ очистки, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ динамичСски. ВсС состояния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ описаны явно. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ сущСствуСт смСшивания Ρ†Π²Π΅Ρ‚ΠΎΠ² (color blend state) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСсс большС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°ΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, вмСсто компиляции Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ», Ρƒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° появляСтся большС возмоТностСй для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ оказываСтся Π±ΠΎΠ»Π΅Π΅ прСдсказуСмой, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния состояния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ графичСский ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ явно.

Π¨Π°Π³ 7 β€” ΠŸΡƒΠ» ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Vulkan, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ рисования, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² VkCommandBuffer. Π‘ΡƒΡ„Π΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ бСрутся ΠΈΠ· VkCommandPool, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связан с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ сСмСйством ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ простой Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ опСрациями:

Π¨Π°Π³ 8 β€” Основной Ρ†ΠΈΠΊΠ»

Π­Ρ‚ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ прСдстоящСй Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΆΠ΅ шагов Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π²Π΅Ρ€ΡˆΠΈΠ½, созданиС uniform-Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ тСкстур β€” всС это ΠΌΡ‹ рассмотрим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…, Π° ΠΏΠΎΠΊΠ° Π½Π°Ρ‡Π½Π΅ΠΌ с простого. Π§Π΅ΠΌ дальшС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, Ρ‚Π΅ΠΌ слоТнСС Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠΉΡ‚ΠΈ Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ встраивая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π²Π΅Ρ€ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ вмСсто использования Π±ΡƒΡ„Π΅Ρ€Π° Π²Π΅Ρ€ΡˆΠΈΠ½. Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для управлСния Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½ сначала трСбуСтся знакомство с Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.

ПодвСдСм ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΈΡ‚ΠΎΠ³. Для отрисовки ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ API


Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Vulkan API Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ оформлСния ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Vulkan Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для обСспСчСния высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π½ΠΈΠ·ΠΊΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности автоматичСского обнаруТСния ΠΈ исправлСния ошибок. Если Π²Ρ‹ сдСлаСтС ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ даст сбой ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° вашСй Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π΅, Π½ΠΎ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· строя Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ….

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Vulkan позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, извСстной ΠΊΠ°ΠΊ слои Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ. Π‘Π»ΠΎΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ β€” это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вставлСны ΠΌΠ΅ΠΆΠ΄Ρƒ API ΠΈ графичСским Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ для выполнСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ отслСТивания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚. Π›ΡŽΠ±ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС слои Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ, Π½ΠΎ Vulkan SDK ΠΎΡ‚ LunarG прСдоставляСт стандартный Π½Π°Π±ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² руководствС. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° для получСния сообщСний ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΎΡ‚ слоСв.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Vulkan Ρ€Π°ΡΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, ΠΈ слои Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ достаточно ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅, Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ экрана ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с OpenGL ΠΈ Direct3D.

ΠžΡΡ‚Π°Π»ΡΡ всСго ΠΎΠ΄ΠΈΠ½ шаг, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΈ это β€” настройка Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Vulkan ΠΈ DirectX ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· нас, Π³Π΅ΠΉΠΌΠ΅Ρ€ΠΎΠ², ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Microsoft DirectX. Однако, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π΅Π³ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Ρ‹. Π’ настоящСС врСмя, фактичСски, приобрСтя ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅ Vulkan, Π²Π΅Ρ‰ΠΈ относящиСся ΠΊ Π΄Π²ΡƒΠΌ API, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, становятся Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ слоТными. Π’ этом руководствС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ API, Vulkan ΠΈ DirectX, ΠΈ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° наши ΠΈΠ³Ρ€Ρ‹.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ API

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ DirectX ΠΈ Vulkan, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ API. АббрСвиатура ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования».

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для обСспСчСния связи ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Одним ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся графичСский интСрфСйс Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ посрСдника ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ обСспСчиваСт ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ срСду. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой срСды ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, Π½Π΅ зная, ΠΊΠ°ΠΊ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API) заполняСт Ρ€ΠΎΠ»ΡŒ посрСдника. Однако Π½Π° этот Ρ€Π°Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ПК ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. API-интСрфСйсы Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ распространСны, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, прСдлагая программистам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты для создания своСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский apiΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ API, β€” это ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ автоматичСски рСгистрируСмся Π² Π½ΠΎΠ²ΠΎΠΌ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ срСдствС ΠΈΠ»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наши Ρ€Π°Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΠΈΠ· Facebook ΠΈΠ»ΠΈ Google (вмСсто создания Π½ΠΎΠ²ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ).

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Π΅Π±-сайт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ API, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ связываСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ услугой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Facebook ΠΈΠ»ΠΈ Twitter), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (имя (ΠΈΠΌΠ΅Π½Π°), адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈ Ρ‚. Π΄.) Для создания нашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ сущСствуСт мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ API для всСх Π²ΠΈΠ΄ΠΎΠ² взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ систСмы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях использованиС API-интСрфСйсов ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΌΡƒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ Π² частности, ΠΊ нашСй графичСской ΠΊΠ°Ρ€Ρ‚Π΅ (Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌ).

DirectX ΠΈ Vulkan фактичСски ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΈΠ³Ρ€ΠΎΠΉ) ΠΈ графичСским процСссором, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api

Π‘ выпуском Windows 95 ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ памяти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ доступа ΠΊ рСсурсам, ΠΊΠ°ΠΊ Π² MS-DOS. DirectX Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появился Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… API для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ³Ρ€Ρ‹.

Π’Π΅Ρ€ΠΌΠΈΠ½ Β«DirectXΒ» начинаСтся со слова Β«DirectΒ», ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° прямой доступ ΠΊ рСсурсам систСмы. НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Direct3D для Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ DirectSound для Π°ΡƒΠ΄ΠΈΠΎ. Π§Π°ΡΡ‚ΡŒ Β«Π₯Β» относится ΠΊ API Π² ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ; Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ объСдинив всС API-интСрфСйсы ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ DirectX. Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ популярной Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Xbox.

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅ΡΠ½ΡƒΡŽ связь ΠΌΠ΅ΠΆΠ΄Ρƒ DirectX ΠΈ консолью Microsoft. Π•Π³ΠΎ послСдняя вСрсия, DirectX 12, ΠΈΠΌΠ΅Π΅Ρ‚ большиС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Windows 10 ΠΈ новСйшСй ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ консолью ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Xbox One.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский apiDirect3D являСтся ΠΆΠ΅ΠΌΡ‡ΡƒΠΆΠΈΠ½ΠΎΠΉ DirectX ΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для создания 3D-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° нашСм экранС. Он Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Π² полноэкранном Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ускоритСли. ПослСдний ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивно, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто Π·Π° счСт Π±ΠΎΠ»Π΅Π΅ эффСктивного использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния нашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ этом случаС это Π±ΡƒΠ΄Π΅Ρ‚ наша Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°.

Π’ΡƒΠ»ΠΊΠ°Π½ AMD

Π’ 2015 Π³ΠΎΠ΄Ρƒ Kronos Group Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° свой собствСнный API. Vulkan β€” это Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСски Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π³ΠΎ пСрвая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия Π΄Π΅Π±ΡŽΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π° Π² августС 2016 Π³ΠΎΠ΄Π°.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Β«Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒΒ» Π½Π΅ относится ΠΊ качСству. ВмСсто этого этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ описываСт ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π’ΡƒΠ»ΠΊΠ°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Π₯ронос ΠΎΠΊΡ€ΡƒΠΆΠ°Π΅Ρ‚ сСбя ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠΌΠ΅Π½ Π² ИВ-индустрии. НСкоторыС ΠΈΠ· Π½ΠΈΡ… β€” Google, Intel, Sony, Nvidia ΠΈ AMD. ПослСдниС Π΄Π²Π° Π΄Π°Π»ΠΈ API, свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Vulkan.

OpenGL β€” популярный API срСди графичСских Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ². ЀактичСски ΠΎΠ½ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π₯роносом, ΠΈ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ характСристики Π’ΡƒΠ»ΠΊΠ°Π½Π°. Однако Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Π±Ρ‹Π» Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΌ.

Одним ΠΈΠ· самых ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Vulkan являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Vulkan с нСсколькими ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ вмСстС с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ β€” это Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ DirectX.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский apiΠ—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Khronos. ΠœΠ°Π½Ρ‚ΠΈΡ обСспСчила ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π±Π°Π·Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π’ΡƒΠ»ΠΊΠ°Π½. НаконСц Vulkan Π² настоящСС врСмя находится Π² вСрсии 1.1.

Как ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΈΠ³Ρ€Ρ‹

Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ рассмотрСли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основы, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ API, Microsoft ΠΈ Khronos. Но ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΈΠ³Ρ€Ρ‹?

Π­Ρ‚ΠΈ Π΄Π²Π° API Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π”ΠΎ сих ΠΏΠΎΡ€ DirectX, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, обСспСчивал Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Vulcan, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ½ Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ ΠΏΠΎΠ·Π°Π΄ΠΈ.

Microsoft ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ DirectX 12 сниТаСт ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° 50% ΠΏΡ€ΠΈ использовании DirectX 11. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Vulkan Ρ‚Π°ΠΊΠΆΠ΅ дСмонстрируСт Π»ΡƒΡ‡ΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊ. Говоря ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ°Ρ…, DirectX 11 ΠΈ OpenGL Π±Ρ‹Π»ΠΈ созданы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ одноядСрных процСссоров; Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ настроСны с использованиСм Π½ΠΎΠ²Ρ‹Ρ…, многоядСрных процСссоров.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ΄Π½ΠΎ ядро ​​управляСт Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… процСссов, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ вовсС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Оба API (DirectX 12 ΠΈ Vulkan) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ процСссоры с нСсколькими ядрами ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ максимально эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свои возмоТности. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΎΡ‚ процСссора ΠΊ графичСской ΠΊΠ°Ρ€Ρ‚Π΅ (Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌ), прСдлагая Π±ΠΎΠ»Π΅Π΅ сбалансированный ΠΎΠΏΡ‹Ρ‚.

ВзаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя элСмСнтами ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ сборки ПК. ГрафичСскиС ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Π΅ΠΌ процСссоры, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΈΠ³Ρ€. Π‘ дальнСйшим Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… API маловСроятно, Ρ‡Ρ‚ΠΎ процСссоры ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π½Π΅Π³ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ с простым процСссором ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΡƒΠ·ΠΊΠΈΡ… мСст.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… графичСских ΠΊΠ°Ρ€Ρ‚

Π—Π΄Π΅ΡΡŒ Khronos Group ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»Π°ΡΡŒ со Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя API-интСрфСйсами с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… графичСских ΠΊΠ°Ρ€Ρ‚ (использованиС явного многоканального GPU). ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹, Ссли ΠΈΡ… Ρ‡ΠΈΠΏΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ°Ρ€Ρ‚Π°ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ экрана.

Microsoft здСсь Π΅Ρ‰Π΅ Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ, позволяя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько графичСских ΠΊΠ°Ρ€Ρ‚ Π΄Π°ΠΆΠ΅ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ производитСля, Ρ‡Ρ‚ΠΎ часто Π±Ρ‹Π²Π°Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСм ΠΈΠΌΠ΅ΡŽΡ‚ нСзависимый ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ графичСский процСссор. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ эти Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ возмоТностСй SLI ΠΈ Crossfire ΠΎΡ‚ Nvidia ΠΈ AMD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΈ Π² частности, Π² случаС SLI Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ графичСскиС ΠΊΠ°Ρ€Ρ‚Ρ‹.

Π¨Π΅ΠΉΠ΄Π΅Ρ€Ρ‹

Π¨Π΅ΠΉΠ΄Π΅Ρ€Ρ‹ β€” это нСбольшиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° Π½Π°ΡˆΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ…. Они ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 3D-срСдС. Π’Π΅Π½ΠΈ, Ρ‚ΡƒΠΌΠ°Π½ ΠΈ освСщСниС Π² ΠΈΠ³Ρ€Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°.

Vulkan ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС для ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ SPIR-V. Π•Π³ΠΎ двоичная Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DirectX DX.

SPIR-V вСрсия 1.3 отличаСтся SPIR-V opt, инструмСнтом для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ². ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ достигаСт + 40% ΠΎΡ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° DX ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ прСдставлСния для DirectX.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ структуры Π² HLSL (высокоуровнСвый ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π½Ρ‹ΠΉ язык), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Microsoft, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ нСпосрСдствСнно Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ.

HLSL ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ DirectX с вСрсии 9. Он использовался Π² качСствС дополнСния ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ языку ассСмблСра ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ². Π‘ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй SPIR-V Vulkan Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΅Π΅.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогут ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для своих ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΈ ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ колСсо. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ пСрСнСсСны с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с нСсколькими ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

Π§Ρ‚ΠΎ касаСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, большоС прСимущСство Vulkan Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Windows, Linux, Mac OS, Android ΠΈ iOS. DirectX 12 с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Windows 10 ΠΈ Xbox One. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ DirectX 12, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Π΄ΠΎ Windows 10, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ консоль ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ DirectX 12, ΠΈ Π²Π°ΠΌ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Windows 10 Π²ΠΎ врСмя бСсплатного обновлСния, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ руководством ΠΏΠΎ свободным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны:

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅, ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡ€Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ API Vulkan, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ DirectX.

Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ названия Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ наши ΠΈΠ³Ρ€Ρ‹. Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Linux Π½Π΅ Ρ‚Π°ΠΊ популярСн, ΠΊΠ°ΠΊ Windows, связана с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послСдняя отличаСтся ΠΎΡ‚ ΠΈΠ³Ρ€.

РаспрСдСлСниС Linux ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для размСщСния Π½Π°ΡˆΠΈΡ… ΠΈΠ³Ρ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скоррСктирован для этой Ρ†Π΅Π»ΠΈ. НапримСр Steam OS β€” это спСциализированная опСрационная систСма, прСдназначСнная ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для ΠΈΠ³Ρ€.

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅: компания Π΄ΡƒΠΌΠ°Π΅Ρ‚ ΠΎ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ API. ΠšΡ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ?

Оба ΠΈΠΌΠ΅ΡŽΡ‚ схоТиС мощности ΠΎΠ±Π° Π»ΡƒΡ‡ΡˆΠΈΠ΅, Ρ‡Π΅ΠΌ ΠΈΡ… ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΈ, ΠΈ ΠΎΠ±Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ явноС использованиС Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚. Vulkan ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows 10 ΠΈ Xbox One, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ DirectX ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС Π΄Π²Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский apiΠ’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

НСобходимо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Vulkan являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² области Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ VR Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ 3D-сцСну с Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ зрСния β€” ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π³Π»Π°Π·Π°.

Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Π½Π°ΡˆΡƒ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ΄Π½ΠΎΠΉ пСрспСктивы. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ для пСрспСктивы нашСго Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π³Π»Π°Π·Π°.

ВСрсия 1.1 Vulkan ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° для формирования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π΄Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² прилоТСниях VR.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π²ΡƒΡ… API. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, Ρƒ нас Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚Π΅Ρ€Π°Π½ DirectX с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 20-Π»Π΅Ρ‚Π½ΠΈΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π’ΡƒΠ»ΠΊΠ°Π½Ρƒ Π΅Π΄Π²Π° Π±ΡƒΠ΄Π΅Ρ‚ 3 Π³ΠΎΠ΄Π° с 2015 Π³ΠΎΠ΄Π°. Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Vulkan являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π΅Π³ΠΎ Ρ‚Π΅ΠΌΠΏΡ‹ роста. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠΈ Khronos, ΠΏΠΎΡ…ΠΎΠΆΠ΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ относятся ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ API, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‚.

ВсС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… сообщСству, помогая API расти быстрСС. НаконСц слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ DirectX Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НСсмотря Π½Π° свои Π³ΠΎΠ΄Ρ‹ развития, ΠΎΠΊΠΎΠ»ΠΎ 40 ΠΈΠ³Ρ€ Π² настоящСС врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Vulkan, занимая Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Ρ‹Π½ΠΊΠ°. НСкоторыС ΠΈΠ· Π½ΠΈΡ… β€” Quake, Roblox, Talos ΠΈ Dota 2. Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Vulkan приблиТаСтся ΠΊ DirectX, ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ½ прСвосходит Π΅Π³ΠΎ. Π‘Π°ΠΌΡ‹Π΅ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π’ΡƒΠ»ΠΊΠ°Π½Π° β€” ΠΈΠ³Ρ€Π° Doom.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский apiVulkan Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ» свою ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π°Π·Π²Π°Π½ΠΈΠΉ AAA, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Wolfenstein II, Π½Π΅ прСнСбрСгая названиями VR, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Doom VFR ΠΈ Serious Sam VR. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ³Ρ€. Π₯отя здСсь Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈΠ³Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ DirectX 12.

Оба API Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π›ΡƒΡ‡ΡˆΠ΅Π΅ использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… графичСских ΠΊΠ°Ρ€Ρ‚ ΠΈ мСньшСС использованиС ЦП повысит ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… систСм. По слухам, Π½ΠΎΠ²Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΎΡ‚ Nvidia Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ Π»Π΅Ρ‚Π° ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π²Π·ΠΎΠΉΠ΄ΡƒΡ‚ сСгодняшниС Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ графичСскиС ΠΊΠ°Ρ€Ρ‚Ρ‹. Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΎΠ±Ρ‰Π΅Π΅ состояниС Π²Π΅Ρ‰Π΅ΠΉ каТСтся довольно Π³ΠΈΠ±ΠΊΠΈΠΌ. Π’ любом случаС, измСнСния Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€ скоро Π±ΡƒΠ΄ΡƒΡ‚ Ρƒ нас, ΠΈ ΠΎΠ±Π° API нСсомнСнно Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ.

Как Π²Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄Π²ΡƒΠΌ API?

Π’Ρ‹ ΡƒΠΆΠ΅ ΡƒΠ·Π½Π°Π»ΠΈ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ прСдоставили Π½Π° Vulkan ΠΈ DirectX? Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡ… сопСрничСство усиливаСтся, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… API Π²Ρ‹ считаСтС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для развития ΠΈΠ³Ρ€Ρ‹? ΠœΡ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Π΅ΠΌ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *