Share via


enumeração D3D12_RAYTRACING_GEOMETRY_FLAGS (d3d12.h)

Especifica sinalizadores para geometria de raytracing em uma estrutura D3D12_RAYTRACING_GEOMETRY_DESC .

Syntax

typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
  D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
  D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
  D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
} ;

Constantes

 
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE
Valor: 0
Nenhuma opção especificada.
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Valor: 0x1
Quando os raios encontram essa geometria, a geometria atua como se nenhum sombreador de ocorrência estivesse presente. É recomendável que os aplicativos usem esse sinalizador liberalmente, pois ele pode habilitar otimizações importantes de processamento de raios. Observe que esse comportamento pode ser substituído por instância com D3D12_RAYTRACING_INSTANCE_FLAGS e por raio usando sinalizadores de raio no TraceRay.
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
Valor: 0x2
Por padrão, o sistema é livre para disparar um sombreador de qualquer ocorrência mais de uma vez para uma determinada interseção ray-primitive. Essa flexibilidade ajuda a melhorar a eficiência de passagem das estruturas de aceleração em determinados casos. Por exemplo, se a estrutura de aceleração for implementada internamente com volumes delimitadores, a implementação poderá achar benéfico armazenar triângulos relativamente longos em várias caixas delimitadoras em vez de uma caixa única maior. No entanto, alguns casos de uso do aplicativo exigem que as interseções sejam relatadas ao sombreador de qualquer ocorrência no máximo uma vez. Esse sinalizador permite essa garantia para a geometria fornecida, potencialmente com algum impacto no desempenho.

Esse sinalizador se aplica a todos os tipos de geometria.

Requisitos

Requisito Valor
Cabeçalho d3d12.h