DirectX 11을 지원하는 윈도우 비스타와 윈도우 7

윈도우 XP에서 윈도우 비스타로 넘어가면서 DirectX 9까지 지원되던 환경에서 DirectX 10으로의 이전이 이루어지면서 게이밍 환경도 바뀌게 되었다. 또한, 비스타 서비스팩 1을 내놓으면서 마이너 업그레이드 버전인 DirectX 10.1도 지원하게되고 AMD ATI는 Radeon HD 3000 시리즈를 통해 DirectX 10.1을 본격적으로 지원하기 시작했다. 이때 엔비디아 (NVIDIA)는 DirectX 10 지원에서 최근 40nm 공정 GPU들에서 DirectX 10.1을 지원하기 시작했다.
윈도우 비스타를 이어 등장한 윈도우 7은 다시 게이밍 환경을 바꿀 것으로 알려진 DirectX 11을 본격적으로 지원하게 되었다. 물론, 윈도우 비스타도 윈도우 7과 기본적으로 같은 커널을 지원하고 있는 만큼 최근 등장한 패치를 통해 DirectX 11을 지원할 수 있게 되었다.
이렇듯 게이밍 환경을 개선할 수 있을 것으로 기대되는 DirectX 11의 등장은 윈도우 7과 DirectX 11을 지원하는 그래픽카드인 AMD ATI Radeon HD 5800/ 5700 시리즈의 등장으로 본격적인 DirectX 11 환경을 만들 수 있게 되었다. 엔비디아의 경우 DirectX 11 지원 코드명 Fermi의 등장이 늦어져 내년이 되어야 AMD ATI와 제대로된 경쟁을 할 것으로 예상된다.
하지만, 여전히 DirectX 11을 지원하는 게임들이 활발하게 등장하지 않아 DirectX 11로 인한 장점들을 얻기는 아직 힘들다. 다만, 올해 말을 시작으로 하나 둘 DirectX 11 지원 게임들이 등장할 것으로 알려져 있기 때문에 이를 지원하는 게임들이 등장하게 되면 DirectX 11의 장점들을 얻을 수 있을 것으로 예상된다.
따라서, 여기에서는 DirectX 11이 가진 특징을 간략하게 살펴본 후 DirectX 11의 특징을 지원하는 벤치마크 프로그램을 통해 DirectX 11의 성능도 살펴보았다.
DirectX 11의 특징
1) 테셀레이션 (Tessellation)
DirectX 11에 포함된 테셀레이션은 AMD ATI의 경우 Radeon HD 2000 시리즈를 내놓으면서 별도의 테셀레이터를 넣어놓은 것이 DirectX 11 API에 포함되면서 고정유닛으로 반드시 필요한 장치가 되었다. 테셀레이션은 GPU에 별도로 내장된 고정유닛인 테셀레이터와 프로그래머블인 Hull/ Domain 쉐이더의 2단계 새로운 스테이지가 추가되어 DirectX 11 지원의 특징이된다.
테셀레이터는 Hull Shader에 의해 제어되고 테셀레이트된 버텍스 (정점 생성)는 Domain Shader가 담당한다. 고정 유닛인 테셀레이터는 단순히 정점 데이터 생성이 주요한 역할이다. DirectX 11의 테셀레이터는 유연성이 기존보다 높아졌고 기존 프로그래머블 가능한 지오메트리 쉐이더를 이용한 방법보다 더 높은 처리 성능이 가능해진다.
테셀레이션은 GPU의 테셀레이터와 Hull/ Domain Shader를 통해 구현되며, 그래픽 이미지의 디테일을 살리고 부드러운 커브를 계산하여 이를 적용하지 않을 때보다 더욱 사실적인 이미지를 구현해준다.
2) Multi-Threading
DirectX 11에서는 멀티스레딩 지원이 기존 Directx 10/ 10.1보다 향상되었으며, 이전 세대보다 효율성을 크게 높이고 있다. 개발자들은 멀티코어 CPU를 최대한 활용하여 게임 등을 개발함으로써 멀티코어 CPU로 인한 장점들을 이용할 수 있고 스레드 처리에서 GPU의 효율도 더욱 높였다. 멀티스레딩 지원을 향상시킨 결과 게임 내에서 더 향상된 프레임을 제공할 수 있게 되었다.
3) DirectCompute
DirectCompute는 DirectX 11에 포함된 GPGPU 즉, GPU를 이용한 범용 컴퓨팅을 가능하게 해주는 기술로 마이크로소프트가 지원하고 있다. 그래픽카드 제조사들인 엔비디아는 CUDA, AMD ATI는 ATI Stream을 지원하며, 공개표준 OpenCL도 있다. 그래픽카드 제조사들은 이들 GPGPU 기술들이 표준화되지 않아 현재는 각각의 공개 기술들을 대부분 지원하는 추세다.
DirectCompute는 새롭게 정의된 Compute Shader를 통해 GPU를 이용하여 영상 트랜스코딩 등 CPU에서만 가능했던 일 일부를 보조할 수 있게 되었다. DirectX 11에 포함된 Compute Shader 5.0은 공유 메모리 증가와 동기화 개선을 위한 Atomic 구조 지원 등이 이루어지며, 기존 DirectX 10/ 10.1 지원에서는 Compute Shader 4.0/ 4.1을 지원하여 DirectX 11의 Compute Shader 5.0 지원에서 일부 기능들이 제한된다.
현재 DirectX 11 지원으로 공개된 게임은 온라인 게임인 Battleforge가 있으며, 얼마 있으면 DiRT2, Stalker, Aliens vs Preator 등의 게임들도 등장할 것으로 알려지고 있다.
DirectX 11 지원 벤치마크 : Unigine Heaven

