Anunciando o DirectX 12 Ultimate

Saci

Heimdall dos Pampas
Moderador
Abril 11, 2007
24,910
51,172
ultimate.png

Da equipe que trouxe aos jogadores de PC e console as últimas inovações gráficas por quase 25 anos, temos o prazer de oferecer aos jogadores DirectX 12 Ultimate, o culminar da melhor tecnologia gráfica que já introduzimos em um alinhamento sem precedentes entre PC e Xbox Series X.

Quando os jogadores compram hardware gráfico para PC com o logotipo DX12 Ultimate ou um Xbox Series X, podem fazê-lo com a certeza de que seu hardware é compatível com TODOS os recursos de hardware gráfico da próxima geração, incluindo DirectX Raytracing, Variable Rate Shading, Mesh Shaders e Sampler Feedback . Essa marca de qualidade garante um suporte estelar à prova de futuro para jogos da próxima geração!

Inovação gráfica definitiva
O Game Stack da Microsoft existe para oferecer aos desenvolvedores as ferramentas necessárias para criar experiências de jogo ousadas e imersivas, e o DX12 Ultimate é a ferramenta ideal para amplificar gráficos de jogos. O DX12 Ultimate é o resultado de um investimento contínuo na plataforma DirectX 12 feita nos últimos cinco anos para garantir que o Xbox e o Windows 10 permaneçam no auge da tecnologia gráfica. Para capacitar ainda mais os desenvolvedores de jogos a criarem jogos com visuais impressionantes, aprimoramos os recursos que já estão começando a transformar os jogos, como DirectX Raytracing e Variable Rate Shading, e adicionamos novos recursos importantes, como Mesh Shaders e Sampler Feedback.

Juntos, esses recursos representam muitos anos de inovação da Microsoft e de nossos parceiros na indústria de hardware. O DX12 Ultimate reúne todos eles em um pacote comum, fornecendo aos desenvolvedores uma única chave para desbloquear os gráficos da próxima geração no PC e Xbox Series X.

Obviamente, mesmo os recursos mais poderosos são de uso limitado, sem as ferramentas necessárias para explorá-los totalmente, por isso temos o prazer de anunciar que nossa ferramenta de otimização de gráficos PIX líder do setor e nosso compilador HLSL de código aberto fornecerão aos desenvolvedores de jogos a capacidade para extrair até a última gota de desempenho de todo um ecossistema do hardware DX12 Ultimate.

Um benefício aditivo
O DirectX12 Ultimate é fundamentalmente uma iniciativa aditiva que fornece aos jogadores a garantia de que seu hardware atende aos padrões mais altos de suporte a recursos em jogos da próxima geração.

É muito importante observar que o DX12 Ultimate não afetará a compatibilidade do jogo com o hardware existente, o qual não suporte toda a gama dos recursos do DX12 Ultimate. De fato, os jogos da próxima geração que usam os recursos do DX12 Ultimate continuarão sendo executados em hardware que não seja o DX12 Ultimate. Embora esse hardware não forneça os benefícios visuais dos novos recursos, ele ainda pode fornecer uma experiência de jogo muito atraente nos jogos da próxima geração, dependendo das especificidades do hardware.

O ecossistema de PC abrange uma ampla variedade de hardware e o DX12 Ultimate torna esse ecossistema estritamente melhor, sem efeitos adversos no hardware que não foi pensado para o DX12 Ultimate!

Amplificando um ciclo virtuoso
Como qualquer jogador atestaria, existem poucas virtudes mais altas do que a apreciação de um jogo bem trabalhado e bonito. O DX12 Ultimate cria oportunidades sem precedentes para todo o ecossistema de jogos, criando um ciclo virtuoso auto-reforçado que resulta em melhores experiências de jogo!

O ciclo abaixo descreve o processo geral de aprimoramento de gráficos em jogos que ocorrem há muitos anos. À medida que o novo hardware (ou uma nova geração de console) atinge lentamente a saturação do mercado, o número de placas com recursos gráficos compatíveis com a próxima geração aumenta. À medida que o número de placas com esses recursos aumenta, o número de estúdios de jogos que desejam adotar os novos recursos também aumenta, até que finalmente ocorre a saturação do mercado do hardware, e a maioria dos estúdios de jogos adotam os recursos.

