게임/알고 싶다

다이렉트X 란?

jhnambi 2022. 11. 20.

게임을 하면서 한번쯤 들어보면 다이렉트X. 게임이 안될때, 게임 렉이 너무 심할때 등 다이렉트X 최신버전을 받고 해결 한 경험이 있었는데 이 다이렉트 X란 도대체 무엇일까?

 

 

다이렉트X 11 설치시 화면

 

 

 

다이렉트 X

미국 마이크로소프트사가 윈도즈용으로 개발한 멀티미디어 응용 프로그램 인터페이스(API)의 집합. 2차원 및 3차원의 도형, 음성, 동화() 등 각종 미디어를 사용한 응용 프로그램 하드웨어 장치를 직접 접속(direct access)하여 고속으로 처리할 수 있도록 해 주는 API라는 의미에서 다이렉트 X라는 이름이 붙여졌다.

[네이버 지식백과] 다이렉트 X [Direct X] (IT용어사전, 한국정보통신기술협회)

 

 

지식 백과 설명만 보자면 대충 마이크로소프트가 만든 프로그램인건 알겠는데 컴퓨터 관련 단어에 생소한 사람이라면 살짝 이해하기 어려울 수도 있으니 이해하기 쉽게 알아보자

 

 

1. 다이렉트X

 

다이렉트 X는 API의 한 종류이다. API는 Application Programming Interface  단어의 약자로 이것은 무엇일까? 예를 들어서 만약 컴퓨터의 특정한 폴더에 접근 하고 싶다고 하면 이전에는 도스창에 입력해서 직접 접근하였다. (맥북도 비스무리하다). 그 이후에는 현재와 비슷하게 마우스로 폴더를 클릭해서 접근하는 방식으로 바뀌었다. 최근에는 스마트폰같이 터치스크린으로 접근하기도 한다.

도스로 프로그램 접근 -> 마우스로 폴더를 클릭해서 접근

 

이런것을 통틀어서 우리는 Interface, UseInterface라고 한다. 게임을 자주 하시는 분들이라면 알겠지만 UI의 약자가 바로 이것이다. 즉 유저가 원하는 작업을 프로그램에 전달해주는 것을 UI라고 한다. API는 그럼 누군가 원하는 것을 전달 하는 걸까?

 

 

UI, API 차이

 

바로 특정 프로그램이 원하는 작업을 다른 프로그램에게 전달해 주는것을 API라고 한다

 

다이렉트 X의 역할

 

보통 게임 개발에 사용되는 언어는 인간이 이해하기 쉬운 프로그래밍 언어로 개발되지만 그래픽카드, CPU등 모든 하드웨어는 0과 1로 이루어진 기계어로 동작하기 때문에 그 사이를 이어주는 역할이 다이렉트X이다. 게임이 원하는 작업을 그래픽카드에 전달해주는 역할인 것이다.

 

 

 

2. 다이렉트X는 하나의 API가 아니다

 

그럼 우리가 흔히 게임에서 필요한 DirecetX는 하나의 API만 존재할까? 아니다. 다이렉트X는 여러 API의 집합이라고 말할 수 있다. 2D 화면을 만드는 Direct2D, 글자를 만드는 DirectWrite, 사운드 동영상 API인 XAudio등 여러개가 있는데 우리가 게임에서 알 수있듯이 제일 중요한 API는 3D화면을 만드는데 사용되는 Direct3D이다. 이외에 우리가 한번쯤 들어본 Vulkan, Mantel의 경우도 3D화면을 만드는 API이다.

 

Vulkan은 OpenGL이라는 이름이였다

 

자본주의 사회에서는 독점은 거의 불가능하기 때문에 우리가 흔히 아는 마이크로소프트이외에 크로노스 그룹, AMD등 회사에서 개발한 여러 API가 있다.

 

그럼 이 세개 회사의 제품차이는 무엇일까?

 

  • 다이렉트X - 윈도우 운영체제에서만 실행이 가능해서 윈도우와 엑스박스에서 실행이 가능하다

 

  • Vulkan - 윈도우는 기본, 전자기기의 근본 리눅스에서 실행이되고 모바일 게임은 왠만하면 벌칸으로 실행된다(플레이스테이션은 벌칸을 개조한 API를 사용하는 것으로 알고있다)

 

  • MANTLE - 불칸과 비슷하며 대부분 운영체제에서 실행이 가능

 

 

그런데 사실 예전에는 API가 필요 없었다고도 한다. 바로 그래픽카드에 직접 컴퓨터 작업을 전달하면 됬기 때문인데 이는 특성상 보안이 매우 취약해져서 운영체제를 무조건 거쳐가도록 변경되었다고 한다. 그러나 게임과 같이 멀티미디어를 위한 독립적인 API가 없었기 때문에 그래픽카드에 원활한 전달이 되기 힘들었기떄문에 다이렉트X와 같은 API가 등장한 것이다.

 

이러한 API의 장점은 앞서말한 여러 운영체제에서 내가 만든 작업이 원활하게 동작할 수 있게 도와주고 여러가지 하드웨어에서도 같은 결과물을 보장해준다. 그렇다고 게임개발사들이 그래픽카드가 어떻게 동작해야 하는지 아예 몰라야 하는건 아니다.

 

DirectX12, Vulkan, Mantel등 저급 API라는 특징이 있는데. 이말은 API가 그래픽카드에 직접적으로 명령을 내릴 수 있다는 것을 뜻한다. 이를통해 그래픽카드가 명령을 받을때까지 기다리는 시간이 줄어들어 지연시간과 렉이 줄어들게 된다.

 

단 프로그래밍 난이도가 높아 졌다고 할 수 있다. 

 

 

 

아무튼 열심히 게임하는 유저 입장에서는 게임에서 사용된 다이렉트X가 없으면 그래픽카드와 소통이 되지 않기때문에 최신버전의 다이렉트X가 설치되어야하고, 다이렉트X를 최신으로 올리면 렉이 사라지는 경우도 있을 것이다.

 

그리고 윈도우10, 11에서는 다이렉트X12가 기본적으로 포함되어 있고 게임을 설치할때도 보통 같이 따라오고 있기 때문에 굳이 신경쓰지 않아도 된다.

'게임 > 알고 싶다' 카테고리의 다른 글

게임 엔진이란?  (2) 2022.12.03
물리엔진이란?  (2) 2022.11.27
테셀레이션(tessellation) 란?  (0) 2022.11.20
RTX란? 2편  (0) 2022.11.19
RTX란? 1편  (0) 2022.11.17

댓글