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 г. Той беше актуализиран няколко пъти след излизането си и е включен в операционната система на Microsoft на Microsoft. DirectX е графичният API, който почти всяка игра, пусната за компютър, ще поддържа. Всъщност това е толкова често, че днес наистина е стандартът за компютърните игри. DirectX е изключително за продукти на Windows и Microsoft, което за съжаление го прави много затворена система. Следващ ред е OpenGL, единственият основен API с графичен код с отворен код. OpenGL е издаден през 1992 г. и е мултиплатформен, което означава, че работи с няколко операционни системи, включително Windows, Linux и Mac OS. И накрая, имаме най-новия графичен API, Mantle. Mantle е разработен през 2013 г. чрез партньорство между AMD и Dice. Mantle е наличен на Windows и само за процесори на AMD.

Фигура 2: Сравняване на DirectX 12 с DirectX 11
Източник на изображението; Кредит за изображения: Intel

DirectX 12

Очаква се DirectX 12 да бъде пусната с Windows 10 тази есен и се предлагат много нови подобрения. Едно от големите подобрения е много по-добрата поддръжка с много нишки. Повечето от работата се разпределя върху множество ядра на процесора, което позволява много по-добро и по-ефективно използване на процесора. Много пъти DirectX 11 ще има само едно ядро ​​на процесора, напълно окомплектовано, докато други ядра седят близо до празен ход. DirectX 12 обещава да разпредели това натоварване върху процесорните ядра по-равномерно, като дава на игрите много повече мощност на процесора за работа. Следващото голямо подобрение, обещано от DirectX 12, е възможността да се справят с много повече тегления. Обаждането при теглене се случва по всяко време, когато двигателят на играта иска да нарисува нещо на екрана. Изискването за много теглене на обаждания като цяло е много облагащо с процесора. Предполага се, че DirectX 12 ще може да обработва до 600 000 разговори за теглене. За да изглежда това в перспектива, DirectX 9 може да се справи само с 6000 тегления или 1/100 от това, което DirectX 12 ще може.

Вече години наред се изпълняват множество графични процесори в режим SLI / Crossfire. Все пак едно от големите ограничения беше, че VRAM вграденият в картите не се подреждаше заедно, за да направят един голям, непрекъснат пул. Например, ако имате два графични процесора всяка с 2 GB VRAM, все пак ефективно разполагате само с 2 GB VRAM, тъй като всяка карта трябва да има същата информация, съхранявана в нея. DirectX 12 се надява да реши този проблем чрез AFR или алтернативно изобразяване на кадър. Вместо всяка GPU рендериране на част от всеки кадър, сега графичният процесор ще направи един цял кадър. Това ще позволи VRAM на всяка карта да се използва независимо и да се надяваме карти с по-малки количества VRAM да бъдат жизнеспособни за игри за по-дълго време. Предполага се, че има много други нови функции, включени в DirectX 12, за да избутат игровата графика по-далеч от всякога. Въпреки това, Microsoft все още е доста притиснат какви са тези нови функции. Надяваме се, че скоро ще разберем повече за тях, когато излизането на API се приближава.

Фигура 3: DirectX 12 API режийните разходи се намаляват, когато се използват многоядрени процесори.
Източник на изображението; Кредитна снимка: nVidia GeForce

Вулкан

За Vulkan не се знае толкова много, колкото има DirectX 12, както току-що беше обявено на GDC 2015. Това, което знаем, е, че създателите на OpenGL, Khronos Group, изпуснаха името glNext в полза на Vulkan. Вълкан изглежда произлиза от мантията, за която споменах по-рано в статията. Освен това изглежда, че AMD носи най-добрите части на Mantle на масата за Vulkan в партньорство с Khronos Group. Предполага се, че Vulkan има много от същите предимства на DirectX 12, но той не е обвързан с една платформа като Windows. Вместо това той ще бъде наличен на много различни платформи, включително Linux и дори мобилни устройства. Драйверите на Vulkan както за Windows, така и за Linux ще бъдат напълно отворен код за разлика от DirectX. Vulkan ще подобри многокрайната резба и следователно ще използва много по-добре използваната мощност на процесора днес, като разпространява натоварването в множество ядра на процесора. Както споменахме по-рано, намаляването на натоварването на процесора ще позволи на графичните процесори да не бъдат затворени толкова лесно, колкото сега. Това би трябвало да осигури доста съществено увеличение на кадрите по време на игра. Източник 2, който беше обявен наскоро от Valve, ще бъде първият нов игрален двигател, който изцяло поддържа Vulkan, въпреки че съм сигурен, че много повече ще бъдат обявени в близко бъдеще. Dota 2, игра, известна с интензивността на процесора, се показваше в Source 2 с новия Vulkan API, използвайки интегрираната графика на Intel на процесора. Това е нещо, което със сигурност не би било желателно при DirectX 11, но с Vulkan играта изглежда поддържаше разумна честота на кадрите. Дан Бейкър, който е разработчик на Oksid игри, дори стигна дотам, че „докато производителите на графични процесори не се съберат и правят графичните процесори десет пъти по-бързи, отколкото имаме сега, не можем да максимизираме процесора“. Това е добра новина за хора, работещи с по-бавни процесори или които имат много GPU конски сили в момента, защото това ще означава, че много по-добра производителност може да се постигне на същия хардуер.

Фигура 4: Диаграма, показваща предимствата на Vulkan (намалено тясно място до GPU).
Източник на изображението; Кредитна снимка: Khronos

Какво означава това за бъдещето на игрите?

Е, за дълго време мощността на графичния процесор се увеличава с много по-бързи темпове от мощността на процесора. Преди пет години Intel дори заяви, че някои графични процесори са 14 пъти по-бързи от техните собствени процесори. Тези тестове бяха направени с помощта на nVidia GTX 280 срещу i7 960 Intel процесор - сега се счита за сравнително остарял хардуер. Разликата между nVidia GTX Titan X (или дори nVidia GTX 980) и текущата централна централна централа - Intel i7-4790k процесор - трябва да бъде много по-голяма. Смисълът, който се опитвам да направя, е, че започваме да виждаме все повече и повече игри да се удрят в стена в изпълнение поради процесора. Попитайте всеки с монитор с висока скорост на опресняване колко е трудно да поддържате 100 + fps с текущите процесори в някои игри. Честно казано, би било само по-трудно без тези нови API и тяхната способност да използват по-ефективно енергията на процесора. Въвеждането на тези нови API може да означава огромно увеличение на производителността за повечето хора. Освен това, това би позволило на разработчиците да създават много по-интензивни процесорни игри, отколкото имаме сега. Например, представете си игра като Assasins Creed, имаща хиляди NPC на екрана наведнъж, всички взаимодействащи помежду си и с вашия герой, докато сте роуминг в град. Или игри като Star Citizen, където се нуждаете от много много силен процесор, за да получите всякакъв вид стабилна и приемлива честота на кадрите, в близко бъдеще може би ще ви е необходим среден процесор в най-добрия и силен графичен процесор, за да запазите хубавите стабилни 60 кадъра в секунда.

В крайна сметка това е много вълнуващо време да си геймър. Когато тези нови графични API са пуснати, може просто да видим най-големия скок в игровата технология от много време. Да се ​​надяваме само, че тези API-и могат да достигнат до свръх, който те вече са създали.

Нови графични api и бъдещето на компютърните игри