Antes do DX12 Ultimate, havia sobreposição limitada entre esses dois ciclos. Mesmo quando o hardware era semelhante, as interfaces de software eram bastante diferentes, desencorajando a adoção alinhada pelos desenvolvedores.

Ao unificar a plataforma gráfica entre PC e Xbox Series X, o DX12 Ultimate serve como um multiplicador de forças para todo o ecossistema de jogos. Os ciclos não funcionam mais de forma independente! Em vez disso, agora eles combinam de forma sinérgica: quando o Xbox Series X for lançado, já haverá muitos milhões de placas gráficas DX12 Ultimate PC no mundo com o mesmo conjunto de recursos, catalisando a rápida adoção de novos recursos e o Xbox Series X acenar dos novos jogadores de console, o PC também se beneficiará dessa vasta onda de novos hardwares compatíveis com o DX12 Ultimate!

O resultado? Uma adrenalina para a adoção de novos recursos, gráficos inovadores nas mãos dos jogadores mais rapidamente do que nunca!

Para obter mais informações sobre como nossos parceiros de hardware oferecem suporte ao DX12 Ultimate, consulte estes artigos da AMD e da NVIDIA:

 

Saci

Heimdall dos Pampas
Moderador
Abril 11, 2007
24,910
51,172
DirectX Raytracing 1.1
O DirectX Raytracing (DXR) traz um novo nível de realismo gráfico aos videogames, anteriormente apenas atingíveis na indústria cinematográfica. Os efeitos alcançáveis pelo DXR parecem mais reais, porque, em certo sentido, são mais reais: o DXR rastreia caminhos de luz com cálculos físicos reais, o que é uma simulação muito mais precisa do que os cálculos heurísticos usados anteriormente.

Já vimos um nível sem precedentes de qualidade visual de títulos que usam o DXR 1.0 desde que o lançamos, e construímos o DXR 1.1 em resposta ao feedback do desenvolvedor, oferecendo ainda mais ferramentas para utilizar o DXR.

O DXR 1.1 é uma adição incremental à parte superior do DXR 1.0, adicionando três novos recursos principais:

  • A criação de trabalho da GPU agora permite o Raytracing . Isso permite que os shaders na GPU invoquem o raytracing sem uma ida e volta de volta à CPU. Essa capacidade é útil para cenários de rastreamento de raios adaptativos, como seleção / classificação / classificação / refinamento com base em shader. Basicamente, os cenários que preparam o raytracing funcionam na GPU e a geram imediatamente.
  • Os mecanismos de streaming podem carregar com mais eficiência novos shaders de raytracing, conforme necessário, quando o jogador se move pelo mundo e novos objetos se tornam visíveis.
  • O raytracing em linha é uma forma alternativa de raytracing que oferece aos desenvolvedores a opção de conduzir mais do processo de raytracing, em vez de lidar com a programação de trabalho inteiramente no sistema (sombreamento dinâmico). Está disponível em qualquer estágio de sombreador, incluindo sombreadores de computação, sombreadores de pixel etc. Tanto as formas de sombreamento dinâmico quanto o alinhamento em linha do raytracing usam as mesmas estruturas de aceleração opacas.
Quando usar o raytracing em linha
O traçado de raios em linha pode ser útil por vários motivos:

  • Talvez o desenvolvedor saiba que seu cenário é simples o suficiente para que a sobrecarga da programação dinâmica do shader não valha a pena. Por exemplo, uma maneira bem restrita de calcular sombras.
  • Poderia ser conveniente / eficiente consultar uma estrutura de aceleração de um sombreador que não suporta raios baseados em sombreador dinâmico. Como um sombreador de computação ou pixel.
  • Pode ser útil combinar o traçado de raios baseado em shader dinâmico com o formulário em linha. Alguns estágios de sombreador de rastreamento de raio, como sombreamentos de interseção e sombreadores de impacto, nem mesmo suportam raios de rastreamento por meio de traçado de raio baseado em sombreador dinâmico. Mas o formulário embutido está disponível em qualquer lugar.
  • Outra combinação é mudar para o formulário embutido para obter raios recursivos simples. Isso permite que o aplicativo declare que não há recursão para o pipeline de rastreamento de raios subjacente, dado que o rastreamento de raios em linha está manipulando raios recursivos. A carga de agendamento dinâmico mais simples no sistema pode gerar melhor eficiência.
Os cenários com muitos shaders complexos funcionarão melhor com o raytracing baseado em shader dinâmico, em oposição ao uso de uber shaders em linha maciços. Enquanto isso, cenários com uma complexidade mínima de sombreamento e / ou muito poucos sombreadores funcionarão melhor com o traçado de raios em linha.

Se tudo isso parece bastante complicado, bem, é! A conclusão de alto nível é que tanto o novo traçado de raio em linha quanto o traçado de raio original baseado em shader dinâmico são valiosos para diferentes propósitos. A partir do DXR 1.1, os desenvolvedores não apenas têm a opção de escolher uma das abordagens, mas também podem combiná-las em um único renderizador. As abordagens híbridas são auxiliadas pelo fato de que ambos os tipos de rastreamento de raios DXR compartilham o mesmo formato de estrutura de aceleração e são conduzidos pela mesma máquina de estado transversal subjacente.

O melhor de tudo é que os jogadores com hardware DX12 Ultimate podem ter certeza de que, independentemente do tipo de solução Raytracing que o desenvolvedor escolher usar, eles terão uma ótima experiência.



Sombreamento de taxa variável
Variable Rate Shading (VRS) permite que os desenvolvedores variem seletivamente a taxa de sombreamento de um jogo. Isso permite que eles 'acessem' a potência da GPU em partes mais importantes do jogo para obter melhores visuais e 'retornem' a potência da GPU em áreas menos importantes de um jogo para obter melhor velocidade. O sombreamento de taxa variável também tem a vantagem de ter um custo relativamente baixo para implementar para desenvolvedores. Mais detalhes sobre o sombreamento de taxa variável podem ser encontrados em nosso post anterior .



Shaders de malha
Os Mesh Shaders oferecem aos desenvolvedores mais capacidade de programação do que nunca. Ao trazer toda a potência da computação generalizada de GPU para o pipeline de geometria, os shaders de malha permitem que os desenvolvedores construam mundos mais detalhados e dinâmicos do que nunca.

Antes do mesh shader, o pipeline de geometria da GPU escondia a natureza paralela da execução do hardware da GPU por trás de uma abstração de programação simplificada, que apenas dava aos desenvolvedores acesso a funções aparentemente lineares do shader. Por exemplo, o desenvolvedor grava uma função de sombreador de vértice que é chamada uma vez para cada vértice em um modelo, implicando execução em série. No entanto, nos bastidores, o hardware empacota vértices adjacentes para preencher uma onda SIMD e executa 32 ou 64 funções de sombreador de vértice em paralelo em um único núcleo de sombreador. Esse modelo funcionou extremamente bem por muitos anos, mas está deixando desempenho e flexibilidade em cima da mesa, ocultando os detalhes do que o hardware realmente está fazendo dos desenvolvedores.

Os shaders de malha alteram isso, fazendo com que o processamento da geometria se comporte mais como shaders de computação. Em vez de uma única função que sombreia um vértice ou um primitivo, os shaders de malha operam em todo um grupo de threads de computação, com acesso ao grupo de memória compartilhada e recursos avançados de computação, como intrínsecos de ondas cruzadas que fornecem controle ainda mais refinado do hardware real execução. Todos esses encadeamentos trabalham juntos para sombrear uma pequena lista de triângulo indexada, chamada de 'malha'. Normalmente, haverá uma fase do shader de malha em que cada thread está trabalhando em um vértice separado, e outra fase em que cada thread trabalha em uma primitiva separada - mas esse modelo é completamente flexível, permitindo que os dados sejam compartilhados entre threads, novos vértices ou primitivas criados conforme necessário, primitivas existentes cortadas ou descartadas etc.

