Tipi di dispositiviDevice types

I tipi di dispositivi Direct3D includono i dispositivi Hardware Abstraction Layer (hal) e l'unità di rasterizzazione di riferimento.Direct3D device types include Hardware Abstraction Layer (hal) devices and the reference rasterizer.

Dispositivo HALHAL Device

Il tipo di dispositivo primario è il dispositivo hal che supporta la rasterizzazione con accelerazione hardware e l'elaborazione dei vertici hardware e software.The primary device type is the hal device, which supports hardware accelerated rasterization and both hardware and software vertex processing. Se il computer in cui è in esecuzione l'applicazione è dotato di una scheda video che supporta Direct3D, l'applicazione deve usarla per le operazioni Direct3D.If the computer on which your application is running is equipped with a display adapter that supports Direct3D, your application should use it for Direct3D operations. I dispositivi hal Direct3D implementano interamente o parzialmente i moduli di trasformazione, illuminazione e rasterizzazione nell'hardware.Direct3D hal devices implement all or part of the transformation, lighting, and rasterizing modules in hardware.

Le applicazioni non accedono direttamente alle schede grafiche.Applications do not access graphics adapters directly. Chiamano funzioni e metodi Direct3D.They call Direct3D functions and methods. Direct3D accede all'hardware tramite il dispositivo hal.Direct3D accesses the hardware through the hal. Se il computer in cui si esegue l'applicazione supporta l'hal, le prestazioni saranno ottimali con un dispositivo hal.If the computer that your application is running on supports the hal, it will gain the best performance by using a hal device.

Dispositivo di riferimentoReference Device

Direct3D supporta un tipo di dispositivo aggiuntivo chiamato dispositivo di riferimento o unità di rasterizzazione di riferimento.Direct3D supports an additional device type called a reference device or reference rasterizer. A differenza di un dispositivo software, l'unità di rasterizzazione di riferimento supporta tutte le funzionalità Direct3D.Unlike a software device, the reference rasterizer supports every Direct3D feature. Questo dispositivo è destinato a essere usato a scopo di debug ed è pertanto disponibile solo nei computer in cui è installato l'SDK di DirectX.This device is intended to be used for debugging purposes and is therefore only available on machines where the DirectX SDK has been installed. Poiché queste funzionalità sono implementate per precisione anziché velocità e vengono implementate nel software, i risultati non sono molto rapidi.Because these features are implemented for accuracy rather than speed and are implemented in software, the results are not very fast. L'unità di rasterizzazione si avvale di speciali istruzioni per la CPU quando possibile, ma non è destinata alle applicazioni in vendita.The reference rasterizer does make use of special CPU instructions whenever it can, but it is not intended for retail applications. Utilizza l'unità di rasterizzazione di riferimento a scopo di test o dimostrazione delle funzionalità.Use the reference rasterizer only for feature testing or demonstration purposes.

Dispositivi HAL e REFHAL vs. REF Devices

I dispositivi HAL (Hardware Abstraction Layer) e REF (unità di rasterizzazione di riferimento) sono i due tipi principali di dispositivo Direct3D. Il primo è basato sul supporto hardware ed è molto veloce, ma potrebbe non supportare tutti gli elementi; mentre il secondo non usa l'accelerazione hardware, pertanto è molto lento, ma garantisce il supporto dell'intero set di funzionalità Direct3D, in modo corretto.HAL (Hardware Abstraction Layer) devices and REF (REFerence rasterizer) devices are the two main types of Direct3D device; the first is based around the hardware support, and is very fast but might not support everything; while the second uses no hardware acceleration, so is very slow, but is guaranteed to support the entire set of Direct3D features, in the correct way. In generale ti basta usare dispositivi HAL, ma se usi alcune funzionalità avanzate che non sono supportate dalla scheda grafica può essere necessario utilizzare il dispositivo REF.In general you'll only ever need to use HAL devices, but if you're using some advanced feature that your graphics card does not support then you might need to fall back to REF.

Un altro caso in cui è necessario utilizzare il dispositivo REF è quando il dispositivo HAL dà risultati strani, ovvero hai la certezza che il tuo codice sia corretto ma il risultato non è quello previsto.The other time you might want to use REF is if the HAL device is producing strange results - that is, you're sure your code is correct, but the result is not what you're expecting. Il dispositivo REF garantisce il comportamento corretto, pertanto ti consigliamo di testare l'applicazione sul dispositivo REF e vedere se il comportamento anomalo continua.The REF device is guaranteed to behave correctly, so you may wish to test your application on the REF device and see if the strange behavior continues. In caso contrario, significa che (a) l'applicazione presume che la scheda grafica supporti una funzionalità che in realtà non supporta o (b) si tratta di un bug del driver.If it doesn't, it means that either (a) your application is assuming that the graphics card supports something that it doesn't, or (b) it's a driver bug. Se non funziona con il dispositivo REF, si tratta di un bug dell'applicazione.If it still doesn't work with the REF device, then it's an application bug.

Elaborazione dei vertici hardware e softwareHardware vs. Software Vertex Processing

L'elaborazione dei vertici hardware e software si applica realmente solo ai dispositivi HAL.Hardware versus Software vertex processing only really applies to HAL devices. Quando spingi i vertici nella pipeline, devono essere trasformati (per le matrici globale, vista e proiezione) e illuminati (dalle luci incorporate di D3D): questa fase di elaborazione è nota come T&L (trasformazione e illuminazione).When you push vertices through the pipeline, they need to be transformed (by the world, view, and projection matrices in turn) and lit (by D3D's built-in lights) - this processing stage is known as T&L (for Transformation & Lighting). L'elaborazione dei vertici hardware significa che questa operazione viene eseguita nell'hardware, se supportata dall'hardware. Ergo, l'elaborazione di vertici software viene eseguita nel software.Hardware vertex processing means this is done in hardware, if the hardware supports it; ergo, Software vertex processing is done in software. La pratica generale consiste nel provare innanzitutto a creare un dispositivo hardware T&L e in caso di errore provare un'elaborazione mista, quindi se il problema persiste provare con il software.The general practice is to try creating a Hardware T&L device first, and if that fails try Mixed, and if that fails try Software. Se il software ha esito negativo, rinunciare e uscire dall'applicazione con un errore.(If software fails, give up and exit with an error.)

Argomenti correlatiRelated topics

DispositiviDevices