Partager via


énumération D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS (d3d12umddi.h)

Spécifie les indicateurs de génération de la structure d’accélération de suivi des rayons.

Syntax

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Constantes

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
Aucune option spécifiée pour la build de structure d’accélération.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Créez la structure d’accélération de telle sorte qu’elle prenne en charge les mises à jour futures, via l’indicateur D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, au lieu que l’application soit entièrement régénérée. Cette option peut entraîner une augmentation de la consommation de mémoire et des temps de génération, ainsi qu’une baisse des performances de suivi des rayons. Toutefois, les mises à jour futures doivent être plus rapides que la création de la structure d’accélération équivalente à partir de zéro.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Active l’option permettant de compacter la structure d’accélération en appelant CopyRaytracingAccelerationStructure en mode compact. Voir D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Cette option peut entraîner une augmentation de la consommation de mémoire et des temps de génération. Après le compactage futur, toutefois, la structure d’accélération résultante doit consommer un encombrement mémoire plus faible, pas plus grand que la construction de la structure d’accélération à partir de zéro.

Cet indicateur est compatible avec tous les autres indicateurs. Si elle est spécifiée dans le cadre d’une mise à jour de la structure d’accélération, la structure d’accélération source doit également avoir été générée avec cet indicateur.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Construisez une structure d’accélération de haute qualité qui optimise les performances de suivi des rayons au détriment d’un temps de génération supplémentaire. Une règle générale est que l’implémentation doit prendre environ 2 à 3 fois le temps de génération par défaut afin d’obtenir de meilleures performances de suivi.

Cet indicateur est recommandé pour la géométrie statique en particulier. Il est également compatible avec tous les autres indicateurs, à l’exception des D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Construisez une structure d’accélération de qualité inférieure, échangez les performances de traçage de rayons pour la vitesse de génération. Une règle générale est que l’implémentation doit prendre environ 1/2 à 1/3 du temps de génération par défaut à un sacrifice dans les performances de suivi.

Cet indicateur est compatible avec tous les autres indicateurs, à l’exception des D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Réduisez la quantité de mémoire de travail utilisée pendant la génération de la structure d’accélération, ainsi que la taille du résultat. Cette option peut entraîner une augmentation des temps de génération et/ou du temps de suivi des rayons.

Ceci est orthogonal par rapport à l’indicateur D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION et à la compaction de structure d’accélération explicite qu’il permet. La combinaison des indicateurs peut signifier à la fois que la structure d’accélération initiale et le résultat de son compactage utilise moins de mémoire.
L’impact de l’utilisation de cet indicateur pour une build se reflète dans le résultat de l’appel de GetRaytracingAccelerationStructurePrebuildInfo avant d’effectuer la build pour récupérer la mémoire requise pour la build.

Cet indicateur est compatible avec tous les autres indicateurs.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Effectuez une mise à jour de la structure d’accélération, plutôt que de créer à partir de zéro. Cette opération est plus rapide qu’une build complète, mais elle peut avoir un impact négatif sur les performances du suivi des rayons, en particulier si les positions des objets sous-jacents ont changé considérablement par rapport à la build d’origine de la structure d’accélération avant les mises à jour.

Si les adresses des structures d’accélération source et destination sont identiques, la mise à jour est effectuée sur place. Tout autre chevauchement des plages d’adresses de la source et de la destination n’est pas valide. Pour les sources et les destinations qui ne se chevauchent pas, la structure d’accélération source n’est pas modifiée. La mémoire requise pour la structure d’accélération de sortie est la même que dans la structure d’accélération d’entrée.

Cet indicateur est compatible avec tous les autres indicateurs. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE peut être défini ou non, cela n’a aucune différence, car les mises à jour continueront d’être autorisées. Les autres sélections d’indicateurs, à l’exception des D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE et des D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, doivent correspondre aux indicateurs de la structure d’accélération source.

Les mises à jour de la structure d’accélération peuvent être effectuées dans une succession illimitée. La structure d’accélération source doit avoir été créée avec D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE ou, si elle a été cloné, la structure d’accélération d’origine devait avoir été produite de l’une de ces manières. Essentiellement, la structure d’accélération devait avoir été construite en s’attendant à ce que des mises à jour puissent se produire.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809
En-tête d3d12umddi.h