[DirectX 11과 Tessellation을 지원하는 Unigine Heaven]
DirectX 11 지원 벤치마크 프로그램으로 알려진 Unigine Heaven은 DirectX 9부터 10/ 11을 모두 지원하고 있으며, DirectX 11의 특징인 Tessellation을 적용한 성능 및 게임 화면의 변화를 확인할 수 있다. 성능은 윈도우 7 32와 64비트 환경, 그리고 DirectX 10과 11 환경에서의 성능을 비교했다.

DirectX 10을 적용한 환경에서는 윈도우 32bit와 64bit 환경은 성능 차이는 거의 없는 것으로 나타났으며, HD 5750의 성능이 HD 4850보다 높게 나타났고 GTS 250은 가장 높은 프레임을 제공했다.

이번에는 테셀레이션 (Tessellation)을 활성화한 DirectX 11에서 윈도우 7 32와 64bit의 성능은 HD 4850/ GTS 250의 성능은 변함이 없는데 이들 두 카드는 DirectX 11과 DirectX 11의 테셀레이션을 기능을 제대로 지원하지 못하여 DirectX 10에서 테스트한 결과와 차이가 없다. 반면, HD 5750은 DirectX 11과 테셀레이션을 제대로 지원하기 때문에 이를 이용한 효과가 크게 향상되는 반면 성능 저하도 크게 나타나는 차이가 있다.

DirectX 11을 지원하는 HD 5750은 테셀레이션을 켜고 끔에 따른 성능 차이를 확실하게 확인할 수 있지만, 테셀레이션 적용에 따른 향상된 게임 품질도 직접 확인할 수 있다.
Unigine Heaven : DirectX 11 지원, DirectX 10과 11 이미지비교

[HD 5750 : DirectX 10 (이미지 클릭하면 큰이미지)]

[HD 5750 : DirectX 10, 와이어프레임 (이미지 클릭하면 큰이미지)]

[HD 5750 : DirectX 11, 테셀레이션 적용 후 (이미지 클릭하면 큰이미지)]

[HD 5750 : DX 11, 테셀레이션 적용 후 와이어프레임 (클릭하면 큰이미지)]
DirectX 11을 지원하는 Unigine Heaven은 DirectX 11 선택시 테셀레이션을 활성화할 수 있는데 이를 적용할 경우 앞서 살펴본 것처럼 성능 저하가 크게 나타나는데 실제 이미지 품질에도 차이가 나고 있는 것을 확인할 수 있다.
비교된 이미지에서 DirectX 11과 테셀레이션이 적용된 경우 용의 몸에 있는 뿔들과 건물의 지붕, 바닥의 돌의 이미지에도 차이가 있으며, 이는 와이어프레임을 적용하면 그 차이를 보다 쉽게 알 수 있다. 테셀레이션이 적용된 DirectX 11 이미지는 건물 지붕이나 바닥의돌, 용을 더욱 세분화된 정점들로 나누어 보다 세밀한 이미지 표현이 가능해지고 있다.
하지만, 테셀레이션이 적용된 DirectX 11 환경은 고품질이 가능해지는 반면, 성능 저하가 꽤 크게 나타나는 것을 앞서의 테스트를 통해 확인할 수 있다. 그만큼 앞으로 등장할 게임들에서 얼마나 DirectX 11의 특징을 이용한 테셀레이션 효과 등을 게임에 최적화되도록 구현할 수 있는지에 따라 지원 게임의 수 외에도 큰 변수로 작용될 것으로 예상된다. |