게임을 실행할 때 설정 창에서 DirectX 11, DirectX 12, Vulkan, OpenGL 중 하나를 선택해야 하는 순간을 자주 접하게 됩니다.
이 기술들은 그래픽 API(Application Programming Interface)로, 게임 엔진이 그래픽 카드의 하드웨어 자원을 활용하여 화면을 그릴 수 있도록 중간에서 다리를 놓아주는 역할을 합니다.
어떤 API를 선택하느냐에 따라 동일한 그래픽 카드와 모니터 환경에서도 체감 프레임(FPS)과 프레임 타임 안정성이 크게 달라집니다.
그래픽 API의 기본 역할과 프레임 생성 원리
그래픽 API는 게임 코드가 요청하는 연산 명령을 그래픽 카드(GPU)가 이해할 수 있는 신호로 변환합니다.
이 변환 과정에서 발생하는 작업량을 드로우 콜(Draw Call) 및 오버헤드(Overhead)라고 부릅니다.
CPU와 GPU 사이의 드로우 콜과 오버헤드
게임을 구동할 때 CPU는 화면에 어떤 물체를 그려야 할지 결정하고, GPU에게 명령을 전달하는 드로우 콜을 수행합니다.
이 과정에서 API의 처리 효율이 낮으면 CPU에 과도한 부하가 걸리는 병목 현상이 일어납니다.
CPU 병목이 발생하면 아무리 성능이 뛰어난 그래픽 카드를 사용하더라도 프레임이 상승하지 않고 화면이 끊기게 됩니다.
고성능 하드웨어 제어를 위한 로우 레벨 API의 등장
과거의 API는 하드웨어 제어를 프로그램에 맡기지 않고 스스로 처리하는 하이 레벨(High-level) 방식을 사용했습니다.
하지만 다중 코어 CPU가 대중화되면서, 하드웨어 장치를 직접 제어하여 오버헤드를 줄이는 로우 레벨(Low-level) API가 등장했습니다.
하드웨어 제어권이 게임 개발자에게 직접 전달됨에 따라 자원 효율성이 극대화되고 프레임 방어 능력이 비약적으로 상승했습니다.
주요 그래픽 API별 특징과 성능 차이
대표적인 API인 DirectX, Vulkan, OpenGL은 개발 주체와 설계 철학에 따라 각기 다른 성능 특성을 보입니다.
각 API의 작동 방식을 이해하면 내가 즐기는 게임에서 어떤 설정을 선택해야 할지 명확해집니다.
마이크로소프트의 독점 표준 DirectX 11과 DirectX 12
DirectX 11은 단일 코어 성능에 의존하는 하이 레벨 API로, 오랫동안 PC 게임의 표준으로 자리 잡아 왔습니다.
반면 DirectX 12는 멀티코어 CPU의 모든 코어에 드로우 콜을 분산 처리하는 로우 레벨 API입니다.
최신 최적화가 잘 된 게임에서는 DirectX 12를 사용할 때 CPU 병목이 해소되어 평균 프레임과 하위 1% 프레임이 동시에 상승합니다.
크로노스 그룹의 개방형 고성능 API Vulkan
Vulkan은 플랫폼 제한 없이 작동하는 대표적인 차세대 로우 레벨 개방형 API입니다.
AMD의 Mantle 기술을 기반으로 설계되어, CPU 오버헤드를 최소화하고 다중 스레드 연산 효율을 극대화합니다.
특히 윈도우뿐만 아니라 리눅스, 안드로이드 환경에서도 뛰어난 프레임 유지력을 보여주며, 특정 구형 CPU 환경에서도 놀라운 성능 향상을 끌어냅니다.
레거시 시스템과 크로스 플랫폼의 기반 OpenGL
OpenGL은 가장 오랜 역사를 가진 개방형 그래픽 API로, 독점성이 없어 다양한 운영체제에서 널리 쓰여왔습니다.
다만 드라이버 의존도가 높고 멀티스레딩 활용 능력이 떨어져, 최신 3D 게임에서는 프레임 확보에 불리합니다.
현재는 에뮬레이터나 2D 게임, 구형 시스템 호환성을 위한 목적으로 주로 활용됩니다.
게임 엔진과 실행 환경에 따른 최적의 API 선택 전략
API의 이론적 성능이 뛰어나더라도, 게임 엔진의 구현 방식에 따라 실제 프레임 출력은 다를 수 있습니다.
내 시스템 사양과 게임 엔진의 지원 여부를 고려하여 최적의 옵션을 지정해야 합니다.
멀티코어 CPU 환경에서의 DirectX 12 및 Vulkan 활용
6코어 이상의 최신 CPU를 탑재한 PC에서는 DirectX 12나 Vulkan을 선택하는 것이 프레임 상승에 유리합니다.
여러 개의 CPU 코어가 동시에 GPU로 명령을 전달하므로 복잡한 상호작용이 일어나는 대규모 전투나 오픈월드 환경에서 프레임 드랍을 막아줍니다.
게임 내 그래픽 설정에서 해당 옵션을 제공한다면 최우선으로 활성화하는 것을 권장합니다.
구형 하드웨어 및 게임 최적화 상태에 따른 설정 변경
게임 개발사의 최적화 노하우에 따라 DirectX 12 적용 시 오히려 스터터링(Stuttering)이 발생하는 경우가 있습니다.
엔진 자체가 DirectX 11 기반으로 제작된 후 단순 포팅된 게임이라면, DirectX 11을 유지하는 것이 프레임 타임을 한층 안정적으로 유지해 줍니다.
프레임 측정 프로그램을 활용해 두 옵션의 하위 1% 프레임을 비교한 뒤 더 안정적인 값을 제공하는 API를 선택해야 합니다.
자주 묻는 질문
Q1. DirectX 11과 DirectX 12 중 어떤 설정을 선택해야 프레임이 더 잘 나오나요?
A1. 6코어 이상의 최신 CPU와 그래픽 카드를 사용 중이라면 DirectX 12가 프레임 상승에 유리합니다. 다만 게임에 따라 DirectX 12 최적화가 미흡하여 간헐적인 렉이 발생할 수 있으므로, 프레임 타임이 요동친다면 DirectX 11로 변경하는 것이 좋습니다.
Q2. Vulkan API는 어떤 경우에 사용하는 것이 가장 효과적인가요?
A2. Vulkan을 공식 지원하는 게임(예: 둠 시리즈, 붉은 사막 등)이나 윈도우 외의 운영체제, 혹은 AMD 그래픽 카드를 사용할 때 매우 뛰어난 프레임 상승 효과를 보여줍니다. CPU 오버헤드가 적어 하위 프레임 방어에도 매우 탁월합니다.
Q3. OpenGL은 최신 게임에서 더 이상 사용하지 않나요?
A3. 고사양 3D 신작 게임에서는 멀티스레딩 성능 한계로 인해 거의 사용되지 않습니다. 하지만 모바일 게임 에뮬레이터, 인디 2D 게임, 캐주얼 게임 등에서는 뛰어난 호환성을 바탕으로 여전히 활발하게 사용되고 있습니다.