26
DirectX11 FUNDAMENTOS POR: ALEXANDRE CORREA CASTRO

DirectX11: Fundamentos

Embed Size (px)

Citation preview

Page 1: DirectX11: Fundamentos

DirectX11FUNDAMENTOS

POR: ALEXANDRE CORREA CASTRO

Page 2: DirectX11: Fundamentos

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

Page 3: DirectX11: Fundamentos

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

Page 4: DirectX11: Fundamentos

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

Page 5: DirectX11: Fundamentos

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

Page 6: DirectX11: Fundamentos

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

Page 7: DirectX11: Fundamentos

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

Page 8: DirectX11: Fundamentos

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

Page 9: DirectX11: Fundamentos

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

Page 10: DirectX11: Fundamentos

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

Page 11: DirectX11: Fundamentos

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

Page 12: DirectX11: Fundamentos

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

Page 13: DirectX11: Fundamentos

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

Page 14: DirectX11: Fundamentos

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

Page 15: DirectX11: Fundamentos

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

Page 16: DirectX11: Fundamentos

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

Page 17: DirectX11: Fundamentos

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

Page 18: DirectX11: Fundamentos

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

Page 19: DirectX11: Fundamentos

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

Page 20: DirectX11: Fundamentos

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

Page 21: DirectX11: Fundamentos

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

Page 22: DirectX11: Fundamentos

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

Page 23: DirectX11: Fundamentos

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

Page 24: DirectX11: Fundamentos

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

Page 25: DirectX11: Fundamentos

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

Page 26: DirectX11: Fundamentos

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