D3D12_RAY_FLAGS enumeração (d3d12.h)
Sinalizadores passados para a função TraceRay para substituir a transparência, o abate e o comportamento de início.
Syntax
typedef enum D3D12_RAY_FLAGS {
D3D12_RAY_FLAG_NONE = 0,
D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
D3D12_RAY_FLAG_SKIP_TRIANGLES,
D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES
} ;
Constantes
D3D12_RAY_FLAG_NONE Valor: 0 Nenhuma opção selecionada. |
D3D12_RAY_FLAG_FORCE_OPAQUE Valor: 0x1 Todas as interseções ray-primitive encontradas em um raytrace são tratadas como opacas. Portanto, nenhum sombreador de ocorrência será executado independentemente de a geometria de ocorrência especificar ou não D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e independentemente dos sinalizadores de instância na instância que foi atingida. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_FORCE_NON_OPAQUE Valor: 0x2 Todas as interseções ray-primitive encontradas em um raytrace são tratadas como não opacas. Portanto, todos os sombreadores de ocorrência, se presentes, serão executados independentemente de a geometria de ocorrência especificar ou não D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e independentemente dos sinalizadores de instância na instância que foi atingida. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH Valor: 0x4 A primeira interseção ray-primitive encontrada em um raytrace automaticamente faz com que AcceptHitAndEndSearch seja chamado imediatamente após o sombreador de qualquer ocorrência, incluindo se não houver nenhum sombreador de ocorrência. A única exceção é quando o sombreador de ocorrência anterior chama IgnoreHit, nesse caso, o raio continua não afetado de modo que o próximo hit se torne outro candidato a ser o primeiro hit. Para que essa exceção seja aplicada, o sombreador de qualquer ocorrência precisa ser realmente executado. Portanto, se o sombreador de qualquer ocorrência for ignorado porque o hit é tratado como opaco (por exemplo, devido a RAY_FLAG_FORCE_OPAQUE ou D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE ou D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE sendo definido), AcceptHitAndEndSearch é chamado. Se um sombreador de ocorrência mais próximo estiver presente no primeiro clique, ele será invocado, a menos que RAY_FLAG_SKIP_CLOSEST_HIT_SHADER também esteja presente. O único golpe encontrado é considerado "mais próximo", mesmo que outros possíveis ataques que possam estar mais próximos do raio possam não ter sido visitados. Um uso típico para esse sinalizador é para sombras, em que apenas um único clique precisa ser encontrado. |
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER Valor: 0x8 Mesmo que pelo menos um hit tenha sido confirmado, e o grupo de ocorrências do hit mais próximo contiver um sombreador de clique mais próximo, ignore a execução desse sombreador. |
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES Valor: 0x10 Habilita o abate de triângulos voltados para trás. Consulte D3D12_RAYTRACING_INSTANCE_FLAGS para selecionar quais triângulos estão voltados para trás, por instância. Em instâncias que especificam D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, esse sinalizador não tem efeito. Em tipos de geometria diferentes de D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, esse sinalizador não tem efeito. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES Valor: 0x20 Habilita o abate de triângulos frontais. Consulte D3D12_RAYTRACING_INSTANCE_FLAGS para selecionar quais triângulos estão voltados para trás, por instância. Em instâncias que especificam D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, esse sinalizador não tem efeito. Em tipos de geometria diferentes de D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, esse sinalizador não tem efeito. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
D3D12_RAY_FLAG_CULL_OPAQUE Valor: 0x40 Elimina todos os primitivos que são considerados opacos com base em seus sinalizadores de geometria e instância. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_CULL_NON_OPAQUE Valor: 0x80 Elimina todos os primitivos que são considerados não opacos com base em seus sinalizadores de geometria e instância. Esse sinalizador é mutuamente exclusivo com RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE e RAY_FLAG_CULL_OPAQUE. |
Requisitos
Cabeçalho | d3d12.h |