Compartilhar via


D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS enumeração (d3d12umddi.h)

Especifica os sinalizadores de build da estrutura de aceleração de rastreamento de raios.

Syntax

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Constantes

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
Nenhuma opção especificada para o build da estrutura de aceleração.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Crie a estrutura de aceleração de modo que ela dê suporte a atualizações futuras, por meio do sinalizador D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, em vez de o aplicativo precisar recompilar totalmente. Essa opção pode resultar em maior consumo de memória e tempos de build e menor desempenho de rastreamento de raios. No entanto, as atualizações futuras devem ser mais rápidas do que criar a estrutura de aceleração equivalente do zero.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Habilita a opção para compactar a estrutura de aceleração chamando CopyRaytracingAccelerationStructure com o modo compacto. Confira D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Essa opção pode resultar em maior consumo de memória e tempos de build. Após a compactação futura, no entanto, a estrutura de aceleração resultante deve consumir um volume de memória menor, não maior do que criar a estrutura de aceleração do zero.

Esse sinalizador é compatível com todos os outros sinalizadores. Se especificado como parte de uma atualização de estrutura de aceleração, a estrutura de aceleração de origem também deverá ter sido criada com esse sinalizador.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Construa uma estrutura de aceleração de alta qualidade que maximize o desempenho do rastreamento de raios em detrimento do tempo de build adicional. Uma regra geral é que a implementação deve levar cerca de 2 a 3 vezes o tempo de build padrão para obter um melhor desempenho de rastreamento.

Esse sinalizador é recomendado para geometria estática em particular. Ele também é compatível com todos os outros sinalizadores, exceto para D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Construa uma estrutura de aceleração de qualidade inferior, negociando o desempenho de rastreamento de raios para velocidade de build. Uma regra geral é que a implementação deve levar cerca de 1/2 a 1/3 do tempo de compilação padrão em um sacrifício no desempenho de rastreamento.

Esse sinalizador é compatível com todos os outros sinalizadores, exceto para D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Minimize a quantidade de memória de rascunho usada durante o build da estrutura de aceleração, bem como o tamanho do resultado. Essa opção pode resultar em tempos de build maiores e/ou tempos de rastreamento de raios.

Isso é ortogonal para o sinalizador D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION e a compactação explícita da estrutura de aceleração que ele habilita. Combinar os sinalizadores pode significar a estrutura de aceleração inicial, bem como o resultado da compactação, que usa menos memória.
O impacto do uso desse sinalizador para um build é refletido no resultado da chamada de GetRaytracingAccelerationStructurePrebuildInfo antes de fazer o build para recuperar os requisitos de memória para o build.

Esse sinalizador é compatível com todos os outros sinalizadores.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Execute uma atualização de estrutura de aceleração, em vez de compilar do zero. Isso é mais rápido do que um build completo, mas pode afetar negativamente o desempenho do rastreamento de raios, especialmente se as posições dos objetos subjacentes tiverem sido alteradas significativamente do build original da estrutura de aceleração antes das atualizações.

Se os endereços das estruturas de aceleração de origem e destino forem idênticos, a atualização será executada in-loco. Qualquer outra sobreposição de intervalos de endereços da origem e do destino é inválida. Para origem e destinos não sobrepostos, a estrutura de aceleração de origem não é modificada. O requisito de memória para a estrutura de aceleração de saída é o mesmo que na estrutura de aceleração de entrada.

Esse sinalizador é compatível com todos os outros sinalizadores. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE pode ou não ser definido, não faz diferença porque as atualizações continuarão a ser permitidas. As outras seleções de sinalizadores, além de D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE e D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, devem corresponder aos sinalizadores na estrutura de aceleração de origem.

As atualizações da estrutura de aceleração podem ser executadas em sucessão ilimitada. A estrutura de aceleração de origem deve ter sido criada com D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE ou, se clonada de outra forma, a estrutura de aceleração de origem deve ter sido produzida de uma dessas maneiras. Essencialmente, a estrutura de aceleração precisava ter sido construída com a expectativa de que as atualizações possam ocorrer.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1809
Cabeçalho d3d12umddi.h