DirectX

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Coleção de APIs relacionadas com multimídia em plataformas Microsoft

Microsoft DirectX é uma coleção de interfaces de programação de aplicativos (APIs) para lidar com tarefas relacionadas a multimídia, especialmente programação de jogos e vídeo, em plataformas Microsoft. Originalmente, todos os nomes dessas APIs começavam com "Direct", como Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound e assim por diante. O nome DirectX foi criado como um termo abreviado para todas essas APIs (o X representa os nomes específicos das APIs) e logo se tornou o nome da coleção. Mais tarde, quando a Microsoft começou a desenvolver um console de jogos, o X foi usado como base do nome Xbox para indicar que o console era baseado na tecnologia DirectX. A inicial X foi levada adiante na nomenclatura de APIs projetadas para o Xbox, como XInput e Cross-platform Audio Creation Tool (XACT), enquanto o padrão DirectX foi continuado para APIs do Windows, como Direct2D e DirectWrite.

O Direct3D (a API de gráficos 3D dentro do DirectX) é amplamente usado no desenvolvimento de videogames para o Microsoft Windows e a linha de consoles Xbox. O Direct3D também é usado por outros aplicativos de software para visualização e tarefas gráficas, como engenharia CAD/CAM. Como o Direct3D é o componente do DirectX mais amplamente divulgado, é comum ver os nomes "DirectX" e "Direct3D" usados de forma intercambiável.

O kit de desenvolvimento de software DirectX (SDK) consiste em bibliotecas de tempo de execução em formato binário redistribuível, junto com documentação e cabeçalhos para uso na codificação. Originalmente, os runtimes eram instalados apenas por jogos ou explicitamente pelo usuário. O Windows 95 não foi iniciado com o DirectX, mas o DirectX foi incluído no Windows 95 OEM Service Release 2. O Windows 98 e o Windows NT 4.0 foram fornecidos com o DirectX, assim como todas as versões do Windows lançadas desde então. O SDK está disponível para download gratuito. Embora os tempos de execução sejam software proprietário de código-fonte fechado, o código-fonte é fornecido para a maioria dos exemplos de SDK. A partir do lançamento do Windows 8 Developer Preview, o DirectX SDK foi integrado ao Windows SDK.

Histórico de desenvolvimento

No final de 1994, a Microsoft estava pronta para lançar o Windows 95, seu próximo sistema operacional. Um fator importante no valor que os consumidores atribuiriam a ele eram os programas que poderiam ser executados nele. O funcionário da Microsoft, Alex St. John, estava em discussões com vários desenvolvedores de jogos, perguntando qual seria a probabilidade de trazer seus jogos do MS-DOS para o Windows 95 e descobriu que as respostas eram negativas; os programadores descobriram que o ambiente Windows não fornecia os recursos necessários que estavam disponíveis no MS-DOS usando rotinas do BIOS ou acesso direto ao hardware. Também havia fortes temores de compatibilidade; um caso notável disso foi o Disney's Animated Storybook: The Lion King, que foi baseado na interface de programação WinG. Devido a vários drivers gráficos incompatíveis de novos computadores Compaq que não foram testados com a interface WinG que acompanha o jogo, ele travou com tanta frequência em muitos sistemas de desktop que os pais inundaram as linhas de ajuda da Disney.

St. John reconheceu que as resistências ao desenvolvimento de jogos no Windows seriam uma limitação e recrutou dois engenheiros adicionais, Craig Eisler e Eric Engstrom, para desenvolver uma solução melhor para fazer com que mais programadores desenvolvessem jogos para Windows. O projeto recebeu o codinome Projeto Manhattan, como o projeto de mesmo nome da Segunda Guerra Mundial, e a ideia era substituir os consoles de videogame desenvolvidos no Japão por computadores pessoais executando o sistema operacional da Microsoft. Inicialmente, ele havia usado o símbolo de radiação como logotipo, mas a Microsoft pediu à equipe que mudasse o logotipo. A gerência não concordou com o projeto porque já estava descartando o Windows como plataforma de jogos, mas os três se comprometeram com o desenvolvimento deste projeto. Sua natureza rebelde levou Brad Silverberg, vice-presidente sênior de produtos de escritório da Microsoft, a nomear o trio de "Beastie Boys".

