지난 15년간 윈도우용 게임을 설치해 본 사람이라면 누구나 한 가지 장면을 기억할 것입니다. 게임 설치가 끝나갈 무렵, 설치 마법사가 "최신 버전의 DirectX로 업그레이드하시겠습니까?"라는 메시지를 띄우는 바로 그 순간 말입니다.
그렇다면 DirectX는 대체 무엇이고, 왜 굳이 필요한 걸까요? 이 글에서 그 모든 궁금증을 시원하게 풀어드립니다.
DirectX란 무엇인가?
컴퓨터란 결국 소프트웨어와 하드웨어가 매끄럽게 대화하도록 만드는 장치입니다. 사용자에게는 마법처럼 보이지만, 그 이면에는 개발자들이 하드웨어 자원을 최대한 효율적으로 활용하기 위해 수많은 시간을 들여 프로그래밍하는 과정이 숨어 있습니다.
엑스박스 원(Xbox One)이나 플레이스테이션 4(PS4) 같은 비디오 게임 콘솔은 정해진 사양의 하드웨어를 탑재합니다. 기종마다 사양이 달라지지 않습니다. 모든 PS4는 동일한 프로세서, 동일한 그래픽 카드, 동일한 RAM을 사용합니다.
따라서 개발자가 PS4용 게임을 만들 때는 어떤 하드웨어에서 돌아갈지 정확히 알 수 있습니다. 전문 개발자들은 이 하드웨어에서 최대한의 성능을 짜내기 위해 필사적으로 노력합니다.
반면 PC용 게임 개발은 상황이 훨씬 복잡합니다. 제조사도 다양하고 성능 차이도 큰 여러 부품들이 조합되기 때문입니다. 두 대의 PC는 완전히 다른 프로세서, 메인보드, 그래픽 카드를 장착할 수 있으며, 그 조합은 수천 가지에 이릅니다.
그렇다면 개발자는 어떻게 최적의 성능을 보장할 수 있을까요?
바로 여기서 DirectX가 등장합니다. DirectX는 응용 프로그램 인터페이스(API)로, 게임 개발자 같은 소프트웨어 제작자가 윈도우 PC에 탑재된 다양한 하드웨어 구성 요소와 더 쉽게 소통할 수 있게 해줍니다.
DirectX는 크게 세 부분으로 나뉩니다.
- Direct3D: 그래픽 카드를 활용해 3D 오브젝트를 렌더링
- DirectDraw: 그래픽 카드를 활용해 2D 오브젝트를 렌더링
- DirectSound: 사운드 카드를 활용해 더 좋은 오디오 출력
요컨대 DirectX는 윈도우 PC의 다양한 하드웨어와 게임 제작자가 소통할 수 있게 해주는 '언어의 다리'입니다. 덕분에 개발자는 하드웨어마다 별도의 코드를 작성할 필요가 없습니다.
DirectX vs OpenGL
마이크로소프트의 DirectX 외에도 업계 표준 API로 OpenGL이라는 것이 있습니다. 두 기술 모두 근본적인 역할은 같습니다. 즉, 다양한 하드웨어와 소통할 수 있는 표준 '언어'를 만들어 개발자가 게임을 더 쉽게 만들도록 돕는 것입니다.
하지만 몇 가지 근본적인 차이점이 있습니다. DirectX는 개발자에게 하드웨어에 대한 더 많은 통제권을 주어, 시스템의 각종 자원을 어떻게 사용할지 직접 선택할 수 있게 합니다. 반면 OpenGL은 개발자가 반드시 준수해야 하는 특정 파라미터를 제공하며, 그에 따라 자원을 배분합니다.
그렇다면 어느 쪽이 더 나을까? 이는 수십 년째 계속되고 있는 끝없는 논쟁이므로 너무 신경 쓸 필요는 없습니다.
소비자 입장에서 중요한 것은 이것입니다. DirectX는 윈도우 PC 환경에서 핵심적인 역할을 하며, 게임 제작사들은 DirectX의 변화에 빠르게 대응합니다. 반면 OpenGL은 마인크래프트 같은 리눅스 게임 최적화에 유리하고, SteamOS 같은 리눅스 기반 운영체제에서 중요한 역할을 합니다.
다만 한 가지 분명한 사실이 있습니다. 이 글을 쓰는 시점 기준으로 DirectX는 OpenGL보다 우위에 있습니다. Ars Technica가 윈도우 10과 SteamOS를 비교한 결과, DirectX가 OpenGL보다 월등히 뛰어난 성능을 보였습니다. 앞으로 상황이 바뀔 수도 있지만, 집을 걸고 장담할 일은 아닙니다.
DirectX 12의 특별한 점은?
마이크로소프트의 최신 운영체제인 윈도우 10에는 최신 버전의 DirectX가 독점적으로 탑재되어 있습니다. 솔직히 말하면, DirectX 12는 아직 윈도우 10으로 업그레이드하지 않은 사용자를 위한 하나의 전략이기도 합니다. 윈도우 8까지는 DirectX 11을 지원하며, 테스트 결과 DirectX 12가 훨씬 뛰어난 것으로 나타났습니다.
DirectX 12의 가장 큰 장점 중 하나는 멀티 어댑터(multi-adapter) 지원입니다. 현대의 CPU는 사실 APU(Accelerated Processing Unit), 즉 컴퓨터 프로세서와 그래픽 프로세서를 하나의 칩에 통합한 형태입니다. CPU 안에 이미 그래픽 프로세서가 있다면, 그 하드웨어를 놀리게 둘 이유가 없겠죠.
DirectX 12는 연산 작업을 메인 그래픽 카드와 CPU 내장 그래픽 프로세서에 똑똑하게 분배합니다. 메인 그래픽 카드는 무거운 작업을, APU는 가벼운 작업을 맡습니다. 그 결과 그래픽 렌더링이 빨라지고 게임플레이 처리도 더욱 효율적이 됩니다.
단, DirectX 12는 아직 개발자들 사이에서 대중화되기까지 시간이 좀 더 필요합니다. 또한 구형 하드웨어에서도 작동은 하지만, 진정한 성능을 끌어내려면 비교적 최신 장비가 필요합니다.
- NVIDIA 그래픽 카드: GTX 400 이상 — 페르미(Fermi) 아키텍처 기반이면 됩니다.
- AMD 그래픽 카드: HD 7000, R5 240 이상 — GCN 아키텍처 기반이면 됩니다.
- 인텔 내장 그래픽: 인텔 해스웰(Haswell) 이상의 CPU 필요
- AMD 내장 그래픽: AMD 카베리(Kaveri), 멀린스(Mullins), 비마(Beema) 이상의 CPU 필요
DirectX 버전 확인 및 업그레이드 방법
현재 사용 중인 DirectX 버전을 확인하는 것은 아주 간단합니다. 다음 절차를 따라 해보세요.
- 시작 > 실행으로 이동하거나 Win + R 키를 누릅니다.
- "dxdiag"를 입력한 후 Enter 키를 누르거나 확인을 클릭합니다. 그러면 DirectX 진단 도구가 열립니다.
- 창 하단에 현재 사용 중인 DirectX 버전이 표시됩니다.
윈도우 10 사용자라면 DirectX 12 또는 DirectX 11이, 윈도우 7과 윈도우 8 사용자라면 DirectX 11이 표시되어야 합니다. 마이크로소프트는 공식적으로 윈도우 XP 지원을 중단했지만, 아직 완전히 사라지지는 않았습니다. XP를 사용 중이라면 DirectX 9가 표시될 가능성이 높습니다.
버전이 뒤처져 있다고 생각되면, 마이크로소프트 사이트에서 DirectX를 직접 다운로드해 설치하거나 윈도우 업데이트를 실행하면 됩니다.
또한 DirectX 진단 도구의 디스플레이 탭에서 DirectDraw, Direct3D, AGP 텍스처 가속 항목이 사용할 수 없음(Not Available)으로 표시되는지 확인하세요. 이는 현재 실행 중인 DirectX 버전이 해당 하드웨어를 지원하지 않아 하드웨어 가속을 사용할 수 없다는 의미입니다. 하드웨어 가속이 필요하다면 장비 업그레이드를 고려하는 것이 좋습니다.
DX12를 위해 윈도우 10으로 갈아탈 건가요?
윈도우 10에는 게이머를 위한 다양한 기능이 있지만, 그중에서도 DirectX 12가 가장 중요하다고 할 수 있습니다. 과연 DX12 하나만으로 새 윈도우로 갈아탈 만한 가치가 있을까요?
현재 사용 중인 윈도우 버전에 만족하고 계신가요? DX12 호환 하드웨어를 새로 사는 것이 나을까요, 아니면 차라리 새 게임 콘솔을 구입하는 것이 나을까요? 여러분의 생각을 댓글로 알려주세요!
이미지 출처: Branko Vucinec / Microsoft Technet