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 de l’instance touchée. Cet indicateur est mutuellement exclusif 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 de l’instance touchée. Cet indicateur est mutuellement exclusif 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 provoque automatiquement l’appel de AcceptHitAndEndSearch immédiatement après le nuanceur any hit, y compris en l’absence de nuanceur any hit. La seule exception est lorsque le nuanceur any hit précédent appelle IgnoreHit, auquel cas le rayon continue sans être affecté, de sorte que l’intersection suivante devient une autre candidate pour être la première. 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’intersection est traitée comme opaque (par exemple 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 lors de la première intersection, il est appelé, sauf si RAY_FLAG_SKIP_CLOSEST_HIT_SHADER est également présent. L’unique intersection trouvée est considérée comme la « plus proche », même si d’autres intersections potentielles plus proches sur le rayon n’ont peut-être pas été visitées. Cet indicateur est généralement utilisé pour les ombres, où une seule intersection doit être trouvée. |
| D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER | Même si au moins une intersection a été validée et que le groupe d’intersections de l’intersection la plus proche contient un nuanceur closest hit, l’exécution de ce nuanceur est ignorée. |
| 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, par instance, les triangles orientés vers l’arrière. 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 est mutuellement exclusif 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, par instance, les triangles orientés vers l’arrière. 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 est mutuellement exclusif 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 est mutuellement exclusif 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 est mutuellement exclusif 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