A maior parte do trabalho dos três foi realizada entre outros projetos atribuídos, começando perto do final de 1994. Em quatro meses e com informações de vários fabricantes de hardware, a equipe desenvolveu o primeiro conjunto de interfaces de programação de aplicativos (APIs) que eles apresentado na Game Developers Conference de 1995. O SDK incluía bibliotecas implementando DirectDraw para gráficos bitmap, DirectSound para áudio e DirectPlay para comunicação entre jogadores em uma rede. Além disso, uma API estendida de joystick já presente no Windows 95 foi documentada pela primeira vez como DirectInput, enquanto uma descrição de como implementar o início imediato do procedimento de instalação de um título de software após a inserção de seu CD-ROM, um recurso chamado AutoPlay, também fazia parte do SDK. O "Direto" parte da biblioteca recebeu esse nome porque essas rotinas ignoravam as rotinas centrais existentes do Windows 95 e acessavam o hardware do computador apenas por meio de uma camada de abstração de hardware (HAL). Embora a equipe o tenha chamado de "Game SDK" (kit de desenvolvimento de software), o nome "DirectX" veio de um jornalista que zombou do esquema de nomenclatura das várias bibliotecas. A equipe optou por continuar a usar esse esquema de nomenclatura e chamar o projeto de DirectX.

A primeira versão do DirectX foi lançada em setembro de 1995 como o Windows Games SDK. Seu componente DirectDraw foi o substituto do Win32 para as APIs DCI e WinG para Windows 3.1. O DirectX permitiu que todas as versões do Microsoft Windows, começando com o Windows 95, incorporassem multimídia de alto desempenho. Eisler escreveu sobre o frenesi para criar DirectX 1 a 5 em seu blog.

Para atrair mais desenvolvedores para o DirectX, a Microsoft abordou John Carmack, da id Software, e se ofereceu para portar Doom e Doom 2 do MS-DOS para o DirectX, gratuitamente, com a id retendo todos os direitos de publicação do jogo. Carmack concordou e Gabe Newell, da Microsoft, liderou o projeto de portabilidade. O primeiro jogo foi lançado como Doom 95 em agosto de 1996, o primeiro jogo DirectX publicado. A Microsoft promoveu fortemente o jogo com Bill Gates aparecendo em anúncios do título.

O DirectX 2.0 tornou-se um componente do próprio Windows com os lançamentos do Windows 95 OSR2 e do Windows NT 4.0 em meados de 1996. Como o próprio Windows 95 ainda era novo e poucos jogos foram lançados para ele, a Microsoft se envolveu em uma forte promoção do DirectX para desenvolvedores que geralmente desconfiavam da capacidade da Microsoft de construir uma plataforma de jogos no Windows. Alex St. John, o evangelista do DirectX, organizou um evento elaborado na Computer Game Developers Conference de 1996, que o desenvolvedor de jogos Jay Barnson descreveu como um tema romano, incluindo leões reais, togas e algo parecido com um carnaval interno. Foi nesse evento que a Microsoft apresentou o Direct3D pela primeira vez e demonstrou o MechWarrior 2 multijogador sendo jogado pela Internet.

A equipe do DirectX enfrentou a desafiadora tarefa de testar cada versão do DirectX em uma variedade de hardware e software de computador. Uma variedade de diferentes placas gráficas, placas de áudio, placas-mãe, CPUs, dispositivos de entrada, jogos e outros aplicativos multimídia foram testados com cada versão beta e final. A equipe do DirectX também construiu e distribuiu testes que permitiram à indústria de hardware confirmar que novos projetos de hardware e lançamentos de drivers seriam compatíveis com o DirectX.

Antes do DirectX, a Microsoft adicionava o OpenGL à plataforma Windows NT. O OpenGL foi projetado como uma plataforma cruzada, interface de software independente do sistema de janelas para hardware gráfico pela Silicon Graphics, Inc. para trazer a programação de gráficos 3D para o mainstream da programação de aplicativos. Além disso, também poderia ser usado para gráficos e imagens 2D e era controlado pelo Architectural Review Board (ARB), que incluía a Microsoft. O Direct3D pretendia ser uma alternativa controlada pela Microsoft ao OpenGL, focada inicialmente no uso de jogos. À medida que os jogos 3D cresciam, os desenvolvedores de jogos descobriam que o OpenGL poderia ser usado efetivamente para o desenvolvimento de jogos. Nesse ponto, uma "batalha" começou entre os apoiadores da plataforma cruzada OpenGL e do Direct3D somente para Windows. A propósito, o OpenGL era suportado na Microsoft pela equipe do DirectX. Se um desenvolvedor optasse por usar a API de gráficos 3D OpenGL em jogos de computador, as outras APIs do DirectX além do Direct3D eram frequentemente combinadas com o OpenGL porque o OpenGL não inclui todas as funcionalidades do DirectX (como som ou suporte a joystick).

Em uma versão específica do console, o DirectX foi usado como base para a API do console Xbox, Xbox 360 e Xbox One da Microsoft. A API foi desenvolvida em conjunto entre a Microsoft e a Nvidia, que desenvolveu o hardware gráfico personalizado usado pelo Xbox original. A API do Xbox era semelhante ao DirectX versão 8.1, mas não é atualizável como outras tecnologias de console. O Xbox tinha o codinome DirectXbox, mas foi abreviado para Xbox por causa de seu nome comercial.

