Dispositivos Direct3D (Direct3D 9)
Um dispositivo Direct3D é o componente de renderização do Direct3D. Ele encapsula e armazena o estado de renderização. Além disso, um dispositivo Direct3D executa transformações e operações de iluminação e rasteriza uma imagem para uma superfície.
- XPDM vs. WDDM
- tipos de dispositivo (Direct3D 9)
- Criando um dispositivo (Direct3D 9)
- Modo Windowed vs Full-Screen (Direct3D 9)
- Selecionando um dispositivo (Direct3D 9)
- dispositivos perdidos (Direct3D 9)
- Determinando o suporte de hardware (Direct3D 9)
- Processamento de dados de vértice (Direct3D 9)
- Primitivos
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.
Atualmente, o Direct3D suporta 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
Você pode pensar nesses dispositivos como dois drivers separados. Software e dispositivos 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 aplicativos de envio e o dispositivo de referência para testes de recursos. Estes 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.
Os dispositivos acelerados por hardware proporcionam um desempenho muito melhor do que os dispositivos de software. O tipo de dispositivo hal está disponível em todos os adaptadores gráficos suportados pelo Direct3D. Na maioria dos casos, os aplicativos destinam-se a computadores que têm aceleração de hardware e dependem da emulação de software para acomodar computadores de última geração.
Com exceção do dispositivo de referência, os dispositivos de software nem sempre suportam os mesmos recursos que um dispositivo de hardware. Os aplicativos devem sempre consultar os recursos do dispositivo para determinar quais recursos são suportados.
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 trabalhar com o dispositivo hal funcionará com o software ou dispositivos de referência sem modificações. Observe que, embora o software fornecido ou o comportamento do dispositivo de referência seja idêntico ao do dispositivo hal, os recursos do dispositivo variam e um dispositivo de software específico pode implementar um conjunto muito menor de recursos.
Comportamentos
O Direct3D permite especificar o comportamento de um dispositivo, bem como o tipo de dispositivo. O método IDirect3D9::CreateDevice permite uma combinação de um ou mais sinalizadores de comportamento para controlar os comportamentos globais do dispositivo Direct3D. Esses comportamentos especificam o que é e o que não é mantido na parte de tempo de execução do Direct3D, e os tipos de dispositivo especificam qual driver usar. Embora algumas combinações de comportamentos de dispositivo não sejam válidas, é possível usar todos os comportamentos de dispositivo com todos os tipos de dispositivo. Por exemplo, é válido especificar D3DDEVTYPE_SW em um dispositivo criado com D3DCREATE_PUREDEVICE.
Tópicos relacionados