Download - DirectX11: Fundamentos
DirectX11FUNDAMENTOS
POR: ALEXANDRE CORREA CASTRO
Propósito destes slidesProporcionar um guia simplificado da divisão das APIs do DirectX11 e da sua pipeline, trazendo ao leitor um entendimento geral sobre o assunto.
Espero que eles sejam úteis!
POR: ALEXANDRE CORREA CASTRO
O que é DirectX Microsoft DirectX é uma coleção de APIs (Application Programming Interface),projetada para proporcionar aos desenvolvedores uma interface de baixo nível paraacesso ao hardware em plataformas baseadas no sistema operacional Windows(compatível com Windows Vista ou superior).
Cada componente da API proporciona acesso padronizado a diferentes aspectos dohardware como: interface gráfica, som, GPU e dispositivos de entrada.
POR: ALEXANDRE CORREA CASTRO
Principais diferenças entre DirectX11 e DirectX10Computação de propósito geral usando a nova API DirectCompute.
Renderização multi threaded.
Hardware tesselation.
POR: ALEXANDRE CORREA CASTRO
Principais diferenças entre DirectX11 e DirectX10Shader Model 5.0 e conceitos de programação orientada a objetos para shaders.
Formatos BC6 (BC6H) e BC7 para compressão de texturas de imagens HDR e LDR.
Aumento da resolução de texturas.
E muito mais!
Mais informações sobre B6HC e BC7 em:http://msdn.microsoft.com/en-us/library/windows/desktop/hh308955(v=vs.85).aspx
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11O DirectX é dividido em diversos componentes, cada um representando um diferenteaspecto do sistema.
Cada API pode ser utilizada independente da outra possibilitando a adição de uma novasomente conforme a necessidade.
Nos próximos slides veremos a relação de APIs disponíveis no DirectX11.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11Direct2D
Direct2D é utilizado para gráficos 2D em aplicações Win32. Ele possui alta performancena renderização de vetores.
DirectWrite
DirectWrite é utilizado para renderização de fontes e textos em aplicações Direct2D.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11DXGI
DirectX Graphics Infrastructure, também conhecido como DXGI, é utilizado para criaçãode Direct3D swap chain e enumeradores de device adapters (placa de vídeo).
Direct3D
Direct3D é utilizado em todo gráfico tridimensional em DirectX. Esta é a API que recebea maior atenção e atualizações.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11XAudio2
XAudio2 é uma API de baixo nível para processamento de áudio. Esta API é parte doXDK (Xbox Development Kit) e agora também faz parte do DirectX SDK. XAudio2substitui a API DirectSound.
XACT3
XACT3 é uma API de alto nível para processamento de áudio construída a partir daXAudio2.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11XInput
XInput é a API de dispositivo de entrada do XDK e DirectX SDK, sendo utilizada paraprocessar os controles do Xbox 360 e PC. XInput substitui a API DirectInput.
XNA Math
XNA Math não é propriamente uma API, mas sim uma biblioteca matemática querealiza operações otimizadas. Esta biblioteca utiliza SIMD (Single Instruction MultipleData) que possibilita múltiplas operações em uma única chamada de instrução.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11DirectCompute
DirectCompute é uma nova API adicionada na versão 11 do DirectX que permite o usoda GPU para processar dados de propósito geral com paralelismo.
DirectSetup
Possibilita a instalação da última versão do DirectX junto com o seu jogo.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11DirectInput
DirectInput é uma API para detecção de teclados, mouses e joysticks. No caso do uso deteclado e mouse, podemos utilizar funções Win32 como uma opção ao DirectInput.
POR: ALEXANDRE CORREA CASTRO
Os componentes de DirectX11Componentes Obsoletos – removidos ou marcados como deprecated.
DirectDraw – Agregada ao Direct3D.
DirectPlay – Removido, capacitação de rede protocolo UDP (User Datagram Protocol).
DirectShow – Passou a fazer parte do Windows SDK.
DirectMusic – Deprecated, substituído por XAudio2.
DirectSound – Deprecated, substituído por XAudio2.
POR: ALEXANDRE CORREA CASTRO
Component Object ModelA API de DirectX é baseada no modelo de COM (Component Object Model).
Os objetos COM consistem em uma coleção de interfaces que expõem funções que osdesenvolvedores utilizam para acessar o DirectX. Estes objetos são DLLs que sãoregistradas no sistema para prover suporte a um hardware específico da máquina. Oregistro destas DLLs ocorrem no momento da instalação do DirectX.
POR: ALEXANDRE CORREA CASTRO
Estágios do Direct3D 11O Direct3D processa sua cena em múltiplos estágios. Cada um destes passos executamum conjunto específicos de tarefas para resultar em uma imagem final. Estes estágiossão conhecidos como a pipeline de renderização.
POR: ALEXANDRE CORREA CASTRO
A Pipeline do Direct3D 11
Input Assembler
Vertex Shader
Hull Shader TessellatorDomain Shader
Geometry Shader
RasterizerPixel
ShaderOutput Merger
Novidades do Direct3D11
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Input Assembler (IA)
Input Assembler (IA) é o primeiro estágio da pipeline do Direct3D e pode serconsiderado a fase da construção dos blocos de geometrias que serão processadospelos demais estágios da pipeline.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Vertex Shader (VS)
Vertex Shader (VS) é o segundo estágio da pipeline. Este estágio é capaz de trabalhar naestrutura de vértices do modelo tridimensional e com isso modificar sua estrutura emtempo de execução.
O Vertex Shader sempre recebe um vértice como entrada e devolve um vértice na saída.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Hull Shader (Opcional)
Hull Shader é o terceiro estágio da pipeline. Ele executa operações em conjuntos depontos de controle, e gera dados adicionais conhecidos como patch constants.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Tessellator (Opcional)
Tessellator é o quarto estágio da pipeline. Este estágio subdivide a geometria geradapelo Hull Shader pra criar uma representação mais detalhada do modelo tridimensional.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Domain Shader (Opcional)
Domain Shader é o quinto estágio da pipeline. Ele executa operações em vértices saídado Tessellator, semelhante ao processo de Vertex Shader.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Geometry Shader (GS) Opcional
Geometry Shader (GS) é o sexto estágio da pipeline, porém se não houver nenhumestágio de Tessellation ocorrendo ele será executado logo após ao Vertex Shader.
Este estágio pode gerar novas primitivas como pontos, linhas e triângulos, a partir dasprimitivas de entrada da pipeline. Por exemplo: quando processarmos triângulos, trêsvértices serão a entrada do Geometry Shader. Este passo pode retornar zero ou maisprimitivas para o próximo item da pipeline.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Rasterizer
Rasterizer é o sétimo estágio da pipeline, ele é responsável por converter as primitivasem pixels. Estes pixels serão os dados de entrada do estágio de Pixel Shader (PS).
O estágio de Rasterizer determinará como o Pixel Shader será invocado e tambémpoderá executar outras tarefas, como tornar invisível determinados pixels através declipping e culling.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Pixel Shader (PS)
Pixel Shader (PS) é o oitavo estágio da pipeline, ele é capaz de trabalhar na estruturados pixels depois que um modelo 3D é rasterizado.
Com o Pixel Shader podemos criar efeitos na imagem, como efeitos devidro, rugosidade, desfoque entre outros, esse efeitos são conhecidos como pos-effects.
POR: ALEXANDRE CORREA CASTRO
Estágios da pipeline do Direct3D 11Output Merger (OM)
Output Merger (OM) é o nono e último estágio da pipeline, ele agrupa os vários tipos dedados de saída (pixel shader, alpha blending, depth) para compilar uma imagem finalque será enviada para tela.
POR: ALEXANDRE CORREA CASTRO
ReferênciasBeginning DirectX 11 Game Programming – Allen Sherrod and Wendy Jones
Introduction to 3D Game Programming with DirectX 11 – Frank Luna
POR: ALEXANDRE CORREA CASTRO