Pular para o conteúdo principal
O conjunto estendido de parâmetros para builds em lote.

Sintaxe

Membros

Type
Tipo: D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_SUBOBJECT_TYPE
Esse valor será D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_SUBOBJECT_TYPE_PARAMS3. NumExtraElementsForInstanceSplitting
Tipo: UINT
Padrões do driver:
  1. floor(totalInstanceCount * 0.35f) (D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE)
    1. 0 (D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY)
    2. 0 (D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE)
  2. 0 (todos os outros sinalizadores de build do TLAS)
Valores esperados:
  1. 0xFFFFFFFF (usar o padrão do driver)
  2. [0, totalInstanceCount * 15]
Esse valor indica o número de instâncias adicionais a serem alocadas na memória do TLAS, que o builder do TLAS pode utilizar para dividir nós de BLAS e melhorar o desempenho da travessia. Cada instância pode ser dividida em 4 ou 16 partes, expandindo o primeiro ou o segundo nível da árvore. Isso significa que há um limite máximo de 15 instâncias “extras” necessárias para dividir uma instância em 16 partes, além da alocação original para uma única instância. Isso afeta tanto a memória do TLAS quanto o tamanho de scratch, que geralmente são pequenos, bem como os tempos de build do TLAS. Se o tempo de build for uma preocupação maior do que o tempo de travessia, considere usar D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD ou desabilitar manualmente a divisão de instâncias usando NumExtraElementsForInstanceSplitting = 0. InstanceSplit16Fraction
Tipo: float
Padrões do driver:
  1. 0.2f (todos os sinalizadores de build do TLAS)
Valores esperados:
  1. -1.0f (usar o padrão do driver)
  2. [0.0f, 1.0f]
Esse valor modifica o comportamento de NumExtraElementsForInstanceSplitting. Defina-o com um valor entre 0.0f e 1.0f para controlar a porcentagem de NumExtraElementsForInstanceSplitting usada para dividir BLASes em 16 partes em vez de 4 partes. Por exemplo, definir InstanceSplit16Fraction = 1.0f dedicará todo o orçamento à divisão de objetos grandes/esparsos em 16 partes, mas afetará um número total menor de BLASes. Definir um valor mais alto pode ser útil em casos como uma cena que contém várias partes grandes de terreno e muitos objetos menores. Definir um valor menor pode ser útil em uma cena com muitos objetos de tamanho semelhante que se sobrepõem mutuamente. IsolateSARatio
Tipo: float
Padrões do driver:
  1. 0.75f (todos os sinalizadores de build do TLAS)
Valores esperados:
  1. 0.0f (usar o padrão do driver)
  2. (-1.0f, 0.0f) (ordenar os objetos primeiro)
  3. (0.0f, 1.0f) (ordenar os objetos por último)
Esse valor permite “isolar” objetos no TLAS cuja área de superfície seja maior do que uma proporção especificada da área de superfície total da cena. Esses objetos são movidos para um branch separado, de modo a manter limites mais justos para os outros branches. O sinal desse valor determina se os objetos são ordenados antes ou depois dos outros branches na memória, afetando a ordem de travessia para branches sobrepostos. Não é recomendável combinar essa opção com o Treelet Reordering (incluído por padrão no modo FAST_TRACE), pois o Treelet Reordering será executado após o isolamento de branches e alterará a hierarquia.

Comentários

Use D3D12XboxMakeDefault_D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3 para definir esta struct com valores padrão antes de substituir os membros escolhidos. Não inicialize esta struct com zeros. Ao usar parâmetros estendidos, ID3D12Device8::GetRaytracingAccelerationStructurePrebuildInfoX deve ser usado em vez de GetRaytracingAccelerationStructurePrebuildInfo. Os tamanhos de memória ou de scratch do BVH podem ser diferentes e podem resultar em corrupção de heap e travamentos da GPU se não forem alocados corretamente. Confira os exemplos de uso em BuildRaytracingAccelerationStructureBatched2X.

Requisitos

Cabeçalho: d3d12_xs.h
Plataformas com suporte: consoles XBOX Series

Confira também

D3D12XboxMakeDefault_D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3
BuildRaytracingAccelerationStructureBatched2X
d3d12_xs
Última modificação em 6 de outubro de 2026