다음을 통해 공유


Direct3D 11에 OpenGL ES 2.0 매핑

그래픽 아키텍처를 OpenGL ES 2.0에서 Direct3D로 처음으로 포팅하는 프로세스를 시작할 경우, API 간의 주요 차이점을 숙지합니다. 이 섹션의 토픽은 그래픽 처리를 Direct3D로 이동할 때 수행해야 하는 포트 전략 및 API 변경 내용을 계획하는 데 도움이 됩니다.

항목 설명

OpenGL ES 2.0에서 Direct3D로의 포팅 계획

iOS 또는 Android 플랫폼에서 게임을 포팅하는 경우 OpenGL ES 2.0에 상당한 투자를 했을 수 있습니다. 그래픽 파이프라인 코드베이스를 Direct3D 11 및 Windows 런타임으로 이동할 준비를 할 때 시작하기 전 몇 가지 사항을 고려해야 합니다.

EGL 코드와 DXGI 및 Direct3D 비교

DXGI(DirectX Graphics Interface) 및 일부 Direct3D API는 EGL과 동일한 역할을 합니다. 이 항목은 EGL의 관점에서 DXGI 및 Direct3D 11을 이해하는 데 도움이 됩니다.

OpenGL ES 2.0 버퍼, 유니폼 및 꼭짓점 특성과 Direct3D 비교

OpenGL ES 2.0에서 Direct3D 11로 포팅하는 동안 앱과 셰이더 프로그램 간에 데이터를 전달하기 위한 구문 및 API 동작을 변경해야 합니다.

OpenGL ES 2.0 셰이더 파이프라인과 Direct3D 비교

개념적으로 Direct3D 11 셰이더 파이프라인은 OpenGL ES 2.0의 파이프라인과 매우 유사합니다. 그러나 API 디자인 측면에서 셰이더 단계를 만들고 관리하기 위한 주요 구성 요소는 ID3D11Device1ID3D11DeviceContext1이라는 두 가지 기본 인터페이스의 일부입니다. 이 토픽에서는 일반적인 OpenGL ES 2.0 셰이더 파이프라인 API 패턴을 이러한 인터페이스의 Direct3D 11 등가물에 매핑하려고 시도합니다.

 

특정 OpenGL ES 2.0 공급자에 대한 참고 사항

이러한 항목에서는 플랫폼에 구애받지 않은 C와 함께 Khronos OpenGL ES 2.0 사양을 사용합니다. iOS와 Android 모두 동일한 사양을 활용하며 이러한 플랫폼용으로 개발된 OpenGL ES 2.0 코드는 일반적으로 개체 지향 API로 노출되지만, 진행하는 코드 조각과 매우 유사합니다. 또한 각 플랫폼의 복잡성 및 언어 차이로 인해, 특히 메서드 매개 변수 형식 또는 일반 언어 구문에서 사소한 차이가 있을 수 있습니다. 예를 들어, iOS는 Objective-C를 사용합니다. Android에는 C++를 사용하는 기능이 있습니다. 그러나 일부 개발자는 순수한 Java 구현에 의존했을 수 있습니다. 이 점을 염두에 두고 이러한 항목은 OpenGL ES API의 전반적인 개념, 구조, 사용이 다르지 않기 때문에 여전히 유용해야 합니다.