Windows 10 출시와 함께 Microsoft는 플랫폼 기능의 일부로 게임 커뮤니티에 DirectX 12를 도입했습니다. 이 혁신적인 기술은 일부 계산 작업을 그래픽 처리 장치(GPU)로 전송하여 중앙 처리 장치(CPU)의 부담을 크게 줄임으로써 그래픽 렌더링 기능을 향상시켰습니다. 그 결과 DirectX 12는 게이머와 게임 개발자 모두에게 폭넓은 호평을 받았습니다.
DirectX 11에서 DirectX 12로 마이그레이션하는 것이 진정으로 효율성을 향상시키는 데 도움이 되는지 궁금하신가요? 이를 알아보기 위해 이 두 가지 DirectX의 차이점을 살펴보겠습니다.
Microsoft의 DirectX란 무엇인가요?
DirectX는 다양한 API(응용 프로그래밍 인터페이스)를 통해 멀티미디어 응용 프로그램 개발을 용이하게 하는 Microsoft 소프트웨어 에코시스템의 필수 구성 요소입니다. 이러한 API는 주로 Microsoft 기술로 구동되는 Windows 및 Xbox와 같은 게임 플랫폼으로 작업하는 개발자의 요구 사항을 충족하도록 특별히 설계되었습니다. 이 개념을 더 깊이 이해하려면 API의 특성과 최신 컴퓨팅 시스템 내에서 API의 역할을 간략하게 살펴보는 것이 도움이 될 수 있습니다.
API는 잘 정의된 인터페이스를 통해 구조화된 데이터를 교환하여 여러 소프트웨어 애플리케이션 간의 통신을 가능하게 합니다. 본질적으로 서로 다른 시스템 간의 중재자 역할을 수행하여 정보를 원활하게 교환할 수 있도록 합니다. 이 프로세스는 발신자와 수신자 간의 직접적인 상호 작용 없이 한쪽 끝에서 다른 쪽 끝으로 메시지가 전송되는 전화 시스템에 비유할 수 있습니다.
DirectX 11과 DirectX 12의 차이점은 무엇인가요?
DirectX 11과 DirectX 12는 Windows 기반 게임 애플리케이션을 위한 Microsoft의 그래픽 API의 진화 과정에서 서로 다른 반복을 나타냅니다. 본질적으로 DirectX 12는 이전 버전보다 더 최신의 고급 버전입니다. 두 버전을 구분하는 주요 차이점은 시스템 하드웨어와의 관계에 있습니다. 일반적으로 DirectX 11을 사용하여 설계된 타이틀은 프로세싱 유닛의 개입이 제한적이며, 2~4개 이하의 CPU 코어에 리소스를 할당하는 경우가 많습니다. 일반적으로 이러한 코어 중 하나는 기본 코디네이터 역할을 하며 시각적 렌더링을 위해 작업을 GPU에 지시합니다.
게임 그래픽과 같은 보다 복잡한 작업에 잔여 처리 장치를 활용할 때 DirectX 12는 사용 가능한 모든 코어에 계산 부담을 균등하게 분배하는 동시에 각 코어와 그래픽 처리 장치 간의 통신을 병렬로 원활하게 합니다. 반면, 기존 방식은 이러한 연산을 특정 코어에만 분배하여 GPU와의 상호 작용을 특정 코어로만 제한합니다.
실제로 DirectX 12는 기능을 크게 향상시키는 다양한 고급 기능을 자랑합니다. 여기에는 여러 워크로드에서 동시 처리를 통해 GPU 활용도를 높일 수 있는 비동기 컴퓨팅 및 파이프라인 상태 객체(PSO)에 대한 지원이 포함됩니다. 이러한 방식으로 그래픽 처리 장치의 잠재력을 최대한 효과적으로 활용할 수 있습니다.
최신 그래픽 처리 장치(GPU)는 그래픽 렌더링이라는 기본 기능 외에도 복잡한 머신 러닝 알고리즘 실행을 비롯한 다양한 작업을 처리할 수 있습니다. 하지만 Microsoft DirectX 11에서는 GPU가 특정 순간에 한 가지 작업만 수행할 수 있으며, 더 나아가 미리 정해진 순서에 따라 실행해야 합니다. 이러한 리소스 할당의 비효율성은 전반적인 성능 저하로 이어집니다.
식당에서 음식을 주문하는 과정은 웨이터가 고객의 주문을 받는 과정에 비유할 수 있습니다. 일반적으로 웨이터는 고객이 선택한 음료에 대해 문의하는 것으로 시작한 다음 메인 요리에 대한 정보를 요청합니다. 이러한 체계적인 접근 방식은 목적에 부합하지만 메인 코스 이외의 잠재적 선호도를 고려하지 않기 때문에 반드시 효율성을 최적화하지는 않을 수 있습니다.
별도의 GPU(그래픽 처리 장치) 리소스를 활용하면 각 서버 담당자의 작업을 효율적으로 관리할 수 있습니다. 음료가 도착하기를 기다리는 동안 메인 메뉴를 주문하는 데 필요한 미사용 GPU 자산은 휴면 상태로 남아있을 수 있습니다. 다이렉트X 12의 비동기 컴퓨팅 패러다임의 기능을 활용하여 웨이터는 여러 주문을 동시에 처리하여 인기 있는 패스트푸드점에서 볼 수 있는 빠른 서비스를 모방할 수 있습니다. 이러한 방식으로 GPU 활용을 최적화함으로써 전반적인 게임 성능이 크게 향상됩니다.
DirectX 12의 도입으로 파이프라인 상태 오브젝트(PSO)가 아키텍처에 포함되었습니다. DirectX 11과 같은 이전 버전에서는 게임 지오메트리를 렌더링하는 프로세스가 데이터를 변환하고 시각화하는 여러 하드웨어 구성 요소에 의존했습니다. 그래픽스 파이프라인이라고 하는 이러한 데이터 입력 및 출력 시퀀스는 렌더링 프로세스 중에 GPU가 프레임을 원활하게 생성할 수 있도록 합니다. 이 시스템의 유용성에도 불구하고 결함이 없는 것은 아닙니다.
현재 구성은 래스터화 상태, 블렌드 상태, 뎁스 스텐실 상태 및 추가 요소를 포함하는 다양한 고유 모드로 구성됩니다. DirectX 11 내에서는 이러한 다양한 모드 간에 상호 의존성이 존재합니다. 따라서 이전 모드가 묘사되기 전에는 한 모드를 결론 내릴 수 없습니다. 이러한 상황은 GPU 생산성 저하와 CPU 부하 증가로 이어지며, 동시에 전체 시스템 성능에 부정적인 영향을 미칩니다.
DirectX 12는 전체 그래픽 파이프라인의 상태를 포괄적으로 설명하는 역할을 하는 PSO(파이프라인 상태 개체)를 도입하여 이 문제를 해결했습니다. 이러한 오브젝트는 이미지 렌더링에 필요한 모든 필수 구성 요소와 상태를 포함하는 컨테이너와 유사하게 작동합니다. PSO를 활용하면 GPU는 현재 파이프라인의 구성에 따라 반복적으로 계산하는 대신 모든 상호 의존적인 상태를 미리 효율적으로 처리할 수 있습니다.
DirectX 12의 구현은 이전 버전인 DirectX 11과 비교할 때 CPU 사용량을 상당히 감소시키는 것으로 나타났습니다. 이러한 CPU 오버헤드의 감소는 전반적인 시스템 성능의 향상으로 이어지며, Microsoft의 보고에 따르면 최대 50%까지 향상될 수 있다고 합니다. 또한 GPU 성능도 향상되어 최대 20%의 잠재적 이득이 보고되었습니다. 그러나 이러한 성능 향상이 모든 시스템에서 반드시 동일한 결과로 이어지지는 않을 수 있다는 점에 유의해야 합니다.
DirectX 11에서 DirectX 12로 전환하는 것이 간단하지 않은 이유
DirectX 11의 원래 버전은 10월 27일에 Microsoft의 Windows Vista 운영 체제와 함께 데뷔했습니다. 출시 이후 약 6년이라는 긴 시간이 흐른 후 2015년 DirectX 12가 출시되었습니다. 이 기간 동안 수많은 비디오 게임이 DirectX가 제공하는 기능을 활용하여 제작되었습니다. 그러나 DirectX 11에서 DirectX 12로 마이그레이션하는 것은 개발자에게 상당한 도전 과제를 제시합니다.
DirectX 11은 소프트웨어 응용 프로그램과 컴퓨터 시스템의 하드웨어 구성 요소 간의 상호 작용을 용이하게 하는 고급 프로그래밍 인터페이스를 나타냅니다. 이 고급 API를 통해 개발자는 개발 프로세스를 간소화하여 강력하고 세련된 게임 환경을 만들 수 있습니다. 반면, DirectX 12는 하위 수준의 API로 작동하여 성능 최적화에 대한 보다 복잡한 제어 기능을 제공하지만, 개발자가 그 기능을 효과적으로 활용하려면 전문 지식이 필요합니다.
이러한 점을 고려할 때, 프로그래머의 API 활용 숙련도에 따라 DirectX 12를 사용하여 제작된 게임의 효율성이 달라질 수 있다는 점에 유의할 필요가 있습니다. DirectX 12를 통해 특정 개선 사항을 사용할 수 있지만, 성공 여부는 궁극적으로 개발자의 숙련된 실행 능력에 달려 있습니다. 따라서 많은 프로그래머가 사용 편의성과 접근성 때문에 DirectX 11과 같은 상위 수준의 API를 선택합니다.
DX 11 대 DX 12: 어떤 것을 선택해야 할까요?
게임 실행 옵션으로 DirectX 12를 사용할 수 있는지 여부는 플레이 중인 특정 게임 및 특정 그래픽 API와의 호환성 등 다양한 요인에 따라 달라질 수 있습니다. 경우에 따라 컴퓨터의 운영 체제 및 하드웨어가 DirectX 12를 사용하기 위한 요구 사항을 충족하더라도 게임 개발자가 설정한 제한으로 인해 게임 자체에서 이 옵션을 제공하지 않을 수 있습니다. 컴퓨터에서 DirectX 12를 사용할 수 있음에도 불구하고 DirectX 11만 지원하는 길드워 2의 예에서 알 수 있듯이 그래픽 API의 선택은 전적으로 개발팀에 달려 있다는 점을 고려해야 합니다.
이미지 출처: Martin Kerstein/ 길드워 2
예상치 못한 상황으로 인해 ArenaNet은 DirectX 9 사용에서 DirectX로 전환하는 데 총 9년이 걸렸습니다. 사실, 현재 특정 비디오 게임은 DirectX 11과 DirectX 12 모두와 호환되며, 포트나이트 , 배틀필드 5, 쉐도우 오브 더 툼레이더 등의 종합 가이드에서 자세히 다룬 포트나이트와 같은 게임도 마찬가지입니다. 게이머는 게임 설정에서 DirectX 11과 DirectX 12를 전환할 수 있습니다.
DirectX 11 또는 DirectX 12 중 하나를 선택해야 하는 경우 게임 플레이 성능에 미치는 영향에 대해 의문을 가질 수 있습니다. 이러한 우려를 해소하기 위해 AMD Ryzen 3600, Nvidia GeForce RTX 3060 Ti 및 16GB DDR4 RAM을 사용하여 여러 타이틀에서 프레임 속도, CPU 사용률 및 GPU 사용률 등 다양한 측면을 조사하는 분석을 수행했습니다. 이 비교는 게임 시나리오에서 각 버전의 DirectX와 관련된 잠재적인 장점과 단점에 대한 통찰력을 제공합니다.
DX 11과 DX 12의 출시 일정이 상당한 기간에 걸쳐 있음에도 불구하고 시각적으로 구분할 수 있는 최소한의 차이가 존재한다는 점은 흥미롭습니다. 또한, 두 세대의 그래픽 API 간에 GPU 및 CPU 사용률의 차이를 발견할 수 있는데, 게임의 DX 12 렌더링은 해당 DX 11 렌더링에 비해 더 적은 컴퓨팅 리소스를 필요로 하는 경우가 종종 있습니다.
DirectX 11 또는 DirectX 12를 선택할지 여부를 결정할 때는 게임 환경뿐만 아니라 시스템 사양도 고려해야 합니다. 일반적으로 최신 그래픽 처리 장치(GPU)는 DirectX 12를 지원할 수 있습니다. 그러나 2008년에 출시된 Radeon HD와 같은 구형 모델은 DirectX 11 및 DirectX 12 기술에 의존하는 최신 게임을 처리하는 데 필요한 기능이 부족할 수 있습니다. 따라서 이러한 구형 GPU는 최신 비디오 게임을 플레이할 때 최적의 성능을 발휘하지 못할 수 있습니다.
DirectX 12가 나에게 적합한 선택인가?
DirectX 11에서 DirectX 12로의 전환은 버전 번호만 보고 절대적으로 결정할 수 있는 사안이 아닙니다. 하드웨어 성능, 소프트웨어 호환성, 운영 체제, 특정 게임이 두 버전을 모두 지원하는지 여부 등 고려해야 할 몇 가지 다른 사항이 있습니다. 이러한 변수는 결정을 내리기 전에 신중하게 평가해야 하며, 향후 DirectX 기술의 반복에서 중요한 역할을 계속할 것입니다.