Em 2002, a Microsoft lançou o DirectX 9 com suporte para o uso de programas de shader muito mais longos do que antes com pixel e vertex shader versão 2.0. A Microsoft continuou a atualizar o pacote DirectX desde então, introduzindo o Shader Model 3.0 no DirectX 9.0c, lançado em agosto de 2004.

A partir de abril de 2005, o DirectShow foi removido do DirectX e movido para o Microsoft Platform SDK.

Foi confirmado que o DirectX está presente no Windows Phone 8 da Microsoft.

Raytracing em tempo real foi anunciado como DXR em 2018. O suporte para compilar HLSL para SPIR-V também foi adicionado no DirectX Shader Compiler no mesmo ano.

Logotipos

O logotipo original lembrava um símbolo de aviso de radiação deformado. De forma controversa, o nome original do projeto DirectX era "Manhattan Project", uma referência à iniciativa de armas nucleares dos EUA. Alex St. John, chefe de evangelismo do Microsoft DirectX na época, afirma que a conotação do resultado final do Projeto Manhattan (o bombardeio nuclear do Japão) é intencional, e que o DirectX e seu projeto irmão, o Xbox (que compartilha uma logotipo semelhante), pretendiam deslocar os fabricantes de videogames japoneses de seu domínio da indústria de videogames. No entanto, a Microsoft nega publicamente esta conta, alegando que o logotipo é apenas um design artístico.

Componentes

O DirectX é composto por várias APIs:

  • Direct3D (D3D): API de renderização 3D em tempo real
  • DXGI: Enumera adaptadores e monitora e gerencia cadeias de swap para Direct3D 10 e mais tarde.
  • Direct2D: API gráfica 2D
  • DirectWrite: API de renderização de texto
  • DirectCompute: API para computação geral em unidades de processamento de gráficos
  • Diagnóstico de DirectX (DxDiag): Uma ferramenta para diagnosticar e gerar relatórios sobre componentes relacionados ao DirectX, como áudio, vídeo e drivers de entrada
  • XACT3: API de áudio de alto nível
  • XAudio2: API de áudio de baixo nível
  • DirectX Raytracing (DXR): API de rastreamento de raios em tempo real
  • DirectStorage: API I/O do arquivo orientado para GPU
  • DirectML: Aprendizagem automática acelerada por GPU e API de inteligência artificial

A Microsoft desativou os seguintes componentes:

  • DirectX Media: Consiste em:
    • DirectAnimation para animação web 2D/3D, DirectShow para reprodução multimídia e mídia de streaming
    • Mídia DirectX Objetos: Suporte para streaming de objetos como codificadores, decodificadores e efeitos (Depregado em favor de Transforms Media Foundation; MFTs)
    • Transformação DirectX para interatividade na web e Modo Retido Direct3D para gráficos 3D de nível superior
    • Direto X plugins para processamento de sinal de áudio
    • Aceleração de Vídeo DirectX para reprodução de vídeo acelerada (Deprecated em favor da Media Foundation)
  • DirectDraw: 2D graphic API (Deprecated em favor de Direct2D)
  • DirectInput: API de entrada para interfacing com teclados, camundongos, joysticks e controladores de jogos (Depregado após a versão 8 em favor de XInput para controladores Xbox 360 ou padrão WM_INPUT processamento de mensagem de janela para entrada de teclado e mouse)
  • DirectPlay: API de rede para comunicação sobre uma área local ou rede de área larga (Deprecated after version 8 em favor dos jogos para Windows Live e Xbox Live)
  • DirectSound: API de áudio (Depregado desde DirectX 8 em favor de XAudio2 e XACT3)
  • DirectSound3D (DS3D): 3D soa API (Deprecated desde DirectX 8 em favor de XAudio2 e XACT3)
  • DirectMusic: Componentes para tocar trilhas sonoras autorizadas no DirectMusic Producer (Deprecated since DirectX 8 em favor de XAudio2 e XACT3)

A funcionalidade do DirectX é fornecida na forma de objetos e interfaces no estilo COM. Além disso, embora não sejam componentes do DirectX propriamente ditos, os objetos gerenciados foram construídos sobre algumas partes do DirectX, como o Direct3D gerenciado e a biblioteca de gráficos XNA sobre o Direct3D 9.

A Microsoft distribui uma ferramenta de depuração para DirectX chamada "PIX".

Versões

DirectX 9

O DirectX 9 foi lançado em 2002 para Windows 98, Me e XP e atualmente é compatível com todas as versões subsequentes. A Microsoft continua a fazer alterações no DirectX 9.0c, fazendo com que o suporte seja descartado para alguns dos sistemas operacionais mencionados acima. A partir de janeiro de 2007, Windows 2000 ou XP é necessário. Isso também introduziu Shader Model 2.0 contendo Pixel Shader 2.0 e Vertex Shader 2.0. Windows XP SP2 e mais recentes incluem DirectX 9.0c, mas podem exigir uma instalação redistribuível de tempo de execução DirectX mais recente para aplicativos DirectX 9.0c compilados com o DirectX 9.0 SDK de fevereiro de 2005 ou mais recente.

DirectX 10

Microsoft Direct X 10 marcador de logotipo

Uma grande atualização da API do DirectX, o DirectX 10 acompanha e está disponível apenas com o Windows Vista (lançado no final de 2006) e posterior. As versões anteriores do Windows, como o Windows XP, não são capazes de executar aplicativos exclusivos do DirectX 10. Em vez disso, os programas executados em um sistema Windows XP com hardware DirectX 10 simplesmente recorrem ao caminho de código DirectX 9.0c, o mais recente disponível para computadores Windows XP.

As mudanças no DirectX 10 foram extensas. Muitas partes anteriores da API do DirectX foram descontinuadas no DirectX SDK mais recente e são preservadas apenas para compatibilidade: DirectInput foi descontinuado em favor de XInput, DirectSound foi descontinuado em favor do sistema Cross-platform Audio Creation Tool (XACT) e também perdeu o suporte para áudio acelerado por hardware, já que a pilha de áudio do Vista renderiza o som em software na CPU. O DirectPlay DPLAY.DLL também foi removido e substituído por dplayx.dll; os jogos que dependem dessa DLL devem duplicá-la e renomeá-la para dplay.dll.

Para obter compatibilidade com versões anteriores, o DirectX no Windows Vista contém várias versões do Direct3D:

  • Direct3D 9: emula o comportamento Direct3D 9 como foi no Windows XP. Detalhes e vantagens do Windows Display Driver Model da Vista estão ocultos do aplicativo se os drivers WDDM estão instalados. Esta é a única API disponível se houver apenas drivers gráficos XP (XDDM) instalados, após uma atualização para Vista, por exemplo.
  • Direct3D 9Ex (conhecida internamente durante o desenvolvimento do Windows Vista como 9.0L ou 9.L): permite acesso total às novas capacidades de WDDM (se os drivers WDDM estão instalados) mantendo a compatibilidade para aplicações Direct3D existentes. A interface de usuário do Windows Aero depende do D3D 9Ex.
  • Direct3D 10: Projetado em torno do novo modelo de driver no Windows Vista e apresentando uma série de melhorias para renderizar capacidades e flexibilidade, incluindo Shader Model 4.

O Direct3D 10.1 é uma atualização incremental do Direct3D 10.0 que acompanha e requer o Windows Vista Service Pack 1, lançado em fevereiro de 2008. Esta versão define principalmente mais alguns padrões de qualidade de imagem para fornecedores de gráficos, ao mesmo tempo em que oferece aos desenvolvedores mais controle sobre a qualidade da imagem. Ele também adiciona suporte para matrizes de mapa de cubo, modos de mesclagem separados por MRT, exportação de máscara de cobertura de um sombreador de pixel, capacidade de executar sombreador de pixel por amostra, acesso a buffers de profundidade multiamostrados e requer que a placa de vídeo suporte Shader Model 4.1 ou operações de ponto flutuante superiores e de 32 bits. O Direct3D 10.1 ainda oferece suporte total ao hardware do Direct3D 10, mas para utilizar todos os novos recursos, é necessário um hardware atualizado.

DirectX 11

Microsoft DirectX 11 logo wordmark

A Microsoft revelou o DirectX 11 no evento Gamefest 08 em Seattle. A atualização final da plataforma foi lançada para o Windows Vista em 27 de outubro de 2009, uma semana após o lançamento inicial do Windows 7, lançado com o Direct3D 11 como padrão básico.

Principais recursos programados, incluindo suporte a GPGPU (DirectCompute) e Direct3D 11 com suporte a tessellation e suporte aprimorado a multi-threading para ajudar os desenvolvedores de videogames a desenvolver jogos que utilizam melhor os processadores multi-core. Partes da nova API, como a manipulação de recursos multiencadeados, podem ser suportadas no hardware de classe Direct3D 9/10/10.1. A tesselação de hardware e o Shader Model 5.0 requerem hardware compatível com Direct3D 11. Desde então, a Microsoft lançou o Direct3D 11 Technical Preview. O Direct3D 11 é um superconjunto estrito do Direct3D 10.1 — todos os recursos de hardware e API da versão 10.1 são mantidos e novos recursos são adicionados somente quando necessário para expor novas funcionalidades. Isso ajuda a manter a compatibilidade com versões anteriores do DirectX.

Quatro atualizações para DirectX 11 foram lançadas:

  • DirectX 11.1 está incluído no Windows 8. Suporta WDDM 1.2 para maior desempenho, apresenta melhor integração de Direct2D (agora na versão 1.1), Direct3D e DirectCompute, e inclui DirectXMath, XAudio2 e bibliotecas XInput do framework XNA. Também possui suporte 3D estereoscópico para jogos e vídeo. O DirectX 11.1 também foi parcialmente backportado para o Windows 7, através da atualização da plataforma Windows 7.
  • O DirectX 11.2 está incluído no Windows 8.1 (incluindo a versão RT) e no Windows Server 2012 R2. Ele acrescentou algumas novas características para Direct2D como realizações de geometria. Ele também adicionou a composição da cadeia de troca, o que permite que alguns elementos da cena sejam renderizados em resoluções mais baixas e, em seguida, compostas por sobreposição de hardware com outras partes renderizadas em resolução mais alta.
  • DirectX 11.X é um superconjunto do DirectX 11.2 rodando no Xbox One. Ele realmente inclui alguns recursos, tais como sorteios, que foram anunciados mais tarde como parte do DirectX 12.
  • DirectX 11.3 foi anunciado junto com DirectX 12 no GDC e lançado em 2015. É destinado a complementar o DirectX 12 como uma alternativa de nível superior. Está incluído no Windows 10.

DirectX 12

O DirectX 12 foi anunciado pela Microsoft na GDC em 20 de março de 2014 e foi lançado oficialmente junto com o Windows 10 em 29 de julho de 2015.

O principal destaque da nova versão do DirectX foi a introdução de APIs de programação de baixo nível avançadas para Direct3D 12, que podem reduzir a sobrecarga do driver. Os desenvolvedores agora podem implementar suas próprias listas de comandos e buffers na GPU, permitindo uma utilização de recursos mais eficiente por meio de computação paralela. O desenvolvedor líder Max McMullen afirmou que o principal objetivo do Direct3D 12 é alcançar "eficiência no nível do console no telefone, tablet e PC". O lançamento do Direct3D 12 vem junto com outras iniciativas para APIs gráficas de baixa sobrecarga, incluindo Mantle da AMD para placas de vídeo AMD, Metal da Apple para iOS e macOS e Vulkan de plataforma cruzada do Khronos Group.

O suporte a multiadaptadores será incluído no DirectX 12, permitindo que os desenvolvedores utilizem várias GPUs em um sistema simultaneamente; O suporte multi-GPU dependia anteriormente de implementações de fornecedores, como AMD CrossFireX ou NVIDIA SLI.

  • Multiadaptação Implícita suporte trabalhará de forma semelhante às versões anteriores do Direct X onde os quadros são renderizados alternadamente em GPUs ligadas de potência semelhante.
  • Multiadapter de Explícita fornecerá dois padrões de API distintos para os desenvolvedores. GPUs ligadas permitir que direto X para ver placas gráficas em SLI ou CrossFireX como uma única GPU e usar os recursos combinados; GPUs não ligadas permitirá que GPUs de diferentes fornecedores sejam utilizados pela DirectX, como complementar a GPU dedicada com a GPU integrada na CPU, ou combinar placas AMD e NVIDIA. No entanto, configurações multi-GPU mistas elaboradas requer suporte significativamente mais atento ao desenvolvedor.

O DirectX 12 é suportado em todas as GPUs Nvidia Fermi e posteriores, nos chips baseados em GCN da AMD e no Haswell da Intel e processadores posteriores. unidades gráficas.

Na SIGGRAPH 2014, a Intel lançou uma demonstração mostrando um campo de asteróides gerado por computador, no qual o DirectX 12 foi considerado 50 a 70% mais eficiente que o DirectX 11 na velocidade de renderização e no consumo de energia da CPU.

Ashes of the Singularity foi o primeiro jogo disponível publicamente a utilizar DirectX 12. Testes da Ars Technica em agosto de 2015 revelaram ligeiras regressões de desempenho no modo DirectX 12 em relação ao modo DirectX 11 para a Nvidia GeForce 980 Ti, enquanto a AMD Radeon R9 290x alcançou melhorias de desempenho consistentes de até 70% no DirectX 12 e, em alguns cenários, a AMD superou a Nvidia mais poderosa no DirectX 12. As discrepâncias de desempenho podem ser devidas à Nvidia ruim otimizações de driver para DirectX 12, ou mesmo limitações de hardware da placa que foi otimizada para execução serial DirectX 11; no entanto, a causa exata permanece incerta.

As melhorias de desempenho do DirectX 12 no Xbox não são tão substanciais quanto no PC.

Em março de 2018, o DirectX Raytracing (DXR) foi anunciado, capaz de traçar raios em tempo real em hardware compatível, e a API DXR foi adicionada na atualização do Windows 10 de outubro de 2018.

Em 2019, a Microsoft anunciou a chegada do DirectX 12 ao Windows 7, mas apenas como um plug-in para determinados títulos de jogos.

DirectX 12 Ultimate

A Microsoft revelou o DirectX 12 Ultimate em março de 2020. O DirectX 12 Ultimate será unificado em uma biblioteca comum em computadores Windows 10 e no Xbox Series X e outros consoles Xbox de nona geração. Entre os novos recursos do Ultimate estão DirectX Raytracing 1.1, Variable Rate Shading, que dá aos programadores controle sobre o nível de detalhe do sombreamento, dependendo das opções de design, Mesh Shaders e Sampler Feedback.

Histórico da versão

Linha do tempo de lançamento
Principais lançamentos
1995DirectX 1
1996DirectX 2
DirectX 3
1997DirectX 5
1998DirectX 6
1999DirectX 7
2000DirectX 8
2001
2002DirectX 9
2003
2004
2005
2006DirectX 10
2007
2008
2009DirectX 11
2010
2011
2012
2013
2014
2015DirectX 12
2016
2017
2018
2019
2020DirectX 12 Ultimate
Direto Versões X
Versão Data de lançamento Notas
Major. Menor Número
1 1.0.4.02.009530 de Setembro de 1995Inicialmente lançado como Windows Game SDK, substituindo WinG para Windows 95 em diante
2 2.01996Foi enviado apenas com algumas aplicações de terceiros
2.0a4.03.00.10965 de Junho de 1996Exclusivo do Windows 95 OSR2 e do Windows NT 4.0
3 3.0.4.04.00.006815 de Setembro de 1996
4.04.00.00691996Pacote posterior de DirectX 3.0 incluído Direct3D 4.04.00.0069
3.0a4.04.00.0070Dezembro de 1996Windows NT 4.0 SP3 (e acima)
Terceira versão 3.0 e última versão suportada para Windows NT 4.0
3.0b4.04.00.0070Dezembro de 1996Esta foi uma atualização muito menor para 3.0a que corrigiu um problema cosmético com a versão japonesa do Windows 95
4 4.0Nunca lançadoO DirectX 4 nunca foi lançado. Raymond Chen da Microsoft explicou em seu livro, A velha nova coisa, que depois que o DirectX 3 foi lançado, a Microsoft começou a desenvolver versões 4 e 5 ao mesmo tempo. A versão 4 deveria ser uma versão de curto prazo com características pequenas, enquanto a versão 5 seria uma versão mais substancial. A falta de interesse dos desenvolvedores de jogos nas características declaradas para DirectX 4 resultou em que ele foi derramado, e a grande quantidade de documentos que já distinguiam as duas novas versões resultou na Microsoft escolhendo não reutilizar a versão 4 para descrever recursos destinados à versão 5.
5 5.4.05.00.0155 (RC55)4 de Agosto de 1997Disponível como beta para Windows 2000 que instalaria no Windows NT 4.0
5.24.05.01.1600 (RC00)5 de Maio de 1998versão DirectX 5.2 para Windows 95
4.05.01.1998 (RC0)25 de Junho de 1998Exclusivo do Windows 98
6 6.4.06.00.0318 (RC3)7 de Agosto de 1998Windows CE como implementado em Dreamcast e outros dispositivos
6.14.06.02.0436 (RC0)3 de Fevereiro de 1999
6.1a4.06.03.0518 (RC0)5 de Maio de 1999Exclusivo do Windows 98 Second Edition. Esta é a última versão que é executada em 486 ou CPU mais antiga.
7 7.04.07.00.0700 (RC1)22 de Setembro de 1999
4.07.00.070017 de Fevereiro de 2000Exclusivo do Windows 2000
7.0a17 de Dezembro de 1999Lançado apenas para Windows 95 para 98
4.07.00.0716 (RC0)8 de Março de 2000
4.07.00.0716 (RC1)2000
7.14.07.01.3000 (RC1)14 de Setembro de 2000Windows Eu exclusivo. Última versão para ter built-in suporte de renderização de software RGB
8 8.04.08.00.0400 (RC10)10 de Novembro de 2000
8.0a4.08.00.0400 (RC14)24 de Janeiro de 2001Segunda versão 8.0, última versão suportada para Windows 95 e última versão para ter suporte de renderização de software em dxdiag. ex
8.1.4.08.01.081025 de Outubro de 2001Windows XP, Windows XP SP1, Windows Server 2003 e Xbox exclusivo
4.08.01.0881 (RC7)8 de Novembro de 2001Esta versão é para os sistemas operacionais de nível inferior (Windows 98, Windows Me e Windows 2000)
8.1a4.08.01.0901 (RC?)2002Esta versão inclui uma atualização para Direct3D (D3d8.dll)
8.1b4.08.01.0901 (RC7)25 de Junho de 2002Esta atualização inclui uma correção para DirectShow no Windows 2000 (Quartz.dll)
8.24.08.02.0134 (RC0)2002O mesmo que o DirectX 8.1b, mas inclui DirectPlay 8.2
9 9.04.09.00.0900 (RC4)19 de Dezembro de 2002As atualizações periódicas híbridas de 32 bits/64 bits foram lançadas para DirectX 9, a partir de 4.09.00.0904 (RC0 para DX 9.0c) em outubro de 2004, lançadas bimensalmente até agosto de 2007, e trimestralmente depois. A última atualização periódica foi lançada em junho de 2010
9.0a4.09.00.0901 (RC6)26 de Março de 2003
9.0b4.09.00.0902 (RC2)13 de agosto de 2003
9,0c 22 de Julho de 2004 Primeira versão 9.0c e última versão suportada para Windows 98
4.09.00.0903Exclusivo do Windows XP SP2
4.09.00.0904 (RC0)4 de Agosto de 2004
7 de abril de 2006 Terceira versão 9.0c e última versão suportada para Windows Me
8 de dezembro de 2006 Quarta versão 9.0c e última versão suportada para Windows 98 Segunda Edição
4.09.00.09046 de agosto de 2004 / 21 de abril de 2008*Xbox 360, Windows XP SP2, SP3*, Windows Server 2003 SP1 e Windows Server 2003 R2
5 de fevereiro de 2010 Última versão suportada para Windows 2000
7 de junho de 2010 Versão final 9.0c e última versão suportada para Windows XP
10. 10.6.00.6000.1638630 de novembro de 2006Exclusivo do Windows Vista
10.16.00.6001.180004 de fevereiro de 2008Windows Vista SP1, Windows Server 2008
Inclui Direct3D 10.1
6.00.6002.1800528 de abril de 2009Windows Vista SP2, Windows Server 2008 SP2
Inclui Direct3D 10.1
11 116.01.7600.1638522 de outubro de 2009Windows 7, Windows Server 2008 R2
6.00.6002.1810727 de outubro de 2009Windows Vista SP2 e Windows Server 2008 SP2, através da atualização da plataforma para Windows Vista e Windows Server 2008
6.1.7601.1751416 de fevereiro de 2011Windows 7 SP1, Windows Server 2008 R2 SP1
1 de Janeiro6.02.9200.163841 de agosto de 2012Windows 7 SP1 (partialmente), Windows 8, Windows RT, Windows Server 2012
1,26.03.9600.1638418 de outubro de 2013Windows 8.1, Windows RT, Windows Server 2012 R2, Xbox Um.
12 1210.00.10240.1638429 de julho de 2015Windows 10, Xbox Um.
10.00.15063.000020 de março de 2017Windows 10, Depth Bounds Testing e MSAAA programável adicionado
10.00.17763.000020 de novembro de 2019Direct3D 12 apenas para Windows 7 SP1, através de um pacote de código fonte dedicado para desenvolvedores de aplicativos
10.00.17763.00012 de outubro de 2018Windows 10, DirectX Raytracing suporte adicionado
10.00.18362.011619 de maio de 2019Windows 10, taxa variável Shading (VRS) suporte adicionado
10.00.19041.092810 de novembro de 2020Windows 10, Xbox Series X, Ultimate
10.00.22000.10005 de outubro de 2021Windows 11, Adicionado nativo taxa de atualização switching e recursos gráficos melhorados para o Windows Subsystem para Linux

O número da versão informado pela ferramenta DxDiag da Microsoft (versão 4.09.0000.0900 e superior) usa o formato x.xx.xxxx.xxxx para números de versão. No entanto, a página DirectX e Windows XP MSDN afirma que o registro sempre esteve no formato x.xx.xx.xxxx. Portanto, quando a tabela acima listar uma versão como '4.09.00.0904' A ferramenta DxDiag da Microsoft pode tê-lo como '4.09.0000.0904'.

Compatibilidade

Várias versões do Windows incluíram e ofereceram suporte a várias versões do DirectX, permitindo que versões mais recentes do sistema operacional continuem executando aplicativos projetados para versões anteriores do DirectX até que essas versões possam ser gradualmente eliminadas em favor de novas APIs, drivers e hardware.

APIs como Direct3D e DirectSound precisam interagir com o hardware e fazem isso por meio de um driver de dispositivo. Os fabricantes de hardware precisam escrever esses drivers para uma interface de driver de dispositivo (ou DDI) de uma versão específica do DirectX e testar cada peça individual de hardware para torná-los compatíveis com DirectX. Alguns dispositivos de hardware possuem apenas drivers compatíveis com DirectX (em outras palavras, é necessário instalar o DirectX para usar esse hardware). As primeiras versões do DirectX incluíam uma biblioteca atualizada de todos os drivers compatíveis com DirectX atualmente disponíveis. No entanto, essa prática foi interrompida em favor do sistema de atualização de driver do Windows Update baseado na Web, que permitia aos usuários baixar apenas os drivers relevantes para seu hardware, em vez de toda a biblioteca.

