Anonim

Давайте зіткнемося з цим: DirectX 11 і OpenGL старіють. DirectX 11 був представлений з Windows 7 ще в 2009 році, а OpenGL 4.0 - через рік. У програмні роки ці технології тепер є давніми, і поточний урожай апаратного забезпечення, яке вони працюють, навіть не був на графічній дошці, коли ці графічні API були випущені. З огляду на цей очевидний розрив, що робить галузь з часом? Що ж, ми розглянемо найближче майбутнє та побачимо, але для початку давайте спочатку пояснимо, що таке API та яку функцію він служить для ігор.

Що таке API?

Інтерфейс програмування API або додатків - це набір протоколів та інструментів, що використовуються для створення програмного забезпечення. Графічний API - це справді лише спеціалізований API, створений для полегшення створення 3D-графіки. Графічний інтерфейс API спрощує створення 3D-зображень, але вони також дозволяють вам сказати API зробити щось (наприклад, намалювати прямокутник) і, в свою чергу, дозволити API потім спілкуватися з обладнанням про те, як рухатись до виконання цього завдання. Це основна причина того, що стільки різних графічних процесорів зі спеціалізованим обладнанням можуть працювати в одних іграх. Без існування API однакову гру потрібно було б писати різними способами, щоб спілкуватися з кожним конкретним набором обладнання. Це суттєво обмежить виробництво обладнання та значно збільшить вартість побудови ігор, вартість, яка в кінцевому рахунку буде передана кінцевому споживачеві.

Щоб зробити пояснення вище трохи простішим для розуміння, я використовую аналогію: Подумайте про API як менеджер будівельних майданчиків. Його робота полягає в тому, щоб взяти ідею архітектора і розбити її, розписати, які екіпажі повинні бути де і коли, і забезпечити, щоб усі знаходилися на одній сторінці, що потрібно зробити.

Рисунок 1: Графічне зображення того, як працює API

В даний час використовуються графічні API

Тепер, коли ми розуміємо завдання графічного API, давайте детальніше ознайомитись з поточним складом. Основним гравцем сьогоднішнього ринку є DirectX Microsoft, який був представлений ще в 1995 році. Він був оновлений кілька разів з моменту випуску, і він включений в операційну систему Windows Microsoft. DirectX - це єдиний графічний API, який підтримуватиме майже кожну гру, випущену для ПК. Насправді вона настільки поширена, що справді є стандартом для ігор на ПК сьогодні. DirectX ексклюзивно для продуктів Windows та Microsoft, що, на жаль, робить її дуже закритою системою. Наступний рядок - OpenGL, єдиний великий графічний API з відкритим кодом. OpenGL була випущена в 1992 році і є багатоплатформою, це означає, що вона працює з декількома операційними системами, включаючи Windows, Linux та Mac OS. Нарешті, у нас є найновіший графічний API, Mantle. Мантія була розроблена в 2013 році завдяки партнерству між AMD і Dice. Мантія доступна в Windows, і лише для процесорів AMD.

Малюнок 2: Порівняння DirectX 12 проти DirectX 11
Джерело зображення; Кредит на зображення: Intel

DirectX 12

Цієї осені планується випустити DirectX 12 разом із Windows 10, і багато нових вдосконалень розглядаються. Одне з великих вдосконалень - це набагато краща підтримка багатопотокової передачі. Більша частина роботи розподіляється на декілька ядер CPU, що дозволяє значно краще та ефективніше використовувати процесор. Багато разів DirectX 11 матиме лише одне ядро ​​центрального процесора, повністю змішаного, а інші ядра сидять біля простою. DirectX 12 обіцяє більш рівномірно розподілити це навантаження на ядра процесора, надаючи іграм набагато більше сил для роботи процесора. Наступне велике вдосконалення, обіцяне DirectX 12, - це можливість обробляти ще багато розіграшів. Виклик жеребкування відбувається в будь-який час, коли ігровий движок хоче щось намалювати на екрані. Вимога безлічі зворотних дзвінків, як правило, дуже оподатковує процесор. Передбачається, що DirectX 12 зможе обробляти до 600 000 розмовних дзвінків. Для цього, DirectX 9 міг обробляти лише 6000 дзвінків або 1/100 від того, що DirectX 12 зможе.

Вже багато років працює декілька GPU в режимі SLI / Crossfire. Однак одним з великих обмежень було те, що VRAM, вбудований у карти, не збирався разом, щоб створити один великий, безперервний пул. Наприклад, якщо у вас є два графічних процесора з 2 ГБ VRAM, у вас все ще було лише 2 ГБ VRAM, оскільки кожна карта повинна містити ту саму інформацію. DirectX 12 сподівається вирішити цю проблему за допомогою AFR або альтернативного відображення кадру. Замість того, щоб кожна частина кадру відображала GPU, тепер замість цього буде представлений один цілий кадр. Це дозволить VRAM на кожній картці використовувати самостійно, і, сподіваємось, карти з меншою кількістю VRAM можуть бути життєздатними для ігор на довший час. Передбачається, що в DirectX 12 є багато інших нових функцій, що дозволяють просунути ігрову графіку далі, ніж будь-коли раніше. Однак, Microsoft все ще залишається досить тихим щодо цих нових функцій. Ми сподіваємось, що дізнаємось більше про них незабаром, коли випуск API наблизиться.

