그것은 당신이하는 일에 달려 있습니다. Direct3D를 사용하는 경우 전환해야 할 유일한 이유는 다른 방법으로는 얻을 수없는 하드웨어 기능에 액세스하는 것입니다.
2D 게임의 경우 이론적으로 특정 기능이 관심을 가질 수 있습니다. 예를 들어 OpenCL 또는 DirectCompute입니다. Civilization V는 텍스처 압축 해제에 DirectCompute를 사용합니다. 압축 된 데이터 만로드하면되기 때문에로드 시간이 크게 줄어 듭니다. 그리고 2D 게임에는 종종 많은 이미지가 있습니다. 로드 시간이 문제인 경우 도움이 될 수 있습니다.
OpneCL은 모든 GeForce 8xxx 하드웨어 이상에서 사용 가능해야합니다. ATI에서는 HD 4xxx 이상 하드웨어에서 사용할 수 있습니다.
DX11에서 사용할 수있는 가장 큰 기능은 셰이더에서 이미지를 임의로 읽고 쓰는 기능입니다. 특정 특수 효과에 유용 할 수 있습니다. 나는 지금 어떤 생각도 할 수 없습니다 ... 이것이 얼마나 중요한지 알려줄 것입니다.
일반적으로 D3D를 사용하는 경우 아마 많이 얻지 못할 것이라고 말하고 싶습니다. 그리고 새로운 기능이 무엇인지 아직 이해하지 못하고이를 게임에서 사용하고자한다면 거의 얻지 못할 것입니다. 그들 대부분은 더 복잡해질 것입니다.
OpenGL은 한 가지 주요 이유로 다릅니다. OpenGL은 2.1 (다소 나마 D3D9 상당)가 흡입 하는 API한다. OpenGL 3.3 (3.3 하드웨어에서 실행되는 최신 확장 기능)은 API를 크게 향상시킵니다. 명시 적 속성 위치, 셰이더 프로그램 분리, 음영 언어 팩 (420)의 모든 것 등 .
이들 중 일부는 2.1에 비해 확장 형식으로 충분히 작동합니다. 그들 중 일부는 ... 그렇지 않습니다. attribute
선언 과 함께 명시 적 속성 위치를 사용하는 것이 (현재 in
구문 이전에 ) 괜찮은지는 여전히 확실하지 않습니다 . 음영 언어 팩 420은 특히 1.30 이전의 GLSL 버전 (OpenGL 3.0)에서는 작동하지 않는다고 말합니다.
GL 2.1을 사용할 수 없다고 말하는 것은 아닙니다. 확실히 기능적이고 서비스 적이며 즐겁지 않습니다. 구현 한 일부 드라이버 는 서비스 할 수 없습니다 . ATI의 DX9 하드웨어는 더 이상 지원되지 않으므로 해당 드라이버는 실제로 버그가 있습니다. 인텔 은 OpenGL에 신경 쓰지 않았 으므로 하드웨어에 셰이더를 사용하는 것은 행운입니다.
그러나 개인적으로 원하는 사용자 기반에서 허용한다면 OpenGL을 사용하는 경우 GL 3.3으로 푸시합니다. 그렇지 않은 경우 2.1 문제 만 처리하면됩니다.