Dispositivos Direct3D (Direct3D 9)

Un dispositivo de Direct3D es el componente de representación de Direct3D. Encapsula y almacena el estado de representación. Además, un dispositivo Direct3D realiza transformaciones y operaciones de iluminación y rasteriza una imagen en una superficie.

Arquitecturamente, los dispositivos Direct3D contienen un módulo de transformación, un módulo de iluminación y un módulo de rasterización, como se muestra en el diagrama siguiente.

diagrama de la arquitectura de dispositivo direct3d

Direct3D admite actualmente dos tipos principales de dispositivos Direct3D:

  • Un dispositivo hal con rasterización acelerada por hardware y sombreado con procesamiento de vértices de hardware y software
  • Un dispositivo de referencia

Puede considerar estos dispositivos como dos controladores independientes. Los dispositivos de software y referencia se representan mediante controladores de software y el dispositivo hal está representado por un controlador de hardware. La forma más común de aprovechar estos dispositivos es usar el dispositivo hal para enviar aplicaciones y el dispositivo de referencia para las pruebas de características. Estos se proporcionan por terceros para emular dispositivos concretos( por ejemplo, hardware de desarrollo que aún no se ha publicado.

El dispositivo Direct3D que crea una aplicación debe corresponder a las funcionalidades del hardware en el que se ejecuta la aplicación. Direct3D proporciona funcionalidades de representación, ya sea mediante el acceso al hardware 3D instalado en el equipo o mediante la emulación de las funcionalidades del hardware 3D en el software. Por lo tanto, Direct3D proporciona dispositivos para el acceso de hardware y la emulación de software.

Los dispositivos acelerados por hardware proporcionan un rendimiento mucho mejor que los dispositivos de software. El tipo de dispositivo hal está disponible en todos los adaptadores gráficos compatibles con Direct3D. En la mayoría de los casos, las aplicaciones tienen como destino equipos que tienen aceleración de hardware y dependen de la emulación de software para acomodar equipos de gama inferior.

A excepción del dispositivo de referencia, los dispositivos de software no siempre admiten las mismas características que un dispositivo de hardware. Las aplicaciones siempre deben consultar las funcionalidades del dispositivo para determinar qué características se admiten.

Dado que el comportamiento de los dispositivos de software y referencia proporcionados con Direct3D 9 es idéntico al del dispositivo hal, el código de aplicación creado para trabajar con el dispositivo hal funcionará con el software o los dispositivos de referencia sin modificaciones. Tenga en cuenta que, aunque el comportamiento del dispositivo de referencia o software proporcionado es idéntico al del dispositivo hal, las funcionalidades del dispositivo varían y un dispositivo de software determinado puede implementar un conjunto de funcionalidades mucho más pequeño.

Comportamientos

Direct3D permite especificar el comportamiento de un dispositivo, así como el tipo del dispositivo. El método IDirect3D9::CreateDevice habilita una combinación de una o varias marcas de comportamiento para controlar los comportamientos globales del dispositivo Direct3D. Estos comportamientos especifican qué es y no se mantienen en la parte en tiempo de ejecución de Direct3D y los tipos de dispositivo especifican qué controlador usar. Aunque algunas combinaciones de comportamientos de dispositivo no son válidas, es posible usar todos los comportamientos de dispositivo con todos los tipos de dispositivos. Por ejemplo, es válido especificar D3DDEVTYPE_SW en un dispositivo creado con D3DCREATE_PUREDEVICE.

Introducción