Junto com essa nova flexibilidade de alocação de encadeamentos, há uma flexibilidade nos formatos de dados de entrada. O sombreador de malha não usa mais o bloco Input Assembler, que era anteriormente responsável por buscar dados de índice e vértice da memória. Em vez disso, o código de sombreador é livre para ler qualquer dado necessário a partir de qualquer formato que ele goste. Isso permite novas técnicas inovadoras, como a compactação do buffer de índice ou o uso de vários buffers de índice diferentes para diferentes canais de dados de vértice. Essas abordagens podem reduzir o uso de memória e também a largura de banda de memória usada durante a renderização, aumentando assim o desempenho.

Embora seja mais flexível que o pipeline de geometria anterior, o modelo de shader de malha também é muito mais simples:

Sombreador de malha de imagem

Junto com o shader de malha, vem um novo estágio opcional de shader, chamado Amplification Shader. Isso é executado antes do shader de malha, executa alguns cálculos, determina quantos grupos de encadeamentos de shader de malha são necessários e, em seguida, inicia muitos shaders de malha:

Sombreador de amplificação de imagem

Os sombreadores de amplificação são especialmente úteis para o descarte, pois podem determinar quais malhas são visíveis, testando cada conjunto de 32 a 256 triângulos em relação a um volume delimitador geométrico, cone normal ou técnicas mais avançadas, como planos de visibilidade do portal, antes de decidir lançar um grupo de encadeamentos de shader de malha para essa malha. Anteriormente, o descarte era normalmente realizado em um nível mais grosso por malha para decidir se era necessário desenhar um objeto e também em um nível mais fino por triângulo no final do pipeline da geometria. Esse novo nível intermediário de seleção melhora o desempenho ao desenhar modelos que são apenas parcialmente ocluídos. Por exemplo, se parte de um personagem estiver na tela enquanto apenas um braço não estiver,



Comentários sobre o amostrador
O Sampler Feedback permite melhor qualidade visual, menor tempo de carregamento e menos gagueira, fornecendo informações detalhadas para permitir que os desenvolvedores carreguem apenas texturas quando necessário.

Suponha que você seja um desenvolvedor de jogos sombreando uma cena 3D complicada. A câmera se move rapidamente pela cena, fazendo com que alguns objetos sejam movidos para diferentes níveis de detalhe. Como você precisa otimizar agressivamente a memória, vincula recursos para lidar com a demanda por diferentes LODs. Talvez você use um sistema de streaming de textura; talvez ele use recursos lado a lado para manter esses gigantes mip 0s em 4K não residentes, se você não precisar deles. De qualquer forma, você tem um sombreador que prova uma textura reduzida usando um padrão de amostragem A Muito Complicado. Escolha o seu favorito, diga anisotrópico.

A amostragem neste shader faz você fazer algumas perguntas.

Qual o nível de mip que ele provou? Parece uma pergunta muito básica. Em um mundo antes do Sampler Feedback, não há maneira fácil de saber. Você poderia criar uma heurística. Você pode pensar no padrão de amostragem e fazer algumas suposições. Mas 1) você não tem tempo para isso e 2) não há como ser 100% confiável.

Onde exatamente o recurso foi amostrado? Mais especificamente, o que você realmente precisa saber é: quais peças? Pode estar no canto superior esquerdo ou no meio da textura. Seu sistema de streaming realmente se beneficiaria disso, para que você saiba quais mips serão carregados a seguir.c

O feedback do amostrador resolve isso, permitindo que um shader consulte com eficiência qual parte de uma textura seria necessária para satisfazer uma solicitação de amostragem, sem realmente executar a operação de amostra. Essas informações podem ser inseridas no sistema de streaming de ativos do jogo, permitindo tomar decisões mais inteligentes e precisas sobre quais dados serão transmitidos a seguir. Em conjunto com o recurso de recursos lado a lado do D3D12, isso permite aos jogos renderizar texturas maiores e mais detalhadas enquanto utiliza menos memória de vídeo.

