Partager via


énumération D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS (d3d12umddi.h)

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

Syntaxe

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
Générez la structure d’accélération de sorte qu’elle prenne en charge les futures mises à jour, via l’indicateur D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, au lieu de la reconstruction complète de l’application. Cette option peut entraîner une augmentation de la consommation de mémoire et des temps de génération, ainsi que des performances de traçage des rayons inférieures. Toutefois, les futures mises à jour 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
Permet de compacter la structure d’accélération en appelant CopyRaytracingAccelerationStructure avec le 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 une empreinte mémoire plus petite, pas plus grande que la création 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 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 traçage des rayons au détriment du temps de génération supplémentaire. Une règle approximative de pouce 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 de 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 des performances de traçage de rayons pour la vitesse de construction. Une règle de pouce approximative 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 de 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 des temps de traçage de rayons.

Il s’agit de l’orthogonal à l’indicateur de D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION et du compactage explicite de la structure d’accélération qu’il active. La combinaison des indicateurs peut signifier à la fois la structure d’accélération initiale ainsi que le résultat du compactage qu’il utilise moins de mémoire.
L’impact de l’utilisation de cet indicateur pour une build est reflétée dans le résultat de l’appel de GetRaytracingAccelerationStructurePrebuildInfo avant d’effectuer la génération pour récupérer les exigences de mémoire 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 structure d’accélération, plutôt que de générer à partir de zéro. Cela est plus rapide qu’une build complète, mais 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 de 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 ou non être défini, cela ne fait aucune différence, car les mises à jour continueront d’être autorisées. Les autres sélections d’indicateurs, à part D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE et 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 en 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 s’il est autrement cloné, la structure d’accélération d’origine doit avoir été produite de l’une de ces manières. Essentiellement, la structure d’accélération a dû être construite avec l’attente que les mises à jour puissent se produire.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1809
d’en-tête d3d12umddi.h