Partager via


RAY_FLAG, énumeration

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

Syntaxe

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

Aucune option sélectionnée.

RAY_FLAG_FORCE_OPAQUE

Toutes les intersections ray-primitives rencontrées dans un raytrace sont traitées comme opaques. Par conséquent, aucun nuanceur de correspondance 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 avec RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE.

RAY_FLAG_FORCE_NON_OPAQUE

Toutes les intersections ray-primitives rencontrées dans un raytrace sont traitées comme non opaques. Ainsi, tous les nuanceurs de correspondance, s’ils sont présents, sont exécutés indépendamment du fait 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’exclue mutuellement avec RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE.

RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH

La première intersection ray-primitive rencontrée dans un raytrace entraîne automatiquement l’appel d’AcceptHitAndEndSearch immédiatement après le nuanceur de correspondance, y compris s’il n’y a aucun nuanceur de correspondance.

La seule exception est lorsque le nuanceur de correspondance 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 accès. Pour que cette exception s’applique, le nuanceur d’accès doit être exécuté. Ainsi, si le nuanceur de correspondance est ignoré parce que l’accès est traité comme opaque (par exemple, en raison de RAY_FLAG_FORCE_OPAQUE, de D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE ou de D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE défini), AcceptHitAndEndSearch est appelé.

Si un nuanceur de correspondance le plus proche est présent au premier accès, il est appelé, sauf si RAY_FLAG_SKIP_CLOSEST_HIT_SHADER est également présent. Le seul coup 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é.

RAY_FLAG_SKIP_CLOSEST_HIT_SHADER

Même si au moins une correspondance a été validée et que le groupe de correspondances pour le résultat le plus proche contient un nuanceur de correspondance le plus proche, ignorez l’exécution de ce nuanceur.

RAY_FLAG_CULL_BACK_FACING_TRIANGLES

Permet l’élimination des triangles orientés vers l’arrière. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner les triangles qui 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 geometry autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet.

Cet indicateur s’exclut mutuellement de RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.

RAY_FLAG_CULL_FRONT_FACING_TRIANGLES

Permet l’élimination des triangles face à l’avant. Consultez D3D12_RAYTRACING_INSTANCE_FLAGS pour sélectionner les triangles qui 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 geometry autres que D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, cet indicateur n’a aucun effet.

Cet indicateur s’exclut mutuellement de RAY_FLAG_CULL_BACK_FACING_TRIANGLES.

RAY_FLAG_CULL_OPAQUE

Supprime toutes les primitives considérées comme opaques en fonction de leur géométrie et de leurs indicateurs instance.

Cet indicateur s’exclut mutuellement avec RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE et RAY_FLAG_CULL_NON_OPAQUE.

RAY_FLAG_CULL_NON_OPAQUE

Supprime toutes les primitives qui sont considérées comme non opaques en fonction de leur géométrie et de leurs indicateurs instance.

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

Spécifications

Voir aussi

Référence HLSL Direct3D 12 Raytracing