DirectX 11과 OpenGL이 조금 오래되었습니다. DirectX 11은 2009 년 Windows 7에서 다시 도입되었으며 1 년 후 OpenGL 4.0이 이어졌습니다. 소프트웨어 시대에 이러한 기술은 현재 고대 기술이며 현재 실행중인 하드웨어는 그래픽 API가 출시 될 때에도 드로잉 보드에 없었습니다. 이 명백한 단절을 감안할 때, 업계는 시대를 극복하기 위해 무엇을하고 있습니까? 우리는 가까운 장래를 살펴보고 살펴볼 것입니다. 그러나 먼저 API가 무엇인지, 그리고 게임에 어떤 기능을 제공하는지 설명하겠습니다.
API 란 무엇입니까?
API 또는 애플리케이션 프로그래밍 인터페이스 는 소프트웨어를 빌드하는 데 사용되는 프로토콜 및 도구 세트입니다. 그래픽 API는 실제로 3D 그래픽을보다 쉽게 생성 할 수 있도록 설계된 특수 API입니다. 그래픽 API를 사용하면 3D 이미지를 더 쉽게 만들 수 있지만, API를 통해 무언가를하도록 지시하고 (예 : 사각형 그리기) API가이 작업을 완료하는 방법에 대해 하드웨어와 통신하게 할 수 있습니다. 이것이 특수 하드웨어를 가진 수많은 GPU가 모두 같은 게임을 실행할 수있는 주된 이유입니다. API가 없으면 각 특정 하드웨어 세트와 통신하기 위해 동일한 게임을 다른 방식으로 작성해야합니다. 이는 하드웨어 제조를 심각하게 제한하고 게임 제작 비용, 즉 최종 소비자에게 전가되는 비용을 크게 증가시킵니다.
위의 설명을 좀 더 이해하기 쉽게하기 위해 유추를 사용할 것입니다. API를 건설 현장 관리자로 생각하십시오. 그의 작업은 건축가의 아이디어를 가져 와서 분해하고, 승무원이 언제 어디에서 필요한지를 예약하고, 모든 사람이해야 할 일에 대해 같은 페이지에 있는지 확인하는 것입니다.
현재 사용되는 그래픽 API
그래픽 API의 작업을 이해 했으므로 현재 라인업을 자세히 살펴 보겠습니다. 현재 시장의 주요 업체는 1995 년에 처음 소개 된 Microsoft의 DirectX입니다.이 제품은 출시 이후 여러 차례 업데이트되었으며 Microsoft의 Windows 운영 체제에 포함되어 있습니다. DirectX는 PC 용으로 출시 된 거의 모든 게임에서 지원할 수있는 유일한 그래픽 API입니다. 사실, 오늘날 PC 게임의 표준이되는 것이 일반적입니다. DirectX는 불행히도 매우 닫힌 시스템으로 만드는 Windows 및 Microsoft 제품에만 적용됩니다. 다음으로 유일하게 주요 오픈 소스 그래픽 API 인 OpenGL이 있습니다. OpenGL은 1992 년에 출시되었으며 다중 플랫폼으로 Windows, Linux 및 Mac OS를 포함한 여러 운영 체제에서 작동합니다. 마지막으로 최신 그래픽 API 인 Mantle이 있습니다. 맨틀은 2013 년 AMD와 Dice의 파트너십을 통해 개발되었습니다. 맨틀은 Windows에서 사용할 수 있으며 AMD GPU에서만 사용할 수 있습니다.
이미지 소스; 이미지 크레디트 : Intel
DirectX 12
DirectX 12는 이번 가을 Windows 10과 함께 출시 될 예정이며 많은 새로운 개선 사항이 발표되고 있습니다. 큰 개선 중 하나는 훨씬 더 나은 멀티 스레딩 지원입니다. 더 많은 작업이 CPU의 여러 코어에 분산되어 훨씬 더 효율적이고 효율적인 CPU 활용이 가능합니다. DirectX 11은 CPU의 한 코어 만 완전히 최대로 유지하는 반면 다른 코어는 유휴 상태에 있습니다. DirectX 12는이 작업량을 CPU 코어에 분산시켜 게임에 훨씬 더 많은 CPU 성능을 제공 할 것을 약속합니다. DirectX 12가 약속 한 다음 큰 개선점은 더 많은 그리기 호출을 처리 할 수있는 기능입니다. 드로우 콜은 게임 엔진이 화면에 무언가를 그리려고 할 때마다 발생합니다. 많은 그리기 호출의 요구 사항은 일반적으로 CPU에 매우 과세됩니다. DirectX 12는 최대 600, 000 개의 드로우 콜을 처리 할 수 있어야합니다. DirectX 9는 6, 000 개의 드로우 콜 또는 DirectX 12가 할 수있는 것의 1/100 만 처리 할 수 있습니다.
몇 년 동안 SLI / Crossfire 모드에서 여러 GPU를 실행할 수있었습니다. 그러나 가장 큰 제약 중 하나는 카드에 내장 된 VRAM이 함께 쌓여 하나의 큰 연속 풀을 만들지 않았다는 것입니다. 예를 들어, 각각 2GB의 VRAM을 가진 두 개의 GPU가있는 경우 각 카드에는 동일한 정보가 저장되어 있어야했기 때문에 여전히 2GB의 VRAM 만있었습니다. DirectX 12는 AFR 또는 대체 프레임 렌더링을 사용하여이 문제를 해결하려고합니다. 각 프레임의 각 GPU 렌더링 부분 대신 GPU는 이제 각각 하나의 전체 프레임을 렌더링합니다. 이를 통해 각 카드의 VRAM을 독립적으로 사용할 수 있으며 소량의 VRAM을 가진 카드를 오랫동안 게임에 사용할 수 있기를 바랍니다. DirectX 12에 포함 된 다른 많은 새로운 기능이 게임 그래픽을 그 어느 때보 다 밀어 붙일 것으로 예상됩니다. 그러나 Microsoft는 이러한 새로운 기능이 무엇인지에 대해 여전히 허쉬합니다. API 출시가 가까워짐에 따라 이에 대해 더 많이 알게 될 것입니다.
이미지 소스; 이미지 크레디트 : nVidia GeForce
불칸
GDC 2015에서 발표 한 것처럼 DirectX 12와 마찬가지로 Vulkan에 대해서는 알려진 바가 거의 없습니다. OpenGL의 제조업체 인 Khronos Group은 Vulkan에 찬성하여 glNext라는 이름을 떨어 뜨 렸습니다. Vulkan은 맨틀에서 파생 된 것으로 보입니다.이 기사의 앞부분에서 언급했습니다. 또한 AMD가 Khronos Group과의 파트너십을 통해 Vulkan의 맨틀에서 최고의 부분을 차지하는 것처럼 보입니다. Vulkan은 DirectX 12와 동일한 장점을 많이 가지고 있지만 Windows와 같은 단일 플랫폼과는 관련이 없습니다. 대신 Linux 및 모바일 장치를 포함한 다양한 플랫폼에서 사용할 수 있습니다. Windows 및 Linux 용 Vulkan 드라이버는 DirectX와 달리 완전히 오픈 소스입니다. Vulkan은 멀티 스레딩을 향상 시키므로 워크로드를 여러 CPU 코어에 분산시켜 오늘날 사용 가능한 CPU 성능을 훨씬 더 잘 활용할 것입니다. 이전에 언급했듯이 CPU의 부하를 줄이면 GPU가 현재처럼 쉽게 병목 현상을 일으키지 않습니다. 이것은 게임 도중 상당히 상당한 프레임 속도 향상을 제공해야합니다. Valve가 최근 발표 한 Source 2는 Vulkan을 완벽하게 지원하는 최초의 새로운 게임 엔진이 될 것이지만 가까운 시일 내에 더 많은 내용이 발표 될 것입니다. CPU를 많이 사용하는 것으로 알려진 게임 인 Dota 2는 CPU에서 Intel의 통합 그래픽을 사용하여 새로운 Vulkan API를 사용하여 소스 2에서 실행되는 것으로 나타났습니다. 이것은 DirectX 11에서는 바람직하지 않은 것이었지만 Vulkan에서는 게임이 전체적으로 합리적인 프레임 속도를 유지하는 것처럼 보였습니다. Oxide 게임 개발자 인 Dan Baker는 심지어 "GPU 제조업체들이 행동을 취하고 현재보다 10 배 빠르게 GPU를 만들 때까지 CPU를 최대한 활용할 수 없다"고 말했다. 이는 CPU 속도가 느리거나 현재 GPU 성능이 많은 사람들에게 동일한 소식입니다. 동일한 하드웨어 세트에서 훨씬 더 나은 성능을 얻을 수 있기 때문입니다.
이미지 소스; 이미지 크레디트 : Khronos
이것이 게임의 미래에 무엇을 의미합니까?
글쎄, 오랫동안 GPU 전력은 CPU 전력보다 훨씬 빠른 속도로 증가하고 있습니다. 5 년 전 인텔은 심지어 일부 GPU가 자체 CPU보다 14 배 빠르다고 말했다. 이 테스트는 nVidia GTX 280과 i7 960 Intel CPU를 사용하여 수행되었습니다. 이제는 비교적 오래된 하드웨어로 간주됩니다. nVidia GTX Titan X (또는 nVidia GTX 980)와 현재 주류 CPU 강국 인 Intel i7-4790k CPU 사이의 간격은 훨씬 더 커야합니다. 내가 만들고자하는 요점은 CPU로 인해 점점 더 많은 게임이 성능의 벽에 부딪히기 시작한다는 것입니다. 새로 고침 빈도가 높은 사람에게 일부 게임에서 현재 CPU로 100 + fps를 유지하는 것이 얼마나 어려운지 물어보십시오. 솔직히 말하면, 새로운 API가없고 CPU 성능을보다 효율적으로 활용할 수있는 능력이 없다면 더 어려워 질 것입니다. 이 새로운 API를 도입하면 대부분의 사람들에게 성능이 크게 향상 될 수 있습니다. 또한 개발자가 지금보다 훨씬 더 많은 CPU 집약적 게임을 만들 수 있습니다. 예를 들어 Assasins Creed와 같은 게임에서 한 번에 수천 개의 NPC가 화면에 있고, 도시를 로밍하는 동안 서로 및 캐릭터와 상호 작용하는 것을 상상해보십시오. 또는 안정적이고 수용 가능한 프레임 속도를 얻기 위해 매우 강력한 CPU가 필요한 Star Citizen과 같은 게임은 가까운 미래에 평균 CPU를 필요로하고 멋진 60fps를 유지하기 위해 강력한 GPU가 필요할 수 있습니다.
궁극적으로 게이머가 되기에는 매우 흥미로운 시간입니다. 이러한 새로운 그래픽 API가 출시되면 오랫동안 게임 기술에서 가장 큰 도약을 볼 수 있습니다. 이 API가 이미 구축 한 과대 광고에 부응하기를 바랍니다.
