DirectX Graphics 프로그래밍 가이드 Direct3D 의 기초지식 장치   [목차열람] [주소복사] [슬롯비우기]
장치
 
Microsoft DirectX 9.0

장치


Microsoft® Direct3D® 장치란, Direct3D 의 렌더링 구성 요소이다. 이것은 렌더링 스테이트를 캡슐화해 보존한다. 게다가 Direct3D 장치는, 변환 & 조명 처리를 실행해, 표면에 화면을 래스터화한다.

다음 그림이 나타내듯 Direct3D 장치의 아키텍처는, 변환, 조명, 및 래스터화 모듈로부터 구성된다.

Direct3D 장치의 아키텍처

Direct3D 가 현재 지원 하고 있는 Direct3D 의 주요 장치는, 주로 2 종류로 나눌 수 있다. 하드웨어 가속화에 의한 래스터화와 쉐이딩 및 하드웨어와 소프트웨어 양쪽 모두에 의한 정점 처리를 실시하는, 하드웨어 추상 계층 (HAL) 장치와 레퍼런스 장치의 2 종류이다.

이러한 장치는, 2 개의 별개의 드라이버라고 볼 수가 있다. 소프트웨어 장치와 레퍼런스 장치는, 소프트웨어 드라이버로 나타내져 HAL 장치는, 하드웨어 드라이버로 나타낸다. 이러한 장치를 유효 활용하는 가장 일반적인 방법은, HAL 장치를 출하용 애플리케이션에 사용해, 레퍼런스 장치를 기능 테스트에 사용하는 것이다. 이러한 레퍼런스 드라이버는, 써드파티에 의해 제공되어 특정의 장치 (예를 들어, 아직 릴리스되지 않은 개발중의 하드웨어)를 에뮬레이트 한다.

애플리케이션이 생성 하는 Direct3D 장치는, 애플리케이션이 동작하는 하드웨어의 기능에 대응하고 있지 않으면 안 된다. Direct3D 에서는, 컴퓨터에 인스톨 되고 있는 3D 하드웨어에 액세스 하는지, 소프트웨어로 3D 하드웨어 기능을 에뮬레이트 할까의 몇개의 방법으로, 렌더링 기능을 이용한다. 따라서, Direct3D 는, 하드웨어 액세스용 및 소프트웨어 에뮬레이션용의 양쪽 모두의 장치를 갖추고 있다.

하드웨어 가속화 장치는, 소프트웨어 에뮬레이션 장치보다 한층 더 높은 퍼포먼스를 실현한다. HAL 장치는, Direct3D 를 지원 하는 모든 그래픽 어댑터로 사용할 수 있다. 대부분의 경우, 애플리케이션이 대상으로 하는 것은, 어떠한 하드웨어 가속화를 갖추어 소프트웨어 에뮬레이션에 의해 로앤드 컴퓨터의 기능을 사용할 수 있는 컴퓨터이다.

레퍼런스 장치를 제외해, 소프트웨어 장치는, 항상 하드웨어 장치와 같은 기능을 지원 하고 있는 것은 아니다. 애플리케이션은, 장치 기능을 조사해, 지원 되고 있는 기능을 확인할 필요가 있다.

Microsoft DirectX® 9.0 에 의해 제공되는 소프트웨어 장치 및 레퍼런스 장치의 동작은 HAL 장치의 동작과 같고, HAL 장치용으로 생성 된 애플리케이션 코드는, 수정없이 그대로 사용할 수 있다. 제공되는 소프트웨어 장치 및 레퍼런스 장치의 동작은 HAL 장치의 동작과 같지만, 장치의 능력은 다르다. 또, 특정의 소프트웨어 장치에서는, 몇 안 되는 기능 세트 밖에 처리 할 수 없는 것도 있으므로 주의 해야 한다.

동작

Direct3D 에서는, 장치의 종류에 가세해, 장치의 동작도 지정할 수 있다. IDirect3D9::CreateDevice 메서드에서는, 1 개 또는 복수의 동작 플래그를 조합해 Direct3D 장치의 글로벌인 동작을 제어할 수 있다. 이러한 동작에 의해 Direct3D 의 런타임 부분에서 보관 유지되는 것과 보관 유지되지 않는 것이 지정되어 장치의 종류에 의해 사용하는 드라이버가 지정된다. 장치 동작의 편성안에는 유효하지 않은 것도 있지만, 모든 장치의 종류로 모든 장치의 동작을 사용할 수 있다. 예를 들어, D3DCREATE_PUREDEVICE 로 생성 된 장치에 D3DDEVTYPE_SW 를 지정할 수 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP