C e C + + Programming Resources

Bookmark / Share
Custom Search

Direct X e seus componentes

Postado em 04 de outubro de 2008

"Um dos principais objectivos do DirectX é fornecer uma forma padrão de acesso a diversos dispositivos de hardware proprietário"

DirectX é composto de interfaces de programação de aplicativo (APIs) que são agrupadas em duas classes:

  1. O DirectX camada de fundação
  2. O DirectX camada Media

Essas APIs permitem que os programas para acessar diretamente muitos dos seus dispositivos de hardware computer'.

O DirectX camada de fundação

Fundação Layer determina automaticamente os recursos de hardware do computador e, em seguida, define os Programas "parâmetros para corresponder. Isso permite que aplicativos multimídia para rodar em anya computador baseado no Windows e, ao mesmo tempo garante que as aplicações de multimídia tirem proveito do hardware de alto desempenho.

Fundação camada contém um único conjunto de APIs que oferecem um melhor acesso aos recursos avançados de hardware de alto desempenho, tais como 3-D de chips gráficos de aceleração e placas de som. Essas APIs controlam funções de baixo nível, incluindo 2-D aceleração de gráficos, suporte para dispositivos de entrada, como joysticks, teclados e mouses, controlo e de mixagem e saída de som. As funções de baixo nível são suportados pelos componentes que compõem o DirectX camada de Fundação:

Microsoft DirectDraw

A Microsoft DirectDraw API suporta extremamente rápido, acesso direto aos recursos de aceleração de hardware do adaptador de vídeo de um computador. Ele suporta os métodos padrão de exibição de gráficos em todos os adaptadores de vídeo e acesso mais rápido e directo ao utilizar drivers acelerados. DirectDraw fornece uma maneira independente de dispositivo para os programas, como jogos e bidimensional (2-D) pacotes gráficos e componentes do sistema Windows, como codecs de vídeo digital para ter acesso às características específicas de dispositivos de visualização sem necessidade de qualquer adicional informação do utilizador sobre as capacidades do dispositivo \'s.

Microsoft Direct3D modo imediato

A Microsoft Direct3D Immediate Mode API (Direct3D) fornece uma interface para as funções de processamento de 3-D construídos em placas de vídeo mais novas. Direct3D é uma de baixo nível 3-D API que fornece uma maneira independente de dispositivo para os aplicativos se comuniquem com o hardware acelerador de forma eficiente e poderosa.

Direct3D fornece aos desenvolvedores de aplicativos com muitas características avançadas, tais como:

  1. buffering profundidade comutável (usando z-buffers ou w-buffers)
  2. Flat e Gouraud shading
  3. luzes de vários tipos e luz
  4. Full apoio material e textura
  5. Robusto software de emulação de drivers
  6. Transformação e clipping
  7. independência Hardware
  8. Completa a aceleração de hardware no Windows 2000 (quando os drivers de dispositivo apropriados estão disponíveis)
  9. Built-in de apoio especializado para a conjuntos de instruções da CPU, incluindo a MMX Intel Pentium III e arquiteturas, e 3DNow! arquitetura

Microsoft DirectSound

A Microsoft DirectSound API fornece uma ligação entre os programas de áudio e um adaptador """'' s capacidades de mixagem de som e reprodução. Ele também permite a captura de ondas sonoras e reprodução. O DirectSound fornece aplicações multimídia com baixa latência mistura de aceleração de hardware, e acesso direto ao dispositivo de som. Ele oferece esse recurso, mantendo a compatibilidade com os drivers de dispositivo existentes.

Microsoft DirectMusic

A Microsoft DirectMusic API é a componente musical do DirectX. Ao contrário da API DirectSound, que captura e reproduz amostras de som digital, DirectMusic funciona com a mensagem de dados baseado em musical que é convertido para áudio digital, quer por sua placa de som ou pelo seu built-in software sintetizador. Bem como apoio na entrada Musical Instrument Digital Interface (MIDI), formato DirectMusic fornece aos desenvolvedores de aplicativos a capacidade de criar trilhas sonoras dinâmicas que respondem a entrada do usuário.

Microsoft DirectInput

A Microsoft DirectInput API fornece uma entrada avançada para jogos e processa a entrada de joysticks, bem como outros dispositivos relacionados, incluindo o mouse, teclado e controladores de jogo, tais como controladores de jogos de force feedback.

O DirectX Media camada trabalha com a camada de fundação DirectX para fornecer serviços de alto nível que a animação de apoio, a mídia de streaming (transmissão e visualização de áudio e vídeo, ele é baixado pela Internet), e interatividade. Como a camada de fundação de DirectX, DirectX Media camada é formada por vários componentes integrados que incluem:

Microsoft Direct3D Retained Mode

A Microsoft Direct3D Retained Mode API fornece suporte de alto nível para o avançado, em tempo real, tridimensional (3-D) gráficos. Direct3D Retained Mode fornece suporte embutido para gráficos técnicas como hierarquia e animação. Direct3D Retained Mode é construída em cima de Direct3D Immediate Mode.

Microsoft DirectAnimation

A Microsoft DirectAnimation API fornece integração e animação para diferentes tipos de mídia, como imagens bidimensionais, objetos tridimensionais, sons, filmes, texto e gráficos vetoriais.

Microsoft DirectPlay

A Microsoft DirectPlay API suporta ligações de jogo através de um modem, a Internet ou LAN. DirectPlay simplifica o acesso aos serviços de comunicação e fornece uma maneira para os jogos para se comunicar uns com os outros, independentemente do protocolo subjacente, ou o serviço online.

Microsoft DirectShow

A Microsoft DirectShow API execuções arquivos multimídia em arquivos local ou em servidores de Internet, multimídia e captura streams de dispositivos, como placas de captura de vídeo. DirectShow reproduz vídeo e conteúdo de áudio comprimido em vários formatos, incluindo MPEG, vídeo-áudio Interleaved (AVI), e WAV.

Microsoft DirectX Transform

O Microsoft DirectX Transform API permite que desenvolvedores de aplicações para criar, animar e editar imagens digitais. DirectX Transform trabalha com duas imagens bidimensionais (2-D) e tridimensionais (3-D) imagens, que podem ser usados para criação de programas stand-alone ou plug-ins dinâmicos para gráficos web.

Antes do lançamento do Windows 95, a maioria dos jogos foram lançados para a plataforma DOS, geralmente usando algo como dos4gw ou algum outro DOS de 32 bits extensor para obter acesso aos 32-bit em modo protegido. Windows 95, no entanto, parecia sinalizar o começo do fim do prompt do DOS. desenvolvedores de jogos começaram a se perguntar como eles estavam indo para escrever jogos optimamente que seria executado em Windows 95 - jogos normalmente precisa ser executado no modo tela cheia, e precisa chegar tão perto quanto possível do seu hardware. Windows 95 parecia estar "ficando no caminho" do presente. DOS lhes tinha permitido ao programa como "próximo do metal" quanto possível, isto é, ir direto ao hardware, sem passar por camadas de abstração e encapsulamento. Naqueles dias, a sobrecarga extra de uma API genérica teria feito jogos muito lento.

Então, a resposta da Microsoft para este problema foi um Software Development Kit (SDK) chamado DirectX. DirectX é horrível, desajeitado, mal concebido, mal documentado, inchado, feio, besta confusa (*) de uma API (Application Programming Interface) que levou um programador muitos para beber. Ele foi originalmente comprado de uma empresa londrina chamou RenderMorphics, e silenciosamente lançado mais ou menos como é o DirectX 2. DirectX 3 foi provavelmente a primeira "versão" séria "pela Microsoft, que já tinha começado a empurrá-lo ativamente como a programação de jogos API do futuro. Sendo a maior empresa de software do planeta, e sendo os desenvolvedores do sistema operacional que cerca de 90% dos usuários de desktop estava usando, eles conseguiram. Os fornecedores de hardware rapidamente percebeu que a seguir a liderança da Microsoft era a coisa prudente a fazer, e todos começaram a produzir drivers DirectX para seu hardware. Em muitos aspectos, isso era uma coisa boa para os desenvolvedores de jogos.

Muitas melhorias foram feitas para o DirectX original. Por exemplo, a documentação não sugar tanto como ele fez originalmente. Alguns dos trechos mal projetados da API do original ter sido acima de limpeza e melhorados. Algumas das seções realmente mal projetado da API original foram removidos.

Qual é o propósito de direcX aceitam

Um dos principais objectivos do DirectX é fornecer uma forma padrão de acesso a diversos dispositivos de hardware proprietário. Por exemplo, Direct3D oferece uma "interface" padrão de programação que pode ser usado para acessar os recursos de hardware de aceleração 3D de quase todas as placas 3D no mercado, que têm Direct3D drivers escritos para eles. Em teoria, este é suposto fazer o possível para uma aplicação de forma transparente correr como é suposto em uma ampla variedade de configurações de hardware diferentes. Na prática, isso geralmente não é tão simples.

Uma das razões é que não é simples, é que o hardware (como os aceleradores gráficos 3D), normalmente suportar apenas um subconjunto das funcionalidades disponíveis no DirectX, e você realmente não quer usar um recurso se ele não está disponível em algum tipo de hardware forma acelerada. Para descobrir quais recursos estão disponíveis para consulta você tem um dispositivo de uma lista de capacidades, e pode haver muitas these.The DirectX API é projetado principalmente para gravar jogos, mas pode ser usado em outros tipos de aplicações também. A API no momento tem cinco secções principais:

DirectX Components

Componente Descrição
DirectDraw Dois recursos gráficos tridimensionais, superfícies, buffer duplo, etc
Direct3D A relativamente extensa programação funcional gráficos 3D API.
DirectSound Som, som 3D
DirectPlay Simplifica o desenvolvimento de um jogo em rede
DirectInput Manipula a entrada de vários periféricos

Além disso, o DirectX 6 introduz algo chamado DirectMusic, que é suposto para tornar mais fácil para desenvolvedores de jogos para incluir a música em seus jogos para que o humor da música muda, dependendo do tipo de ação está acontecendo no jogo.

DirectX desempenho e aceleração de hardware

Embora o desempenho de Direct3D em software só não é muito pobre, que não corta completamente para jogos sérios. DirectX é projetado com a aceleração de hardware em mente. Ele tenta dar o acesso nível mais baixo possível para o hardware, enquanto ainda um interface genérico. Permitindo funções como 3D triângulo desenho a ser realizada na placa gráfica liberta o CPU (Central Processing Unit) para fazer outras coisas. aceleradores de hardware Direct3D típica também teria pelo menos 4 ou, preferencialmente, 16 ou mais megabytes de RAM onboard para armazenar mapas de textura (imagens bitmap composto de pequenos pontos chamados "pixels"), texturas, sprites, sobreposições e muito mais.

DirectDraw e Direct3D são construídos como uma camada relativamente fina acima do hardware, usando o que é chamado de DirectDraw "camada de abstração de hardware (HAL). Para a funcionalidade não fornecida por uma placa certa, uma implementação software equivalente seria assegurado através da camada de emulação de "hardware" (HEL).

DirectX e COM

O conjunto de módulos DirectX são construídas como COM (Component Object Model) objetos. COM é ainda outra interface feia quebrado da Microsoft - embora as versões mais recentes do COM não sugam tanto quanto as encarnações anteriores. Não me interpretem mal, eu não sou contra a existência de algo que faz o que faz COM - mas a execução deixa muito a desejar. Enfim, um objeto COM é um pouco como uma classe C + +, na medida em que engloba um conjunto de métodos e atributos em um único módulo, e na medida em que fornece uma espécie kludgy do modelo de herança, em que um objeto COM pode ser construído para suportar todos os os métodos de seu objeto pai, e depois adicionar um pouco mais.

Você não precisa saber muito sobre COM a usar o DirectX, por isso não se preocupe muito com isso. Você faz um pouco de material ao inicializar COM objetos e limpá-las para cima, e ao verificar os valores de retorno de chamadas de função, mas isso é mais ou menos isso.

Tags: , , , , , ,

Gosta do que vê?

Torne-se um dos regulares assinando! Você vai ser o primeiro a saber quando acrescentamos mais grandes lugares como este. Junte-se por qualquer Feeds RSS ou Email Updates hoje!

Não há comentários para este post. Você pode seguir qualquer resposta para esta entrada através do RSS 2.0 feed . Você pode saltar para o final e deixar uma resposta ou TrackBack a partir de seu próprio site.


Deixe uma resposta

Você deve estar logado para postar um comentário.