Малюнок 3: Накладні витрати API DirectX 12 зменшуються при використанні багатоядерних процесорів.
Джерело зображення; Кредит зображення: nVidia GeForce

Вулкан

Про Vulkan відомо не так багато, як про DirectX 12, як це було опубліковано на GDC 2015. Що ми знаємо, це те, що виробники OpenGL, Khronos Group, кинули ім'я glNext на користь Вулкана. Вулкан, здається, походить від Мантії, про яку я згадував раніше у статті. Крім того, схоже, що AMD приносить найкращі частини Мантії на стіл для Вулкана в партнерстві з групою Khronos. У Вулкана, як передбачається, є багато однакових переваг DirectX 12, але він не прив'язаний до єдиної платформи, як Windows. Натомість він буде доступний на багатьох різних платформах, включаючи Linux і навіть мобільні пристрої. Драйвери Vulkan для Windows і Linux будуть повністю відкритим кодом на відміну від DirectX. Vulkan покращить багатопотоковість, а тому значно краще використовувати потужність процесора, доступну сьогодні, розподіляючи навантаження на декілька ядер процесора. Як згадувалося раніше, зменшення навантаження на процесор дозволить GPU не бути вузькими місцями так легко, як зараз. Це повинно забезпечити досить значне збільшення кадрів під час ігор. Джерело 2, яке нещодавно оголосило Valve, стане першим новим ігровим двигуном, який повністю підтримує Вулкан, хоча я впевнений, що ще багато іншого буде оголошено найближчим часом. Dota 2, гра, відома тим, що вона є інтенсивним процесором, демонструвалась у Source 2 із новим API Vulkan, використовуючи інтегровану графіку Intel на процесорі. Це те, що, звичайно, не було б бажано в DirectX 11, але з Vulkan гра, здавалося, підтримувала розумну частоту кадрів протягом усього часу. Ден Бейкер, розробник ігор Oksid, навіть пішов далеко, щоб сказати, що "поки виробники GPU не зроблять свої дії разом і не зроблять графічні процесори в десять разів швидше, ніж у нас зараз, ми не можемо досягти максимального процесора". Це хороша новина для людей, які працюють на більш повільних процесорах або мають у своєму розпорядженні великою кількістю кінських сил GPU в даний час, оскільки це означатиме набагато кращу продуктивність на тому ж наборі обладнання.

Рисунок 4: Діаграма, що показує переваги Vulkan (зменшено вузьке місце до GPU).
Джерело зображення; Кредит на зображення: Хронос

Що це означає для майбутнього ігор?

Ну, надовго потужність GPU зростає набагато швидше, ніж потужність процесора. П'ять років тому Intel навіть заявила, що деякі графічні процесори були в 14 разів швидшими, ніж їх власні процесори. Ці тести були зроблені за допомогою nVidia GTX 280 проти процесора i7 960 Intel - тепер він вважається відносно застарілим обладнанням. Розрив між nVidia GTX Titan X (або навіть nVidia GTX 980) і поточним процесором основного процесора - процесором Intel i7-4790k - повинен бути значно більшим. Справа, яку я намагаюся зробити, - це те, що ми починаємо бачити, що все більше і більше ігор вражають стіну в продуктивності через CPU. Запитайте будь-кого з монітором високої частоти оновлення, наскільки важко підтримувати 100 кадрів в секунду з поточними процесорами в деяких іграх. Відверто кажучи, без цих нових API та їхньої здатності ефективніше використовувати потужність процесора, було б лише складніше. Впровадження цих нових API може означати величезний збільшення продуктивності для більшості людей. Крім того, це також дозволить розробникам створювати набагато більш інтенсивні ігри на процесорі, ніж у нас зараз. Наприклад, уявіть собі таку гру, як Assasins Creed, яка має тисячі NPC одночасно на екрані, які взаємодіють між собою та вашим персонажем, поки ви блукаєте містом. Або такі ігри, як Star Citizen, де вам потрібен дуже сильний процесор, щоб отримати будь-яку стабільну і прийнятну частоту кадрів, в найближчому майбутньому може знадобитися середній процесор в кращому випадку і потужний графічний процесор, щоб зберегти хороші міцні 60 кадрів в секунду.

Зрештою, це дуже хвилюючий час бути геймером. Коли нові графічні API випущені, ми можемо просто побачити найбільший стрибок ігрових технологій за довгий час. Будемо просто сподіватися, що ці API можуть відповідати тому, що вони вже створили для себе.

Нові графічні інтерфейси та майбутнє комп'ютерних ігор