Dispositivos

Um dispositivo Direct3D é o componente de renderização do Direct3D. Um dispositivo encapsula e armazena o estado de renderização, executa transformações e operações de iluminação e rasteriza uma imagem para uma superfície.

Arquitetonicamente, os dispositivos Direct3D contêm um módulo de transformação, um módulo de iluminação e um módulo de rasterização, como mostra o diagrama a seguir.

Diagrama da arquitetura do dispositivo Direct3D

O Direct3D dá suporte a dois tipos principais de dispositivos Direct3D:

  • Um dispositivo hal com rasterização e sombreamento acelerados por hardware com processamento de vértices de hardware e software
  • Um dispositivo de referência

Esses dispositivos são dois drivers separados. Os dispositivos de software e de referência são representados por drivers de software e o dispositivo hal é representado por um driver de hardware. A maneira mais comum de aproveitar esses dispositivos é usar o dispositivo hal para enviar aplicativos e o dispositivo de referência para teste de recursos. Eles são fornecidos por terceiros para emular dispositivos específicos - por exemplo, hardware de desenvolvimento que ainda não foi lançado.

O dispositivo Direct3D que um aplicativo cria deve corresponder aos recursos do hardware no qual o aplicativo está sendo executado. O Direct3D fornece recursos de renderização, acessando o hardware 3D instalado no computador ou emulando os recursos do hardware 3D no software. Portanto, o Direct3D fornece dispositivos para acesso de hardware e emulação de software.

Dispositivos acelerados por hardware oferecem desempenho muito melhor do que dispositivos de software. O tipo de dispositivo hal está disponível em todos os adaptadores gráficos com suporte do Direct3D. Na maioria dos casos, os aplicativos têm como alvo computadores que têm aceleração de hardware e dependem de emulação de software para acomodar computadores de baixo custo.

Com exceção do dispositivo de referência, os dispositivos de software nem sempre oferecem suporte aos mesmos recursos que um dispositivo de hardware. Os aplicativos sempre devem consultar os recursos do dispositivo para determinar quais recursos têm suporte.

Como o comportamento do software e dos dispositivos de referência fornecidos com o Direct3D 9 é idêntico ao do dispositivo hal, o código do aplicativo criado para funcionar com o dispositivo hal funcionará com o software ou os dispositivos de referência sem modificações. O software fornecido ou o comportamento do dispositivo de referência é idêntico ao do dispositivo hal, mas os recursos do dispositivo variam e um dispositivo de software específico pode implementar um conjunto muito menor de recursos.

Nesta seção

Tópico Descrição

Tipos de dispositivos

Os tipos de dispositivos Direct3D incluem dispositivos hal (Camada de Abstração de Hardware) e o rasterizador de referência.

Modo de janela vs. tela cheia

Os aplicativos Direct3D podem ser executados em um destes modos: janela ou tela inteira. No modo de janela, o aplicativo compartilha o espaço disponível na tela da área de trabalho com todos os aplicativos em execução. No modo de tela inteira, a janela em que o aplicativo é executado abrange a área de trabalho inteira, ocultando todos os aplicativos em execução (incluindo o ambiente de desenvolvimento).

Dispositivos perdidos

Um dispositivo Direct3D pode estar em um estado operacional ou perdido. O estado operacional é o estado normal do dispositivo no qual o dispositivo é executado e apresenta toda a renderização conforme o esperado. O dispositivo faz uma transição para o estado perdido quando um evento, como a perda de foco do teclado em um aplicativo de tela inteira, faz com que a renderização se torne impossível.

Cadeias de troca

Uma cadeia de troca é uma coleção de buffers usados para exibir quadros para o usuário. Cada vez que um aplicativo apresenta um novo quadro para exibição, o primeiro buffer na cadeia de troca substitui o buffer exibido. Esse processo é chamado de troca ou inversão.

Introdução às regras de rasterização

Muitas vezes, os pontos especificados para vértices não correspondem precisamente aos pixels na tela. Quando isso acontece, o Direct3D aplica regras de rasterização de triângulo para decidir quais pixels se aplicam a um determinado triângulo.

 

Guia de aprendizagem de gráficos do Direct3D