Anonim

Spójrzmy prawdzie w oczy: DirectX 11 i OpenGL są już trochę stare. DirectX 11 został wprowadzony wraz z Windows 7 w 2009 roku, a rok później OpenGL 4.0. W latach oprogramowania technologie te są już starożytne, a obecny sprzęt, którego używają, nie pojawił się nawet na desce kreślarskiej, kiedy te graficzne interfejsy API zostały wydane. Biorąc pod uwagę to oczywiste rozłączenie, co robi branża, aby poradzić sobie z duchem czasu? Cóż, przyjrzymy się najbliższej przyszłości i zobaczymy, ale najpierw zacznijmy od wyjaśnienia, czym jest interfejs API i jaką funkcję pełni w grach.

Co to jest API?

Interfejs programowania API lub aplikacji to zestaw protokołów i narzędzi używanych do tworzenia oprogramowania. Graficzne interfejsy API to tak naprawdę wyspecjalizowane API zbudowane w celu ułatwienia generowania grafiki 3D. Interfejsy API grafiki sprawiają, że budowanie obrazów 3D jest łatwiejsze, ale pozwalają też powiedzieć interfejsowi API, aby coś zrobił (np. Narysował prostokąt) i z kolei pozwolił interfejsowi API komunikować się ze sprzętem na temat tego, jak wykonać to zadanie. Jest to główny powód, dla którego tak wiele różnych procesorów graficznych ze specjalistycznym sprzętem może uruchamiać te same gry. Bez istnienia interfejsu API ta sama gra musiałaby zostać napisana na różne sposoby komunikacji z każdym konkretnym zestawem sprzętu. Ograniczyłoby to poważnie producentów sprzętu i znacznie zwiększyło koszty budowy gier, które ostatecznie zostałyby przeniesione na konsumenta końcowego.

Aby nieco ułatwić zrozumienie powyższego wyjaśnienia, skorzystam z analogii: Pomyśl o API jako menadżerze budowy. Jego zadaniem jest zrobienie pomysłu architekta i rozbicie go, ustalenie, jakie załogi muszą być gdzie i kiedy, i upewnienie się, że wszyscy są na tej samej stronie, co należy zrobić.

Rysunek 1: Graficzne przedstawienie działania interfejsu API

Aktualnie używane interfejsy API grafiki

Teraz, gdy rozumiemy zadanie interfejsu API grafiki, przyjrzyjmy się bliżej obecnemu składowi. Głównym graczem na rynku jest Microsoft DirectX, który został wprowadzony już w 1995 roku. Został on kilkakrotnie zaktualizowany od czasu wydania i jest zawarty w systemie operacyjnym Microsoft Windows. DirectX to jedyny graficzny interfejs API obsługiwany przez prawie każdą grę wydaną na PC. W rzeczywistości jest tak powszechny, że tak naprawdę jest dzisiaj standardem w grach komputerowych. DirectX jest wyłączny dla produktów Windows i Microsoft, co niestety czyni go bardzo zamkniętym systemem. Następnym w kolejności jest OpenGL, jedyny główny graficzny interfejs API typu open source. OpenGL został wydany w 1992 roku i jest wieloplatformowy, co oznacza, że ​​współpracuje z kilkoma systemami operacyjnymi, w tym Windows, Linux i Mac OS. Wreszcie mamy najnowszy graficzny interfejs API, Mantle. Mantle został opracowany w 2013 roku w ramach partnerstwa między AMD i Dice. Mantle jest dostępny w systemie Windows i tylko dla procesorów graficznych AMD.

Rysunek 2: Porównanie DirectX 12 z DirectX 11
Źródło obrazu; Obrazy Źródło: Intel

DirectX 12

DirectX 12 ma zostać wydany tej jesieni wraz z Windows 10 i reklamowanych jest wiele nowych ulepszeń. Jedną z dużych ulepszeń jest znacznie lepsza obsługa wielowątkowości. Więcej pracy rozkłada się na wiele rdzeni procesora, co pozwala na znacznie lepsze i bardziej wydajne wykorzystanie procesora. Wiele razy DirectX 11 będzie miał maksymalnie maksymalnie jeden rdzeń procesora, podczas gdy inne rdzenie będą prawie bezczynne. DirectX 12 obiecuje bardziej równomierne rozłożenie obciążenia na rdzenie procesora, dzięki czemu gry będą miały znacznie większą moc procesora. Kolejnym dużym ulepszeniem obiecanym przez DirectX 12 jest możliwość obsłużenia znacznie większej liczby połączeń losujących. Wywołanie losowania następuje za każdym razem, gdy silnik gry chce narysować coś na ekranie. Wymóg dużej liczby losowań jest na ogół bardzo obciążający dla procesora. DirectX 12 powinien obsłużyć do 600 000 połączeń losujących. Mówiąc inaczej, DirectX 9 może obsłużyć tylko 6000 wywołań losowania lub 1/100 tego, co potrafi DirectX 12.

Od lat możliwe jest uruchamianie wielu układów GPU w trybie SLI / Crossfire. Jednak jednym z dużych ograniczeń było to, że pamięć VRAM wbudowana w karty nie układała się w stos, tworząc jedną dużą, ciągłą pulę. Na przykład, jeśli masz dwa procesory graficzne z 2 GB pamięci VRAM, nadal skutecznie masz tylko 2 GB pamięci VRAM, ponieważ każda karta musi mieć w sobie te same informacje. DirectX 12 ma nadzieję rozwiązać ten problem za pomocą AFR lub renderowania w alternatywnej ramce. Zamiast każdej części renderującej GPU każdej ramki, procesory graficzne będą teraz renderować jedną całą ramkę. Pozwoli to na niezależne używanie VRAM na każdej karcie i, mam nadzieję, że karty z mniejszą ilością VRAM będą mogły grać dłużej przez dłuższy czas. Powinno być wiele innych nowych funkcji zawartych w DirectX 12, które jeszcze bardziej zwiększają możliwości grafiki w grach. Jednak Microsoft nadal bardzo milczy na temat tych nowych funkcji. Mamy nadzieję, że dowiemy się o nich więcej, gdy zbliża się wydanie API.

