enumeración D3D12_RAY_FLAGS (d3d12.h)
Marcas pasadas a la función TraceRay para invalidar la transparencia, la selección y el comportamiento anticipado.
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 No hay opciones seleccionadas. |
D3D12_RAY_FLAG_FORCE_OPAQUE Valor: 0x1 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. |
D3D12_RAY_FLAG_FORCE_NON_OPAQUE Valor: 0x2 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. |
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH Valor: 0x4 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. |
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER Valor: 0x8 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. |
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES Valor: 0x10 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. |
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES Valor: 0x20 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_FRONT_FACING_TRIANGLES. |
D3D12_RAY_FLAG_CULL_OPAQUE Valor: 0x40 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. |
D3D12_RAY_FLAG_CULL_NON_OPAQUE Valor: 0x80 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
Encabezado | d3d12.h |