Compartir a través de


Tipos de dispositivo

Los tipos de dispositivos Direct3D incluyen dispositivos de capa de abstracción de hardware (hal) y el rasterizador de referencia.

Dispositivo HAL

El tipo de dispositivo primario es el dispositivo hal, que admite la rasterización acelerada por hardware y el procesamiento de vértices mediante hardware y software. Si el equipo en el que se ejecuta la aplicación está equipado con un adaptador de pantalla compatible con Direct3D, la aplicación debe usarlo para las operaciones de Direct3D. Los dispositivos hal de Direct3D implementan todos o parte de los módulos de transformación, iluminación y rasterización en hardware.

Las aplicaciones no acceden directamente a las tarjetas gráficas. Llaman a funciones y métodos Direct3D. Direct3D accede al hardware a través del hal. Si el equipo en el que se ejecuta la aplicación es compatible con hal, conseguirá el mejor rendimiento mediante un dispositivo hal.

Dispositivo de referencia

Direct3D admite un tipo de dispositivo adicional denominado dispositivo de referencia o rasterizador de referencia. A diferencia de un dispositivo de software, el rasterizador de referencia es compatible con todas las características de Direct3D. Este dispositivo está pensado para usarse con fines de depuración y, por tanto, solo está disponible en las máquinas en las que se ha instalado el SDK de DirectX. Dado que estas características se implementan para lograr precisión en lugar de velocidad y se implementan en el software, los resultados no son muy rápidos. El rasterizador de referencia hace uso de instrucciones de CPU especiales siempre que pueda, pero no está pensado para aplicaciones comerciales. Usa el rasterizador de referencia solo con fines de demostración o pruebas de características.

Dispositivos HAL frente a dispositivos REF

Los dispositivos HAL (capa de abstracción de hardware) y los dispositivos REF (rasterizador de referencia) son los dos principales tipos de dispositivo de Direct3D; el primero se basa en la compatibilidad de hardware, y es muy rápido, pero podría no se compatible con todo; mientras que el segundo no usa aceleración de hardware, por lo que es muy lento, pero está garantizado que admite todo el conjunto de características de Direct3D, de la manera correcta. En general, solo necesitarás usar dispositivos HAL, pero si usas alguna característica avanzada que la tarjeta gráfica no admita, es posible que tengas que revertir a REF.

La otra ocasión en que puede interesarte usar REF es si el dispositivo HAL está produciendo resultados extraños; es decir, estás seguro de que el código es correcto, pero el resultado no es el esperado. Está garantizado que el dispositivo REF se comporta correctamente, por lo que es posible que desees probar la aplicación en el dispositivo REF y ver si el comportamiento extraño continúa. Si no es así, significa que (a) la aplicación asume que la tarjeta gráfica es compatible con algo y no lo es o (b) es un error de un driver. Si sigue sin funcionar con el dispositivo REF, se trata de un error de la aplicación.

Procesamiento de vértices mediante hardware frente a procesamiento de vértices mediante software

El procesamiento de véritices mediante hardware frente a mediante software solo se aplica realmente a los dispositivos HAL. Al insertar vértices a través del proceso, deben transformarse (por las matrices de mundo, vista y proyección a su vez) e iluminarse (por las luces integradas de D3D); esta fase de procesamiento se conoce como T&L (por transformación e iluminación). El procesamiento de vértices mediante hardware significa que esto se realiza en hardware, si el hardware lo admite; ergo, el procesamiento de vértices mediante software se realiza en software. El procedimiento genérico consiste en intentar crear primero un dispositivo de T&L mediante hardware; si se produce un error, probar la opción Mixto, y si se produce un error, probar Software. (Si se produce un error en Software, abandona y sal con un error).

Dispositivos