Antes do DirectX 10, o tempo de execução do DirectX foi projetado para ser compatível com versões anteriores com drivers mais antigos, o que significa que as versões mais recentes das APIs foram projetadas para interoperar com drivers mais antigos escritos em versões anteriores DDI. O programador de aplicativos teve que consultar os recursos de hardware disponíveis usando um sistema complexo de "cap bits" cada um vinculado a um recurso de hardware específico. O Direct3D 7 e anteriores funcionariam em qualquer versão do DDI, o Direct3D 8 requer um nível mínimo de DDI de 6 e o Direct3D 9 requer um nível mínimo de DDI de 7. No entanto, o tempo de execução do Direct3D 10 no Windows Vista não pode ser executado em drivers de hardware mais antigos devido ao DDI significativamente atualizado, que requer um conjunto de recursos unificado e abandona o uso de "cap bits".

O Direct3D 10.1 apresenta "níveis de recursos" 10_0 e 10_1, que permitem o uso apenas dos recursos de hardware definidos na versão especificada da API Direct3D. O Direct3D 11 adiciona o nível 11_0 e "10 nível 9" - um subconjunto da API Direct3D 10 projetada para ser executada no hardware Direct3D 9, que possui três níveis de recursos (9_1, 9_2 e 9_3) agrupados por recursos comuns de "baixo", "med" e "sofisticado" placas de vídeo; o tempo de execução usa diretamente Direct3D 9 DDI fornecido em todos os drivers WDDM. O nível de recurso 11_1 foi introduzido com o Direct3D 11.1.

.NET Framework

Em 2002, a Microsoft lançou uma versão do DirectX compatível com o Microsoft.NET Framework, permitindo assim que os programadores usufruíssem da funcionalidade DirectX de aplicativos.NET usando linguagens compatíveis, como C++ gerenciado ou o uso da linguagem de programação C#. Essa API era conhecida como "DirectX Gerenciado" (ou MDX para abreviar) e alegou operar com 98% do desempenho das APIs DirectX nativas subjacentes. Em dezembro de 2005, fevereiro de 2006, abril de 2006 e agosto de 2006, a Microsoft lançou atualizações sucessivas para esta biblioteca, culminando em uma versão beta chamada Managed DirectX 2.0. Enquanto o Managed DirectX 2.0 consolidou a funcionalidade que anteriormente estava espalhada por vários assemblies em um único assembly, simplificando assim as dependências dele para desenvolvedores de software, o desenvolvimento desta versão foi posteriormente descontinuado e não é mais suportado. A biblioteca Managed DirectX 2.0 expirou em 5 de outubro de 2006.

Durante o GDC 2006, a Microsoft apresentou o XNA Framework, uma nova versão gerenciada do DirectX (semelhante, mas não idêntica ao Managed DirectX) que visa auxiliar o desenvolvimento de jogos facilitando a integração de DirectX, HLSL e outras ferramentas em Um pacote. Ele também suporta a execução de código gerenciado no Xbox 360. O XNA Game Studio Express RTM foi disponibilizado em 11 de dezembro de 2006, como um download gratuito para Windows XP. Ao contrário do tempo de execução do DirectX, DirectX gerenciado, XNA Framework ou APIs do Xbox 360 (XInput, XACT etc.) não são fornecidos como parte do Windows. Espera-se que os desenvolvedores redistribuam os componentes de tempo de execução junto com seus jogos ou aplicativos.

Nenhum produto da Microsoft, incluindo as versões mais recentes do XNA, fornece suporte DirectX 10 para o.NET Framework.

A outra abordagem para DirectX em linguagens gerenciadas é usar bibliotecas de terceiros como:

  • SlimDX, uma biblioteca de código aberto para programação DirectX no. NET Framework
  • SharpDX, que é um projeto de código aberto que entrega a API DirectX completa para. NET em todas as plataformas Windows, permitindo o desenvolvimento de jogos de alto desempenho, gráficos 2D e 3D renderização, bem como aplicações de som em tempo real
  • DirectShow.NET para o Direct Mostrar subconjunto
  • API do Windows CodePack para. NET Framework, que é uma biblioteca de código aberto da Microsoft.

Alternativas

Existem alternativas para a família DirectX de APIs, com OpenGL, seu sucessor Vulkan, Metal e Mantle tendo mais recursos comparáveis ao Direct3D. Exemplos de outras APIs incluem SDL, Allegro, OpenMAX, OpenML, OpenAL, OpenCL, FMOD, SFML, etc. Muitas dessas bibliotecas são de plataforma cruzada ou têm bases de código abertas. Existem também implementações alternativas que visam fornecer a mesma API, como a do Wine. Além disso, os desenvolvedores do ReactOS estão tentando reimplementar o DirectX sob o nome "ReactX".

Contenido relacionado

Espacio de usuario y espacio del kernel

Matriz en fase

Normalización de base de datos

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save