O feedback do amostrador também permite o TSS ( Texture-space shading ), uma técnica de renderização que desacopla o sombreamento de um objeto no espaço do mundo, desde a rasterização da forma desse objeto até o destino final.

O TSS é uma técnica que permite que os desenvolvedores de jogos façam cálculos de iluminação caros no espaço de objetos e os gravem em uma textura - por exemplo, algo que se parece com um desembrulhamento UVW do objeto. Como nada está sendo rasterizado, o sombreamento pode ser feito usando computação, sem o pipeline gráfico. Em uma etapa separada, vincule a textura e rasterize ao espaço da tela, executando uma amostra simples. Essa abordagem reduz o alias e permite calcular a iluminação com menos frequência do que a rasterização. A dissociação dessas duas taxas permite o uso de técnicas de iluminação mais sofisticadas em taxas de quadros mais altas.

Imagem tss

Configuração de uma cena usando sombreamento de espaço de textura
Um obstáculo para que o TSS funcione bem é descobrir o que no espaço do objeto deve ser sombreado para cada objeto. Tudo? Isso dificilmente seria eficiente. E se apenas o lado esquerdo de um objeto estiver visível? Com o poder do feedback do amostrador, a etapa de rasterização pode simplesmente registrar quais texels estão sendo solicitados e apenas executar o caro cálculo de iluminação do aplicativo naqueles.



Agora que arranhamos a superfície ...
Se você passou por nossa leitura leve e está se perguntando quando chegaremos ao material técnico, escrevemos posts detalhados para desenvolvedores sobre o DirectX Raytracing 1.1 , sombreamento de taxa variável , sombreadores de malha e feedback do amostrador , o quatro recursos dentro do DX12 Ultimate.

Para os desenvolvedores de jogos, reunimos um guia detalhado Introdução ao DirectX 12 Ultimate , que contém todos os detalhes necessários para o suporte ao DX12 Ultimate hoje, incluindo como ingressar no programa Insiders, a compilação certa, SDK, drivers , etc. Como sempre, convidamos você para o nosso canal ativo do Discord e estamos ansiosos para ajudar desenvolvedores e jogadores! discord.gg/directx
 

Maxximu

? Espinho do PXB ?
Janeiro 29, 2014
5,260
5,527
Onde tem RASTERIZAÇÃO eu li REMASTERIZAÇÃO várias vezes.

MS mandou bem no software também.

 
Última edição:
  • Curtir
Reações: HSR e Saci

User 1422

Guerreiro
Março 19, 2009
12,246
11,403




Vídeo curtinho em inglês que dá uma explicada básica sobre DirectX Ray Tracing, Mesh Shading e Variable Rate Shading.


Acho bem interessante como antigamente as tecnologias gráficas geralmente eram sobre "mais". Mais polígonos, mais resolução, mais reflexos, mais sombras e etc. E hoje em dia estamos vendo o foco em "melhor". Fazer mais reflexos gastando menos GPU, renderizar somente aquilo que está em no campo de visão principal, poupando recursos e assim por diante.
 
Última edição:

Archangel2035

Casual
Setembro 17, 2008
2,445
1,769
Se diretcX resolver a questão dos ports PC - Console de maneira rapida tá valendo.

Está barreira já foi prometida antes, mas nunca foi efetivamente implementada no Xbox por outras desenvolvedoras.
 

Sobre o PXB

  • Desde 2005 nossa comunidade se orgulha de oferecer discussões inteligentes e críticas sobre a plataforma Xbox. Estamos trabalhando todos os dias para garantir que nossa comunidade seja uma das melhores.

Sobre a Comunidade

  • As opiniões expressas neste neste site são da inteira responsabilidade dos autores. Microsoft, Xbox, Xbox Live, os logotipos do Xbox e/ou outros produtos da Microsoft mencionados neste site são marcas comerciais ou registradas da Microsoft Corporation.

Assinatura PXB Gold

+ Navegação sem publicidade

+ Upload de imagens nas postagens do fórum

+ Títulos de avatar personalizados.

 

Assinar com PayPal PagSeguro (cartão ou boleto)