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 dê suporte a atualizações futuras, por meio do sinalizador D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, em vez de o aplicativo ter que recompilar completamente. 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 de compactar a estrutura de aceleração chamando CopyRaytracingAccelerationStructure com o modo compacto. Veja 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 construir a estrutura de aceleração do zero.

Esse sinalizador é compatível com todos os outros sinalizadores. Se especificada como parte de uma atualização da estrutura de aceleração, a estrutura de aceleração de origem também deve 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 do rastreamento de raios para a 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 zero usada durante a compilação 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 compactação explícita da estrutura de aceleração que ela habilita. Combinar os sinalizadores pode significar tanto a estrutura de aceleração inicial quanto o resultado da compactação que ela usa menos memória.
O impacto do uso desse sinalizador para um build é refletido no resultado de chamar 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 da estrutura de aceleração, em vez de criar 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 mudado 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 destinos e origem não sobrepostas, 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 tinha que ter sido construída com a expectativa de que as atualizações possam ocorrer.

Requisitos

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