Os novos recursos do nível 1.1 do DirectX Raytracing (DXR) podem funcionar apenas com o suporte do driver, sem modificações pesadas de hardware

Hardware / Os novos recursos do nível 1.1 do DirectX Raytracing (DXR) podem funcionar apenas com o suporte do driver, sem modificações pesadas de hardware 3 minutos lidos

Xbox



Ray Tracing é certamente um recurso que os jogadores, especialmente com placas gráficas de última geração da NVIDIA e AMD, estão esperando ansiosamente. Os principais fabricantes de GPUs, que em breve incluirão a Intel também, estão construindo ativamente seu hardware para suportar o recurso que renderiza de forma realista os efeitos de luz e sombra com base nas leis da física do mundo real e traz visuais hiper-realistas e envolventes.

Enquanto isso, a Microsoft está garantindo que o ecossistema do sistema operacional Windows seja adequado como uma plataforma ideal para jogos de última geração. A plataforma DirectX da empresa, que há muito é um padrão líder para jogos de desktop, está sendo ajustada para oferecer suporte nativo e até mesmo aumentar o ‘Real-time Ray Tracing’. Na verdade, o DirectX Raytracing (DXR) Tier 1.1 é o padrão mais recente que oferece suporte a um conjunto de novos recursos. Alguns dos recursos interessantes que o traçado de raio em tempo real poderia suportar no recurso próximo incluem o traçado de raio em linha, Chamadas DispatchRays () via ExecuteIndirect () , Objetos de estado crescente via AddToStateObject () , GeometryIndex () em shaders de raytracing , e mais. Vejamos alguns dos novos recursos que o DirectX 12 para Windows 10 oferece suporte para rastreamento de raio.



Rastreamento de raio em linha:

Uma forma alternativa de traçado de raio, o traçado de raio em linha não usa quaisquer shaders dinâmicos separados ou tabelas de shader. A API para o recurso oculta o acesso à estrutura de aceleração (por exemplo, passagem da estrutura de dados, caixa, intersecção do triângulo). Isso essencialmente deixa isso para o hardware / driver. Curiosamente, todo o código de aplicativo necessário para lidar com os hits candidatos enumerados e o resultado de uma consulta (por exemplo, acerto vs erro) pode ser autocontido no shader que conduz o RayQuery .



O rastreamento de raios em linha oferece aos desenvolvedores a opção de empurrar para mais processos de rastreamento de raios, em vez de entregar a programação de trabalho inteiramente ao sistema. Desnecessário acrescentar que essa otimização de processos é bastante útil para desenvolvedores que estão lutando com várias sombras. Além disso, os desenvolvedores têm total liberdade para alternar dinamicamente para a forma sequencial de raios recursivos simples.



DispatchRays () Chamadas via ExecuteIndirect ():

Este recurso permite que sombreadores na GPU gerem uma lista de DispatchRays () chamadas. Isso inclui parâmetros individuais como contagens de thread, configurações de tabela de sombreamento e outras configurações de parâmetro raiz. O melhor aspecto do recurso é que a lista inteira pode ser executada sem que o processo precise de uma viagem intermediária de volta à CPU.



Todos os cenários que preparam o raytracing funcionam na GPU e, em seguida, imediatamente o geram, devem se beneficiar imensamente com o recurso. É desnecessário acrescentar que esse recurso deve ajudar muito com vários cenários de raytracing adaptativos, como seleção, classificação, classificação e refinamento com base em shader.

Crescendo objetos de estado via AddToStateObject ():

Um recurso de otimização, este novo tenta reduzir o desperdício de threads de processamento. Muitos aplicativos e processos hoje criam um pipeline de ray tracing totalmente preenchido, o que desperdiça muitos recursos e sobrecarrega o sistema. Atualmente, o tempo de execução D3D12 ainda analisa o objeto de estado completo sendo criado a partir de blocos de construção.

Mesmo que seja feito para verificar a exatidão, com AddToStateObject () , um novo objeto de estado pode ser criado adicionando sombreadores a um objeto de estado de sombreador existente. Não é preciso acrescentar que a sobrecarga da CPU permanecerá proporcional apenas aos dados que estão sendo adicionados.

GeometryIndex () Em Shaders de rastreamento de raio:

Esse recurso permite que os sombreadores distingam as geometrias nas estruturas de aceleração de nível inferior. Anteriormente, as geometrias podiam ser distinguidas pela variação de dados nos registros da tabela de sombreadores para cada geometria, mas com o novo método, o aplicativo se livra do fardo. Além disso, se todas as geometrias compartilham o mesmo sombreador, o aplicativo pode escolher definir o MultiplierForGeometryContributionToHitGroupIndex parâmetro para TraceRay () 0

Isso irá essencialmente garantir que o índice de geometria não seja mais considerado no cálculo de indexação da tabela de sombreador de função fixa. Ainda assim, se necessário ou desejado, os shaders podem usar GeometryIndex () para indexar nas próprias estruturas de dados do aplicativo.

Além dos recursos mencionados acima, o DirectX Raytracing (DXR) Tier 1.1 também inclui RAY_FLAG_SKIP_TRIANGLES e RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES bandeiras. Embora esses sinalizadores estejam disponíveis para chamadas de raytracing individuais, eles também podem ser declarados globalmente por meio da configuração do pipeline de raytracing.

É bastante claro que a Microsoft está tentando otimizar o DirectX 12 para jogos com muitos gráficos. Além disso, com o ray tracing prometendo ser um dos recursos mais importantes para jogos e jogadores de última geração, a empresa está garantindo que o sistema, CPU e GPU são utilizadas de forma otimizada com redundâncias mínimas.

Tag Directx nvidia traçado de raio RTX