Partager via


énumération D3D12_RAY_FLAGS (d3d12.h)

Indicateurs passés à la fonction TraceRay pour remplacer la transparence, l’élimination et le comportement précoce.

Syntaxe

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
Valeur : 0
Aucune option sélectionnée.
D3D12_RAY_FLAG_FORCE_OPAQUE
Valeur : 0x1
Toutes les intersections ray-primitives rencontrées dans un raytrace sont traitées comme opaques. Par conséquent, aucun nuanceur d’accès ne sera exécuté, que la géométrie d’accès spécifie ou non D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE, et quels que soient les indicateurs de instance sur le instance qui a été atteint.

Cet indicateur s’exclut mutuellement des RAY_FLAG_FORCE_NON_OPAQUE, des RAY_FLAG_CULL_OPAQUE et des RAY_FLAG_CULL_NON_OPAQUE.
D3D12_RAY_FLAG_FORCE_NON_OPAQUE
Valeur : 0x2
Toutes les intersections ray-primitives rencontrées dans un raytrace sont traitées comme non opaques. Ainsi, tous les nuanceurs d’accès, s’ils sont présents, seront exécutés, que la géométrie d’accès spécifie ou non D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE, et quels que soient les indicateurs de instance sur le instance qui a été atteint. 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
Valeur : 0x4
La première intersection ray-primitive rencontrée dans un raytrace entraîne automatiquement l’appel d’AcceptHitAndEndSearch immédiatement après le nuanceur d’accès, y compris s’il n’y a pas de nuanceur d’accès.

La seule exception est lorsque le nuanceur d’accès précédent appelle IgnoreHit, auquel cas le rayon continue sans être affecté, de sorte que le résultat suivant devient un autre candidat pour être le premier succès. Pour que cette exception s’applique, le nuanceur d’accès doit être exécuté. Par conséquent, si le nuanceur d’accès est ignoré parce qu’il est traité comme opaque (par exemple, en raison de RAY_FLAG_FORCE_OPAQUE ou de D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE ou D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE), acceptHitAndEndSearch est appelé.

Si un nuanceur d’accès le plus proche est présent au premier résultat, il est appelé, sauf si RAY_FLAG_SKIP_CLOSEST_HIT_SHADER est également présent. Le seul coup qui a été trouvé est considéré comme « le plus proche », même si d’autres coups potentiels qui pourraient être plus proches sur le rayon n’ont peut-être pas été visités.

Une utilisation classique de cet indicateur est pour les ombres, où un seul accès doit être trouvé.
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
Valeur : 0x8
Même si au moins un hit a été commis et que le groupe de hits le plus proche contient un nuanceur de frappe le plus proche, ignorez l’exécution de ce nuanceur.
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES
Valeur : 0x10
Permet l’élimination des triangles orientés vers l’arrière. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner les triangles 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 geometry autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet.

Cet indicateur s’exclue mutuellement avec RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES
Valeur : 0x20
Permet l’élimination des triangles avant. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner les triangles 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 geometry autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet.

Cet indicateur s’exclue mutuellement avec RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.
D3D12_RAY_FLAG_CULL_OPAQUE
Valeur : 0x40
Supprime toutes les primitives considérées comme opaques en fonction de leur géométrie et de leurs indicateurs de instance.

Cet indicateur s’exclut mutuellement des RAY_FLAG_FORCE_OPAQUE, des RAY_FLAG_FORCE_NON_OPAQUE et des RAY_FLAG_CULL_NON_OPAQUE.
D3D12_RAY_FLAG_CULL_NON_OPAQUE
Valeur : 0x80
Supprime toutes les primitives qui sont considérées comme non opaques en fonction de leur géométrie et de leurs indicateurs de instance.

Cet indicateur s’exclut mutuellement des RAY_FLAG_FORCE_OPAQUE, des RAY_FLAG_FORCE_NON_OPAQUE et des RAY_FLAG_CULL_OPAQUE.

Spécifications

   
En-tête d3d12.h