Compartilhar via


D3D12DDI_RAYTRACING_INSTANCE_FLAGS enumeração (d3d12umddi.h)

Sinalizar opções ao gerar dados de instância na CPU para carregar na GPU, durante a compilação da estrutura de aceleração de rastreamento de raios.

Syntax

typedef enum D3D12DDI_RAYTRACING_INSTANCE_FLAGS {
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_NONE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
} ;

Constantes

 
D3D12DDI_RAYTRACING_INSTANCE_FLAG_NONE
Nenhuma opção especificada.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE
Desabilita o abate para esta instância. Os sinalizadores de enumeração D3D12DDI_CULL_MODE D3D12DDI_CULL_MODE_FRONT e D3D12DDI_CULL_MODE_BACK não terão efeito sobre essa instância.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE
Esse sinalizador inverte os voltados para frente e para trás, o que é útil se, por exemplo, a ordem de enrolamento natural do aplicativo for diferente do padrão.
Por padrão, um triângulo será voltado para a frente se seus vértices aparecerem no sentido horário da origem do raio e voltados para trás se seus vértices aparecerem no sentido anti-horário da origem do raio, no espaço do objeto em um sistema de coordenadas esquerdo.
Como essas regras de direção sinuosa são definidas no espaço do objeto, elas não são afetadas por transformações de instância. Por exemplo, uma matriz de transformação de instância com determinante negativo (por exemplo, espelhamento de alguma geometria), não altera o voltado para os triângulos dentro da instância. Transformações por geometria, por outro lado, (definidas em D3D12DDI_RAYTRACING_GEOMETRY_DESC_0054), são combinadas com os dados de vértice associados no espaço do objeto, de modo que uma matriz determinante negativa lá faz o triângulo inverter sinuoso
D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE
A instância atuará como se o sinalizador D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE da enumeração D3D12DDI_RAYTRACING_GEOMETRY_FLAGS tivesse sido especificado para todas as geometrias na estrutura de aceleração de nível inferior referenciada pela instância.

Observe que esse comportamento pode ser substituído pelo sinalizador de raio D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE. Esse sinalizador é mutuamente exclusivo do sinalizador D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
A instância atuará como se o sinalizador D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE da enumeração D3D12DDI_RAYTRACING_GEOMETRY_FLAGS não tivesse sido especificado para nenhuma das geometrias na estrutura de aceleração de nível inferior referenciada pela instância.

Observe que esse comportamento pode ser substituído pelo sinalizador de raio D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE. Esse sinalizador é mutuamente exclusivo do sinalizador D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE.

Comentários

Essa enumeração é usada na estrutura D3D12DDI_RAYTRACING_INSTANCE_DESC_0054 para especificar uma opção a ser aplicada à instância.

Requisitos

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