DispatchRays, bem como eventos Dispatch ou Draw que usam o cabeçalho de travessia autônoma: XDXR Standalone Traversal.

Controles
- Clique com o botão direito do mouse e arraste para alinhar a câmera.
- Use as teclas WASD + QE do teclado para navegar pela cena.
- Mantenha CTRL pressionado durante a navegação para diminuir a velocidade da câmera e SHIFT para aumentá-la.
- Se o movimento da câmera estiver lento ou rápido demais, use ’+’ ou ’-’ dentro do visualizador.
- Clique com o botão esquerdo do mouse para selecionar instâncias no BVH.
- Selecione
para Recenter view.
- As câmeras podem ser salvas e restauradas a partir da lista suspensa na barra superior da interface, digitando um nome e pressionando ENTER; isso é útil para definir marcadores em um mundo grande.
- A posição da câmera pode ser exibida e alterada na barra superior da interface.
- As alternâncias ao lado dos campos de posição da câmera permitem definir o comportamento Y-Up ou Z-Up e de mão esquerda ou direita para corresponder à orientação da sua cena.
- O menu de configurações do PIX também permite definir valores padrão para a orientação da câmera, compartilhados entre todas as capturas; isso é útil para usuários que costumam examinar capturas do mesmo mecanismo.
Recursos do visualizador de BVH
Você pode alternar entre a exibição da memória do buffer e a visualização do BVH usando a alternância “Buffer/BVH”. O painel Info mostra as propriedades do TLAS e do BLAS e da instância selecionados. Clicar no link Address abre o Memory Viewer, que exibe o cabeçalho nativo do BVH. O painel XDXR Options controla a renderização da cena e as visualizações de desempenho. O painelLeaves oferece vários modos de coloração da geometria renderizada:
- Colorir por
Quads: colore os triângulos incluídos em um “quad”. Os quads permitem representações de geometria mais compactas na memória e podem melhorar o desempenho. Um quad válido é exibido como dois tons de uma cor não cinza, enquanto os triângulos isolados são exibidos em cinza. Se quantidades significativas de geometria forem renderizadas em cinza, talvez seja conveniente executar um otimizador de buffer de índices ou garantir que a reutilização de vértices esteja conforme o esperado nos buffers de entrada. O GDK de outubro de 2023 introduziu um novo tipo de agrupamento de folhas em quads. Historicamente, todos os nós folha agrupados em quads eram rastreados em relação aos dois triângulos quando alcançados durante a travessia. Isso não acontece mais, pois agora podemos compartilhar dois triângulos em uma folha, mas ter referências separadas dos nós internos para esses triângulos específicos dentro da folha. Esses nós são sombreados com um padrão de pontos para diferenciá-los.Depth: colore os triângulos pela profundidade na hierarquia do BVH. Isso pode mostrar áreas de alta densidade ou árvores mal balanceadas.Opaque: colore os triângulos pelas configurações de opacidade. As instâncias em cinza não têm sinalizadores de opacidade definidos. As instâncias comD3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUEsão marcadas em vermelho. As instâncias comD3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUEsão marcadas em verde,D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUEem azul, e ambos os sinalizadores são marcados como verde+azul.Geometry Index: colore os triângulos aleatoriamente por D3D12_RAYTRACING_GEOMETRY_DESC. Isso ajuda a mostrar a partir de quantos componentes um BLAS foi criado.BLAS: colore os triângulos aleatoriamente por BLAS. Isso ajuda a mostrar onde a geometria exclusiva está sendo efetivamente reutilizada por meio de instanciação.Instance Mask: colore os triângulos pelo valor da máscara de instância. A cor depende da máscara de bits definida para essa instância.Instance: colore os triângulos aleatoriamente por instância. Isso ajuda a mostrar quando objetos grandes estão se sobrepondo e devem ser divididos em várias instâncias.SAH Cost: colore as instâncias de BLAS pelo custo de Surface-Area-Heuristic calculado. Essa é uma heurística comumente usada para o desempenho da travessia do BVH. Em geral, valores altos de SAH indicam BLASes mais lentos de percorrer, e valores baixos de SAH indicam BLASes mais rápidos de percorrer. Isso deve ser usado como uma visão aproximada da complexidade do objeto; no entanto, pode subestimar ou superestimar o custo real de percorrer um BLAS.BLAS Branch: colore os triângulos pela “ramificação” do BLAS em que estão contidos. O controle deslizanteBranch Root Levelaltera o nível da hierarquia a ser considerado como raiz. Por exemplo, definirBranch Root Levelcomo1mostrará o BLAS em (até) 4 cores, cada uma indicando uma ramificação filha do nó raiz. Selecionar um triângulo realçará a ramificação em que ele está contido e a desenhará sobre as outras ramificações. Esse modo é útil para investigar o comportamento de reajuste (refit) do BLAS. Se houver uma sobreposição significativa visível entre as ramificações de um BLAS, é possível que as posições reajustadas tenham divergido demais das posições de origem, e o desempenho da travessia será prejudicado.TLAS Branch: colore as instâncias pela “ramificação” do TLAS em que estão contidas. O comportamento corresponde ao modoBLAS Branch. Esse modo é útil para entender quedas bruscas de desempenho no seu ray tracing. Se os níveis superiores do TLAS tiverem uma sobreposição significativa entre ramificações, você poderá ver grandes alterações de desempenho ao cruzar os limites das ramificações. Considere dividir ou remover instâncias grandes que afetam os limites das ramificações, ou alterar os sinalizadores de build do TLAS e as opções de parâmetros estendidos.
- Mostrar somente:
- Essas opções permitem filtrar a geometria visível para algum subconjunto da cena, com base em várias propriedades. A maioria dos modos não tem opções adicionais; no entanto,
High SAH Cost Instancesusa o controle deslizanteMinimum SAHpara ajustar o limite a partir do qual mostrar instâncias com base no SAH do BLAS, eSelected TLAS Branchcompartilha o controle deslizanteBranch Root Levelcom os modos de coloraçãoBranch, para ajustar o nível raiz das ramificações.
- Essas opções permitem filtrar a geometria visível para algum subconjunto da cena, com base em várias propriedades. A maioria dos modos não tem opções adicionais; no entanto,
Screen-Space Heatmap oferece opções para exibir a complexidade da cena como um mapa de calor. Observe que, em cada caso, o mapa de calor é renderizado com um intervalo azul->verde->laranja->vermelho para custos baixos->altos.
Mode: alterna entre vários modos de renderização da sobreposição do mapa de calorRecomputed Opaque Iteration Count: renderiza uma sobreposição no espaço da tela mostrando o número de iterações realizadas pelos raios disparados a partir da perspectiva da câmera no visualizador de BVH. As contagens de iterações são calculadas pelo PIX, tratando toda a geometria como opaca e executando novamente o código de travessia. Isso pode subestimar as contagens de iterações por não executar o teste alfa em situações como conteúdo de folhagem.Maximum Non-Opaque Hit Count: renderiza uma sobreposição no espaço da tela mostrando o número de acertos não opacos encontrados antes da primeira geometria opaca. Isso fornece uma estimativa da “complexidade alfa” do conteúdo com ray tracing. Em áreas onde esse mapa de calor está quente, é possível que um raio precise executar muitas invocações de Any Hit Shader antes de encontrar um acerto real. Considere muitas instâncias de folhagem sobrepostas, em que um raio pode atingir continuamente seções transparentes da geometria das folhas.
Visibility: esse controle deslizante ajusta a opacidade da sobreposição no espaço da tela; em 0%, a sobreposição é desabilitada; em 100%, somente a sobreposição fica totalmente opaca e a geometria das folhas deixa de ser visível.Isolate to Selected: essa opção permite isolar o mapa de calor no espaço da tela para exibir somente os custos associados à instância selecionada e recortar o mapa de calor aos seus limites. Isso é útil para visualizar o custo de uma única instância sem ver os custos de outras instâncias encontradas ou dos nós pai do TLAS.
Visualize Hierarchy oferece opções para renderizar a hierarquia de nós do BVH ao redor da geometria das folhas.
Mode: alterna entre os modos de renderização da hierarquia.BLAS Hierarchy with Instance Bounds: renderiza as caixas delimitadoras internas que compõem a estrutura do BLAS da instância selecionada. Além disso, renderiza os limites da instância selecionada dentro do TLAS. Os limites da instância podem ser inflados além dos vértices da geometria devido às transformações da instância ou ao alinhamento ruim com a orientação do TLAS. Considere habilitar o k-DOP nos parâmetros de build estendidos: XDXR BVH Builders.TLAS Hierarchy: renderiza as caixas delimitadoras que compõem a estrutura do TLAS.Off: renderiza somente a geometria das folhas, sem visualizar a hierarquia de nós.
Level: esse controle deslizante modifica quantos níveis da hierarquia são exibidos.- No modo
TLAS Hierarchy, é a profundidade abaixo do nó raiz do TLAS. - No modo
BLAS Hierarchy, é a profundidade abaixo da raiz da hierarquia do BLAS selecionado no momento.
- No modo
Ray Path Heatmap oferece opções para exibir os caminhos dos raios percorridos durante o evento de ray tracing ao qual esse TLAS está vinculado.
Draw Rays: esse botão habilita a renderização dos dados de caminho dos raios no visualizador. Isso só está disponível em casos limitados.- Em um evento
DispatchRays, essa opção estará disponível e não exige nenhuma alteração no título antes da captura do PIX. - Em um
Dispatchque usa o XDXR Standalone Traversal, essa opção está disponível para títulos que usam uma versão do cabeçalho de travessia autônoma de março de 2023 ou posterior, mas requer uma pequena modificação no título.#define XDXR_ENABLE_INLINE_RAYLOG 1deve ser definido antes da inclusão do cabeçalho de travessia autônoma. Isso afetará o desempenho do ray tracing e só deve ser habilitado ao examinar especificamente o desempenho do ray tracing. Em vez de definir isso permanentemente no seu título, você pode gerar PDBs para a passagem de ray tracing e usar o edit-and-continue do PIX para adicionar esse sinalizador às opções do compilador enquanto examina o evento de ray tracing no PIX.
- Em eventos
Drawque usam o XDXR Standalone Traversal, essa opção não está disponível no momento. Prefira compute shaders, se possível.
- Em um evento
Mode: alterna entre vários modos de cálculo + exibição do mapa de calor dos raios.Recomputed Opaque Iterations: colore os raios pelo número de iterações de travessia. As contagens de iterações são calculadas pelo PIX, tratando toda a geometria como opaca e executando novamente o código de travessia. Isso pode subestimar as contagens de iterações por não executar o teste alfa em situações como conteúdo de folhagem.Recomputed Iterations to Original Hit Point: colore os raios pelo número de iterações de travessia. As contagens de iterações são calculadas pelo PIX, executando novamente o código de travessia e continuando até que o ponto de acerto original seja encontrado. Isso pode superestimar as contagens de iterações por não conhecer o valor original de MaxT definido durante a passagem de ray tracing.Solid Color: colore os raios em rosa sólido. Pode ser útil em casos em que é difícil ver os caminhos dos raios.
Length: modifica o comprimento exibido dos raios. Um valor de 100% desenha os raios até seus pontos finais originais; reduzir o comprimento pode ajudar a entender o caminho percorrido pelos raios.Depth Test: alterna se os raios são desenhados sobre a geometria da cena ou dentro dela. Desabilitar isso pode ajudar a encontrar raios em uma cena grande, onde os raios podem estar cercados por geometria.
Filter Displayed Rays permite filtrar os raios renderizados para examinar áreas problemáticas.
Origin: filtra os raios com base na posição de origem; esses controles deslizantes dividem a cena em grupos que podem ser filtrados.Dispatch: filtra os raios com base na ID de dispatch.Selected Instance: filtra os raios para mostrar somente aqueles que terminam na instância selecionada.Iteration Count: filtra os raios com base no número de iterações realizadas durante a travessia. Esse valor é recalculado pelo mesmo método do Ray Path Heatmap. Aumentar esse valor de filtro pode ajudar a encontrar os objetos ou caminhos mais caros percorridos no seu evento de ray tracing.
Modify TLAS é experimental e permite remover instâncias ou modificar sinalizadores de opacidade e recompilar o TLAS. As modificações neste painel afetam somente o BVH Viewer e não são refletidas em outros componentes do PIX, como as saídas de dispatch ou os tempos dos eventos. A seção Dispatch(Rays) Time (ms) no painel Info, no lado direito do BVH Viewer, é afetada por essas modificações e pode ser usada para criar o perfil das alterações no tempo de execução da GPU causadas por modificações de conteúdo.
Observe que, atualmente, essas modificações não podem ser usadas em combinação com o sistema Ray Path Heatmap.
BLAS:DeleteExclui todas as instâncias do BLAS selecionadoForce OpaqueMarca todas as instâncias do BLAS selecionado com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUEForce Non-OpaqueMarca todas as instâncias do BLAS selecionado com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
Instance:DeleteExclui a instância selecionadaForce OpaqueMarca a instância selecionada com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUEForce Non-OpaqueMarca a instância selecionada com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
All:Force OpaqueMarca todos os objetos da cena com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUEForce Non-OpaqueMarca todos os objetos da cena com D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
Apply Modifications: recompila o TLAS com as instâncias modificadas e atualiza os painéis BVH Viewer e Info.Revert Modifications: recompila o TLAS com as instâncias originais e atualiza os painéis BVH Viewer e Info.
Display on Console: copia a exibição atual do BVH para o dispositivo de saída do seu devkit.
