Syntaxe
typedef enum D3D12_RAY_FLAGS
{
D3D12_RAY_FLAG_NONE = 0x00,
D3D12_RAY_FLAG_FORCE_OPAQUE = 0x01,
D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x02,
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04,
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08,
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,
D3D12XBOX_RAY_FLAG_COHERENT_RAYS_HINT = 0x1000,
} D3D12_RAY_FLAGS
Constantes
| Constante | Description |
|---|---|
| D3D12_RAY_FLAG_NONE | Aucune option sélectionnée. |
| D3D12_RAY_FLAG_FORCE_OPAQUE | Toutes les intersections rayon-primitive rencontrées lors d’un lancer de rayons sont traitées comme opaques. Aucun nuanceur any hit n’est donc exécuté, que la géométrie touchée spécifie ou non D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE, et quels que soient les indicateurs d’instance de l’instance touchée. Cet indicateur s’exclut mutuellement avec RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE. |
| D3D12_RAY_FLAG_FORCE_NON_OPAQUE | Toutes les intersections rayon-primitive rencontrées lors d’un lancer de rayons sont traitées comme non opaques. Les nuanceurs any hit, s’ils sont présents, sont donc exécutés, que la géométrie touchée spécifie ou non D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE, et quels que soient les indicateurs d’instance de l’instance touchée. Cet indicateur s’exclut mutuellement avec RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE. |
| D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH | La première intersection rayon-primitive rencontrée lors d’un lancer de rayons entraîne automatiquement l’appel de AcceptHitAndEndSearch immédiatement après le nuanceur any hit, y compris s’il n’y a aucun nuanceur any hit. La seule exception se produit lorsque le nuanceur any hit précédent appelle IgnoreHit, auquel cas le rayon poursuit sa course sans être affecté, de sorte que l’impact suivant devient un autre candidat pour être le premier impact. Pour que cette exception s’applique, le nuanceur any hit doit réellement être exécuté. Ainsi, si le nuanceur any hit est ignoré parce que l’impact est traité comme opaque (p. ex. parce que RAY_FLAG_FORCE_OPAQUE, D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE ou D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE est défini), AcceptHitAndEndSearch est appelé. Si un nuanceur closest hit est présent au premier impact, il est invoqué, sauf si RAY_FLAG_SKIP_CLOSEST_HIT_SHADER est également présent. Le seul impact trouvé est considéré comme le « plus proche », même si d’autres impacts potentiels plus proches sur le rayon n’ont peut-être pas été visités. Une utilisation typique de cet indicateur concerne les ombres, pour lesquelles un seul impact doit être trouvé. |
| D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER | Même si au moins un impact a été validé et que le groupe d’impact du plus proche impact contient un nuanceur closest hit, ignore l’exécution de ce nuanceur. |
| D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES | Active l’élimination des triangles orientés vers l’arrière. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner quels triangles sont orientés vers l’arrière, par instance. Sur les instances qui spécifient D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, cet indicateur n’a aucun effet. Sur les types de géométrie autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet. Cet indicateur s’exclut mutuellement avec RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
| D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES | Active l’élimination des triangles orientés vers l’avant. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner quels triangles sont orientés vers l’arrière, par instance. Sur les instances qui spécifient D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, cet indicateur n’a aucun effet. Sur les types de géométrie autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet. Cet indicateur s’exclut mutuellement avec RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
| D3D12_RAY_FLAG_CULL_OPAQUE | Élimine toutes les primitives considérées comme opaques en fonction de leurs indicateurs de géométrie et d’instance. Cet indicateur s’exclut mutuellement avec RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE. |
| D3D12_RAY_FLAG_CULL_NON_OPAQUE | Élimine toutes les primitives considérées comme non opaques en fonction de leurs indicateurs de géométrie et d’instance. Cet indicateur s’exclut mutuellement avec RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE et RAY_FLAG_CULL_OPAQUE. |
| D3D12XBOX_RAY_FLAG_COHERENT_RAYS_HINT | Indique au système de parcours que les rayons de cette distribution seront cohérents entre eux. Peut rendre le parcours légèrement plus efficace. |
Configuration requise
En-tête : d3d12_xs.hPlateformes prises en charge : XBOX Series X|S
