Enumeración RAY_FLAG
Marcas pasadas a la función TraceRay para invalidar la transparencia, la selección y el comportamiento anticipado.
Syntax
enum RAY_FLAG : uint
{
RAY_FLAG_NONE = 0x00,
RAY_FLAG_FORCE_OPAQUE = 0x01,
RAY_FLAG_FORCE_NON_OPAQUE = 0x02,
RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04,
RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08,
RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
RAY_FLAG_CULL_OPAQUE = 0x40,
RAY_FLAG_CULL_NON_OPAQUE = 0x80,
RAY_FLAG_SKIP_TRIANGLES = 0x100,
RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
};
Constantes
-
RAY_FLAG_NONE
-
No hay opciones seleccionadas.
-
RAY_FLAG_FORCE_OPAQUE
-
Todas las intersecciones primitivas de rayos encontradas en un raytrace se tratan como opacos. Por lo tanto, ningún sombreador de aciertos se ejecutará independientemente de si la geometría de aciertos especifica D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e independientemente de las marcas de instancia de la instancia a la que se ha alcanzado.
Esta marca es mutuamente excluyente con RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE y RAY_FLAG_CULL_NON_OPAQUE.
-
RAY_FLAG_FORCE_NON_OPAQUE
-
Todas las intersecciones primitivas de rayos encontradas en un raytrace se tratan como no opacos. Por lo tanto, los sombreadores de aciertos, si están presentes, se ejecutarán independientemente de si la geometría de aciertos especifica D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e independientemente de las marcas de instancia de la instancia a la que se ha alcanzado. Esta marca es mutuamente excluyente con RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE y RAY_FLAG_CULL_NON_OPAQUE.
-
RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH
-
La primera intersección primitiva de rayos encontrada en un raytrace hace que se llame automáticamente a AcceptHitAndEndSearch inmediatamente después del sombreador de golpes, incluido si no hay ningún sombreador de aciertos.
La única excepción es cuando el sombreador de posicionamiento anterior llama a IgnoreHit, en cuyo caso el rayo continúa sin verse afectado de modo que el siguiente golpe se convierta en otro candidato para ser el primer acierto. Para que se aplique esta excepción, el sombreador de aciertos debe ejecutarse realmente. Por lo tanto, si se omite cualquier sombreador de aciertos porque el hit se trata como opaco (por ejemplo, debido a RAY_FLAG_FORCE_OPAQUE o D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE o D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE se establece), se llama a AcceptHitAndEndSearch .
Si hay un sombreador de aciertos más cercano en el primer acierto, se invoca a menos que RAY_FLAG_SKIP_CLOSEST_HIT_SHADER también esté presente. El golpe que se encontró se considera "más cercano", aunque otros posibles aciertos que podrían estar más cerca del rayo pueden no haberse visitado.
Un uso típico de esta marca es para sombras, donde solo es necesario encontrar un solo golpe.
-
RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
-
Incluso si se ha confirmado al menos un golpe y el grupo de aciertos para el hit más cercano contiene un sombreador de aciertos más cercano, omita la ejecución de ese sombreador.
-
RAY_FLAG_CULL_BACK_FACING_TRIANGLES
-
Permite la selección de triángulos orientados hacia atrás. Consulte D3D12_RAYTRACING_INSTANCE_FLAGS para seleccionar qué triángulos están orientados hacia atrás, por instancia.
En las instancias que especifican D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, esta marca no tiene ningún efecto.
En los tipos de geometría distintos de D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, esta marca no tiene ningún efecto.
Esta marca es mutuamente excluyente con RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.
-
RAY_FLAG_CULL_FRONT_FACING_TRIANGLES
-
Permite la selección de triángulos frontales. Consulte D3D12_RAYTRACING_INSTANCE_FLAGS para seleccionar qué triángulos están orientados hacia atrás, por instancia.
En las instancias que especifican D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, esta marca no tiene ningún efecto.
En los tipos de geometría distintos de D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, esta marca no tiene ningún efecto.
Esta marca es mutuamente excluyente con RAY_FLAG_CULL_BACK_FACING_TRIANGLES.
-
RAY_FLAG_CULL_OPAQUE
-
Selecciona todos los primitivos que se consideran opacos en función de sus marcas de geometría e instancia.
Esta marca es mutuamente excluyente con RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE y RAY_FLAG_CULL_NON_OPAQUE.
-
RAY_FLAG_CULL_NON_OPAQUE
-
Selecciona todos los primitivos que se consideran no opacos en función de sus marcas de geometría e instancia.
Esta marca es mutuamente excluyente con RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE y RAY_FLAG_CULL_OPAQUE.
Requisitos
Consulte también