Rysunek 3: Narzuty API DirectX 12 są zmniejszone w przypadku korzystania z procesorów wielordzeniowych.
Źródło obrazu; Zdjęcie: nVidia GeForce

Vulkan

O Vulkan nie wiadomo tyle, co o DirectX 12, jak właśnie ogłoszono na GDC 2015. Wiemy, że twórcy OpenGL, Khronos Group, porzucili nazwę glNext na rzecz Vulkan. Vulkan wydaje się pochodzić z Mantle, o której wspomniałem wcześniej w artykule. Co więcej, wygląda na to, że AMD wprowadza do stołu najlepsze części Mantle dla Vulkan we współpracy z Khronos Group. Vulkan powinien mieć wiele takich samych zalet DirectX 12, ale nie jest powiązany z jedną platformą, taką jak Windows. Zamiast tego będzie dostępny na wielu różnych platformach, w tym na Linuksie, a nawet urządzeniach mobilnych. Sterowniki Vulkan zarówno dla systemu Windows, jak i Linux będą całkowicie otwarte, w przeciwieństwie do DirectX. Vulkan poprawi wielowątkowość, dzięki czemu znacznie lepiej wykorzysta dostępną dziś moc procesora, rozkładając obciążenie na wiele rdzeni procesora. Jak wspomniano poprzednio, zmniejszenie obciążenia procesora pozwoli GPU nie być tak wąskim gardłem, jak teraz. Powinno to zapewnić dość znaczne przyspieszenie klatek podczas gry. Źródło 2, które niedawno zostało ogłoszone przez Valve, będzie pierwszym nowym silnikiem gry, który w pełni wspiera Vulkan, choć jestem pewien, że w najbliższej przyszłości zostanie ogłoszonych wiele innych. Dota 2, gra znana z intensywnego procesora, była pokazywana w Source 2 z nowym Vulkan API z wykorzystaniem zintegrowanej grafiki Intela na CPU. Jest to coś, co z pewnością nie byłoby pożądane w DirectX 11, ale z Vulkanem gra wydawała się utrzymywać rozsądną częstotliwość klatek. Dan Baker, który jest twórcą gier Oxide, posunął się nawet do stwierdzenia, że ​​„dopóki producenci GPU nie podejmą wspólnych działań i nie uczynią GPU dziesięć razy szybszymi niż obecnie, nie możemy zmaksymalizować procesora”. To dobra wiadomość dla osób korzystających z wolniejszych procesorów lub posiadających obecnie dużą moc GPU, ponieważ oznacza to, że na tym samym zestawie sprzętu można uzyskać znacznie lepszą wydajność.

Rycina 4: Schemat pokazujący zalety Vulkanu (ograniczenie wąskiego gardła do GPU).
Źródło obrazu; Źródło zdjęcia: Khronos

Co to oznacza dla przyszłości gier?

Cóż, od dłuższego czasu moc GPU rośnie znacznie szybciej niż moc procesora. Pięć lat temu Intel stwierdził nawet, że niektóre procesory graficzne są 14 razy szybsze niż ich własne procesory. Testy przeprowadzono przy użyciu procesora nVidia GTX 280 w porównaniu z procesorem Intel i7 960 - obecnie uważanym za stosunkowo nieaktualny sprzęt. Różnica między nVidią GTX Titan X (a nawet nVidią GTX 980) a obecną potęgą procesorów głównego nurtu - procesorem Intel i7-4790k - powinna być znacznie większa. Chodzi mi o to, że zaczynamy widzieć, jak coraz więcej gier uderza w wydajność ze względu na procesor. Zapytaj każdego z monitorem o wysokiej częstotliwości odświeżania, jak trudno jest utrzymać 100 + fps przy obecnych procesorach w niektórych grach. Szczerze mówiąc, byłoby to trudniejsze tylko bez tych nowych API i ich zdolności do bardziej efektywnego wykorzystania mocy procesora. Wprowadzenie tych nowych API może oznaczać ogromny wzrost wydajności dla większości ludzi. Co więcej, pozwoliłoby to także deweloperom na zbudowanie gier bardziej obciążających procesor niż obecnie. Na przykład wyobraź sobie grę taką jak Assasins Creed, w której jednocześnie na ekranie znajdują się tysiące postaci niezależnych, wszystkie wchodzące w interakcje ze sobą i twoją postacią podczas wędrowania po mieście. Lub gry takie jak Star Citizen, w których potrzebujesz bardzo silnego procesora, aby uzyskać jakąkolwiek stabilną i akceptowalną liczbę klatek na sekundę, mogą w najbliższej przyszłości wymagać w najlepszym razie średniego procesora i mocnego GPU, aby utrzymać niezłe 60 klatek na sekundę.

W końcu jest to bardzo ekscytujący czas, aby być graczem. Po wydaniu tych nowych graficznych interfejsów API możemy zobaczyć największy skok w technologii gier od dłuższego czasu. Miejmy tylko nadzieję, że te interfejsy API mogą sprostać szumowi, który już dla nich zbudowali.

Nowe interfejsy graficzne i przyszłość gier komputerowych