해당 포스팅은 이상윤님께서 공유해주신 2025 TA Campus 수업 문서 링크를 바탕으로 작성했습니다.
5. Graphics API
지금까지
- 그래픽스의 용어의 개념
- CPU와 GPU의 동작 방식 (Graphics Pipeline)
- Graphics Pipeline의 구조 설계 및 활용 (Render Pass & Rendering Path)
에 대해서 알아보았다.
그래서 이러한 작업들을 개발자가 어떻게 실제로 구현할 수 있을까? 이때 등장하는 개념이 바로 Graphics API다.
Graphics API는 CPU 코드를 통해 GPU 하드웨어에게 렌더링 명령을 전달하기 위한 표준 인터페이스라고 정의할 수 있겠다.
대표적인 Graphics API들은 다음과 같다.
- DirectX 11 / 12
- Vulkan
- Metal
- GNM/GNMX
5-1. DirectX12
Microsoft에서 개발하고 제공하는 Graphics API이다.
- Shader Language : HLSL
사용 플랫폼 :
- Windows
- Xbox
5-2. Vulkan
Khronos Group에서 개발한 크로스 플랫폼 Graphics API이다.
- Shader Language : HLSL, GLSL
사용 플랫폼 :
- Windows
- Linux
- Android
- MacOS
- Switch
- iOS 등등
5-3. Metal
Apple에서 개발한 Graphics API이다.
- Shader Language : MSL
사용 플랫폼 :
- macOS
- iOS
- iPadOS 등의 애플 하드웨어
5-4. GNM / GNMX
Sony에서 개발한 PlayStation 전용 Graphics API이다.
- Shader Language : PSSL
사용 플랫폼 :
- PlayStation 4
- PlayStation 5
5-5. 게임 엔진에서의 Graphics API
게임 엔진에서는 다양한 플랫폼에서의 개발을 지원하기 위해 위에서 언급했던 API들을 호환하는 추상화된 인터페이스 계층을 주로 만든다.
Unreal Engine의 경우, RHI(Rendering Hardware Interface) 라는 추상화 레이어를 둔다. RHI의 역할은 간단하다.
- DirectX 12
- Vulkan
- Metal
같은 서로 다른 Graphics API를 하나의 공통 인터페이스로 감싸는 것이다. 이로 인해 엔진에서는 특정 API에 종속되지 않고 동일한 렌더링 로직을 플랫폼 별로 재사용이 가능하도록 지원하고 있다.
RHI에 대한 자세한 내용은 Render Hardware Interface를 참고해주세요.
API 선택시 고민해 볼 사항
Graphics API는 “기능이 더 많고, 성능이 더 좋다”는 이유만으로 선택할 수 있는 문제가 아니다. 실제 프로젝트에서는 플랫폼 지원 범위, OS 버전, 드라이버 성숙도까지 함께 고려해야 한다.
Unreal Engine의 권장 하드웨어 사양
그래픽카드가 DirectX 12를 지원한다고 해서 모든 기능을 동일하게 사용할 수 있는 것은 아니다.
- GPU 아키텍처에 따라
- Feature Level이 다르고
- Optional Feature 지원 여부도 다르다
따라서 이러한 점을 항상 염두에 둬야 한다.