장치

Direct3D 디바이스는 Direct3D의 렌더링 구성 요소입니다. 디바이스는 렌더링 상태를 캡슐화하여 저장하고, 변환 및 조명 작업을 수행하며, 이미지를 표면에 래스터화합니다.

Direct3D 디바이스의 아키텍처에는 다음 다이어그램과 같이 변환 모듈, 조명 모듈 및 래스터화 모듈이 포함됩니다.

diagram of the direct3d device architecture

Direct3D는 다음과 같은 두 가지 주요 유형의 Direct3D 디바이스를 지원합니다.

  • 하드웨어 가속 래스터화와 하드웨어 및 소프트웨어 모두의 꼭짓점 처리로 음영 적용이 가능한 hal 디바이스
  • 참조 디바이스

이러한 디바이스는 별도의 두 드라이버입니다. 소프트웨어 및 참조 디바이스는 소프트웨어 드라이버로 표시되며 hal 디바이스는 하드웨어 드라이브로 표시됩니다. 이러한 디바이스의 장점을 활용하는 가장 일반적인 방법은 hal 디바이스를 배송 애플리케이션에, 참조 디바이스를 기능 테스팅에 사용하는 것입니다. 이러한 기능은 특정 디바이스를 에뮬레이션하기 위해 타사가 제공합니다. 예를 들어 개발 하드웨어가 아직 릴리스되지 않은 경우입니다.

애플리케이션이 만드는 Direct3D 디바이스는 애플리케이션이 실행되는 하드웨어의 기능과 적절히 맞아야 합니다. Direct3D는 컴퓨터에 설치된 3D 하드웨어에 액세스하거나 소프트웨어에서 3D 하드웨어의 기능을 에뮬레이션하는 방식으로 렌더링 기능을 제공합니다. 따라서 Direct3D는 하드웨어 액세스와 소프트웨어 에뮬레이션 모두를 위한 디바이스를 제공합니다.

하드웨어 가속 디바이스는 소프트웨어 디바이스보다 훨씬 뛰어난 성능을 발휘합니다. hal 디바이스 유형은 Direct3D를 지원하는 모든 그래픽 어댑터에서 사용 가능합니다. 대부분의 경우 애플리케이션의 대상 컴퓨터는 하드웨어 가속 기능이 있으며 저가형 컴퓨터의 경우 이를 보완하기 위해 소프트웨어 에뮬레이션에 의존합니다.

참조 디바이스를 제외하고 소프트웨어 디바이스는 하드웨어 디바이스와 항상 동일한 기능을 지원하지는 않습니다. 애플리케이션은 항상 어떤 기능이 지원되는지 파악하기 위해 디바이스의 기능을 쿼리해야 합니다.

Direct3D 9와 함께 제공된 소프트웨어와 참조 디바이스의 동작은 hal 디바이스와 동일하므로 hal 디바이스에서 작동하도록 작성된 애플리케이션 코드는 수정하지 않고도 소프트웨어 또는 참조 디바이스에서 작동합니다. 제공된 소프트웨어 또는 참조 디바이스의 동작은 hal 디바이스와 동일하지만 디바이스 기능은 다를 수 있으며 특정 소프트웨어 디바이스는 훨씬 적은 기능만 구현할 수 있습니다.

이 섹션의 내용

주제 설명

디바이스 유형

Direct3D 디바이스 유형에는 hal(하드웨어 추상화 계층) 디바이스와 기준 래스터라이저가 포함됩니다.

창 모드 대 전체 화면 모드

Direct3D 애플리케이션은 창 모드 또는 전체 화면 모드 중 하나에서 실행될 수 있습니다. 창 모드에서 애플리케이션은 실행되는 모든 애플리케이션과 사용할 수 있는 바탕 화면 공간을 공유합니다. 전체 화면 모드에서 애플리케이션이 실행되는 창은 전체 바탕 화면을 덮어서 개발 환경을 포함하여 실행되는 모든 애플리케이션을 가립니다.

분실 디바이스

Direct3D 디바이스는 작동 상태이거나 손실 상태일 수 있습니다. 작동 상태는 디바이스가 실행되고 모든 렌더링이 예상대로 표시되는 디바이스의 정상 상태입니다. 전체 화면 애플리케이션에서 키보드 포커스를 잃어 렌더링이 불가능할 경우, 디바이스는 손실 상태로 전환됩니다.

스왑 체인

스왑 체인은 사용자에게 프레임을 표시하는 데 사용되는 버퍼의 컬렉션입니다. 응용 프로그램이 표시할 새 프레임을 제공할 때마다, 스왑 체인의 첫 버퍼가 표시되는 버퍼의 자리를 차지합니다. 이 프로세스를 스와핑 또는 플리핑이라고 부릅니다.

래스터화 규칙 소개

흔히 꼭짓점에 지정된 점은 화면의 픽셀과 정확히 일치하지는 않습니다. 이 경우 Direct3D가 삼각형 래스터화 규칙을 적용하여 지정된 삼각형에 어떤 픽셀을 적용할지 결정합니다.

 

Direct3D 그래픽 학습 가이드