디바이스 유형(Direct3D 9)
HAL 디바이스
기본 디바이스 유형은 하드웨어 가속 래스터화와 하드웨어 및 소프트웨어 꼭짓점 처리를 모두 지원하는 hal 디바이스입니다. 응용 프로그램이 실행 중인 컴퓨터에 Direct3D를 지원하는 디스플레이 어댑터가 장착된 경우 응용 프로그램에서 Direct3D 작업에 사용해야 합니다. Direct3D hal 디바이스는 하드웨어에서 변환, 조명 및 래스터화 모듈의 전부 또는 일부를 구현합니다.
애플리케이션은 그래픽 어댑터에 직접 액세스하지 않습니다. Direct3D 함수 및 메서드를 호출합니다. Direct3D는 hal을 통해 하드웨어에 액세스합니다. 애플리케이션에서 실행 중인 컴퓨터가 hal을 지원하는 경우 hal 디바이스를 사용하여 최상의 성능을 얻을 수 있습니다.
hal 디바이스를 만들려면 D3DDEVTYPE_HAL 디바이스 유형으로 사용하여 CreateDevice 호출합니다.
참조 디바이스
Direct3D는 참조 디바이스 또는 참조 래스터라이저라는 추가 디바이스 유형을 지원합니다. 소프트웨어 디바이스와 달리 참조 래스터라이저는 모든 Direct3D 기능을 지원합니다. 이 디바이스는 디버깅 목적으로 사용되므로 DirectX SDK가 설치된 컴퓨터에서만 사용할 수 있습니다. 이러한 기능은 속도보다는 정확도를 위해 구현되고 소프트웨어에서 구현되므로 결과는 매우 빠르지 않습니다. 참조 래스터라이저는 가능할 때마다 특별한 CPU 지침을 사용하지만 소매 애플리케이션용은 아닙니다. 기능 테스트 또는 데모 목적으로만 참조 래스터라이저를 사용합니다. 참조 디바이스를 만들려면 D3DDEVTYPE_REF 디바이스 유형으로 사용하여 CreateDevice 메서드를 호출합니다.
HAL 및 REF 디바이스
HAL(하드웨어 추상화 계층) 디바이스 및 REF(REFerence 래스터라이저) 디바이스는 Direct3D 디바이스의 두 가지 주요 유형입니다. 첫 번째는 하드웨어 지원을 기반으로 하며 매우 빠르지만 모든 것을 지원하지는 않을 수 있습니다. 두 번째는 하드웨어 가속을 사용하지 않지만 매우 느리지만 전체 Direct3D 기능 집합을 올바른 방식으로 지원하도록 보장됩니다. 일반적으로 HAL 디바이스만 사용해야 하지만 그래픽 카드에서 지원하지 않는 고급 기능을 사용하는 경우 REF로 대체해야 할 수 있습니다.
REF를 사용할 수 있는 다른 시간은 HAL 디바이스가 이상한 결과를 생성하는 경우입니다. 즉, 코드가 정확하다고 확신하지만 결과가 예상과 다릅니다. REF 디바이스가 올바르게 작동하도록 보장되므로 REF 디바이스에서 애플리케이션을 테스트하고 이상한 동작이 계속되는지 확인할 수 있습니다. 그렇지 않으면 (a) 애플리케이션이 그래픽 카드에서 지원하지 않는 항목을 지원한다고 가정하거나 (b) 드라이버 버그라고 가정합니다. REF 디바이스에서 여전히 작동하지 않는 경우 애플리케이션 버그입니다.
하드웨어 및 소프트웨어 꼭짓점 처리
하드웨어 및 소프트웨어 꼭짓점 처리는 HAL 디바이스에만 실제로 적용됩니다. 파이프라인을 통해 꼭짓점을 푸시할 때 변환(월드, 뷰 및 프로젝션 매트릭스에 의해 차례로) 조명(D3D의 기본 제공 조명)이어야 합니다. 이 처리 단계는 T&L(변환 & 조명용)으로 알려져 있습니다. 하드웨어 꼭짓점 처리는 하드웨어에서 이를 지원하는 경우 하드웨어에서 수행됨을 의미합니다. ergo, 소프트웨어 꼭짓점 처리는 소프트웨어입니다. 일반적으로 하드웨어 T&L 디바이스를 먼저 만들고 실패하는 경우 Mixed를 시도하고 실패하면 Software를 사용해 보세요. (소프트웨어가 실패하면 오류와 함께 포기하고 종료합니다).
관련 항목