2D 게임에 DX10 / 11을 사용하면 어떤 이점이 있습니까?


10

DX10 / 11 클래스 하드웨어에 의해 도입 된 기능 세트에 완전히 익숙하지 않습니다. 지오메트리 셰이더, 컴퓨팅 셰이더 및 새로운 테셀레이션 스테이지와 같이 프로그래밍 가능한 그래픽 파이프 라인에 추가 된 새로운 스테이지에 대해 잘 알고 있습니다. 그래도 2D 게임에서 어떻게 큰 차이가 나는지 모르겠습니다.

2D 게임을 위해 DX10 / 11 (또는 OpenGL 등가물)로 전환해야 할 강력한 이유가 있거나, 시장의 상당 부분이 여전히 오래된 기술 (예 : 2012 년 2 월 Steam 설문 조사에 따르면 사용자의 약 17 %가 여전히 Windows XP를 사용하고있는 것으로 나타 났습니까?

답변:


5

그것은 당신이하는 일에 달려 있습니다. 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 문제 만 처리하면됩니다.


5

고려해야 할 몇 가지 사항이 있습니다.

  • 잘 테스트 된 D3D9 엔진을 가지고 있다면, 새로운 기능을 사용하지 않는다면 D3D11로 포팅 할 가치가 없을 것입니다. 처음부터 D3D11을 시작하면 훨씬 유혹적입니다.

  • 게임 출시 날짜는 얼마나 되나요? XP는 2 년 만에 지원이 중단 될 것이며 XP 설치 기반이 상당히 빠르게 떨어지는 과거 데이터를 보면 (증기에서 ~ 1 % / 월).

  • XP 사용자의 17 % 중 D3D9에서 게임의 최소 사양을 충족하는 PC를 보유 할 비율을 고려하십시오. 그 가치가 높을수록 더 가치가 있습니다.

  • DX10은 대부분 새로운 개발에 쓸모가 없습니다. DX11은 기능 수준을 통해 동일한 운영 체제 및 하드웨어에서 실행됩니다.

  • DX11은 WARP (소프트웨어 렌더러)를 폴백 장치로 지원하므로 GPU 요구 사항이 낮은 게임을 충분히 빠르게 실행할 수 있습니다.

  • Native DX9는 D3D9 기능 레벨을 사용할 때 D3D11보다 많은 기능을 지원합니다. 고맙게도 DX10 지원 PC의 DX9 하드웨어는 거의 없습니다.

  • DX10 / 11 하드웨어의 기능은 훨씬 덜 다양하므로 DX9 하드웨어에서 WARP를 사용하도록하면 2의 제곱이 아닌 텍스처 또는 어색한 텍셀 픽셀 매핑 과 같은 어색한 제한에 대해 걱정할 필요가 없습니다 .

  • 게임이 하드웨어 집약적 일 경우 DX11에는 성능을 향상시키는 데 사용할 수있는 몇 가지 추가 트릭이 있습니다. 예를 들어 드로우 코드를 멀티 스레딩합니다.


기능 수준에 대해 약간 혼란 스럽습니다. DX11을 사용하여 개발하지만 DX9 기능 레벨을 대상으로하는 경우 DX9 하드웨어에서 실행될 것임을 이해합니다. 그러나 여전히 DX11 런타임이 필요합니까, 즉 Windows XP에서 실행됩니까?
David Gouveia

DX11은 XP에서 전혀 작동하지 않습니다. 기능 레벨의 기능은 DX11 API를 구형 하드웨어와 함께 사용할 수 있도록하는 것입니다. 확인 msdn.microsoft.com/en-us/library/ff476876%28v=vs.85%29.aspx을 각 기능 수준으로하면 무엇을 할 수 있는지를 대한 자세한 내용은.
Adam

1

많은 수의 입자 또는 스프라이트를 계획하는 경우 형상 쉐이더만으로 D3D10 / 11을 사용해야합니다.

DirectCompute는 또한 몇 가지 멋진 속도 이점을 위해 사용될 수 있습니다.

개인적으로 D3D10 / 11의 훨씬 깨끗하고 멋진 API를 사용하는 것은 현대 Windows 전용 프로젝트에서 D3D9 또는 OpenGL을 다시 만지지 않아도 될 충분한 이유입니다. 그러나 실제로 GL | ES 및 여전히 상당한 크기의 WinXP 크라우드로 모바일 장치를 대상으로해야하므로 D3D10 / 11을 피하고 D3D9 또는 OpenGL을 고수해야합니다.

OpenGL 경로를 사용하면 WinXP에서도 지오메트리 쉐이더, OpenCL 및 기타 최신 하드웨어 기능을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.