Tipos de dispositivosDevice types

Os tipos de dispositivos Direct3D incluem dispositivos de camada de abstração de hardware (hal) e o rasterizador de referência.Direct3D device types include Hardware Abstraction Layer (hal) devices and the reference rasterizer.

Dispositivo HALHAL Device

O tipo de dispositivo principal é o dispositivo hal, que dá suporte à rasterização acelerada por hardware e ao processamento de vértice de hardware e software.The primary device type is the hal device, which supports hardware accelerated rasterization and both hardware and software vertex processing. Se o computador no qual seu aplicativo está sendo executado é equipado com um adaptador de vídeo compatível com o Direct3D, seu aplicativo deve usá-lo para as operações do 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. Os dispositivos hal com Direct3D implementam todos ou parte dos módulos de rasterização, iluminação e transformação no hardware.Direct3D hal devices implement all or part of the transformation, lighting, and rasterizing modules in hardware.

Os aplicativos não acessam os adaptadores gráficos diretamente.Applications do not access graphics adapters directly. Eles chamam métodos e funções do Direct3D.They call Direct3D functions and methods. O Direct3D acessa o hardware por meio do hal.Direct3D accesses the hardware through the hal. Se o computador que seu aplicativo está sendo executado oferece suporte a hal, ele obterá o melhor desempenho usando um 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 de referênciaReference Device

O Direct3D dá suporte a um tipo de dispositivo adicional chamado um rasterizador de referência ou dispositivo de referência.Direct3D supports an additional device type called a reference device or reference rasterizer. Ao contrário de um dispositivo de software, o rasterizador de referência dá suporte a todos os recursos do Direct3D.Unlike a software device, the reference rasterizer supports every Direct3D feature. Este dispositivo se destina a ser usado para fins de depuração e, portanto, só está disponível em computadores em que o SDK do DirectX tiver sido instalado.This device is intended to be used for debugging purposes and is therefore only available on machines where the DirectX SDK has been installed. Como esses recursos são implementados para precisão em vez de velocidade e são implementados no software, os resultados não são muito rápidos.Because these features are implemented for accuracy rather than speed and are implemented in software, the results are not very fast. O rasterizador de referência faz uso de instruções especiais da CPU sempre que possível, mas ele não foi desenvolvido para aplicativos de varejo.The reference rasterizer does make use of special CPU instructions whenever it can, but it is not intended for retail applications. Use o rasterizador de referência apenas para fins de teste ou demonstração do recurso.Use the reference rasterizer only for feature testing or demonstration purposes.

Dispositivos HAL versus REFHAL vs. REF Devices

Os dispositivos HAL (camada de abstração de Hardware) e REF (rasterizador de referência) são os dois tipos principais de dispositivo Direct3D; o primeiro baseia-se no suporte de hardware e é muito rápido, mas talvez não dê suporte a tudo; enquanto o segundo usa a aceleração de hardware, portanto é muito lento, mas garante suporte a todo o conjunto de recursos do Direct3D, da forma correta.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. Em geral, você só precisará usar dispositivos HAL, mas se você estiver usando algum recurso avançado que não dá suporte à placa gráfica, então talvez seja necessário voltar ao 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.

Uma outra ocasião onde convém usar o REF é se o dispositivo HAL estiver produzindo resultados estranhos, ou seja, você tem certeza que seu código está correto, mas o resultado não é o que você espera.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. É garantido que o dispositivo REF irá se comportar corretamente, portanto, convém testar seu aplicativo no dispositivo REF e ver se o comportamento estranho 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. Se isso não acontecer, isso significa que o seu aplicativo está pressupondo que a placa gráfica oferece suporte há algo não suportado por ela, ou (b) é um bug de 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 ainda não funcionar com o dispositivo REF, trata-se de um bug de aplicativo.If it still doesn't work with the REF device, then it's an application bug.

Hardware versus processamento de vértice de softwareHardware vs. Software Vertex Processing

O processamento de vértice de hardware versus software se aplica somente aos dispositivos HAL.Hardware versus Software vertex processing only really applies to HAL devices. Quando você transmite os vértices por push através do pipeline, eles precisam ser transformadas (pelas matrizes de mundo, modo de exibição e projeção) e iluminados (pelas internas luzes do D3D) - esse estágio de processamento é conhecido como T&L (para transformação e iluminação).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). O processamento de vértices de hardware significa que isso é feito no hardware, se o hardware oferecer suporte a ele; logo, o processamento de vértices de software é feito no software.Hardware vertex processing means this is done in hardware, if the hardware supports it; ergo, Software vertex processing is done in software. A prática geral é a criação de um dispositivo de Hardware T&L primeiro, se isso falhar, tente Misto e se falhar novamente tente 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 o software falhar, não continue insistindo e encerre com um erro).(If software fails, give up and exit with an error.)

Tópicos relacionadosRelated topics

DispositivosDevices