Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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_NONEValeur : 0 Aucune option sélectionnée. |
D3D12_RAY_FLAG_FORCE_OPAQUEValeur : 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_OPAQUEValeur : 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_SEARCHValeur : 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_SHADERValeur : 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_TRIANGLESValeur : 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_TRIANGLESValeur : 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_OPAQUEValeur : 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_OPAQUEValeur : 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 |