Syntaxe
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
{
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x00,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x01,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x02,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x04,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x08,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_DEHYDRATE = 0x40000000,
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
Constantes
| Constante | Description |
|---|---|
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE | Aucune option n’est spécifiée pour la génération de la structure d’accélération. |
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE | Génère la structure d’accélération de manière à ce 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 doive regénérer entièrement la structure. Cette option peut entraîner une consommation de mémoire et des temps de génération accrus, ainsi que des performances de lancer de rayons inférieures. Les mises à jour futures doivent cependant être plus rapides que la génération de la structure d’accélération équivalente à partir de zéro. Cet indicateur ne peut être défini que lors d’une génération initiale de structure d’accélération, ou lors d’une mise à jour dont la structure d’accélération source a spécifié D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE. En d’autres termes, une fois qu’une structure d’accélération a été générée sans D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, aucune autre structure d’accélération ne peut être créée à partir de celle-ci par le biais de mises à jour. |
| D3D12_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, spécifié avec D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT. Cette option peut entraîner une consommation de mémoire et des temps de génération accrus. Après un compactage ultérieur, la structure d’accélération résultante doit cependant occuper moins de mémoire qu’une structure d’accélération générée à partir de zéro. Cet indicateur est compatible avec tous les autres indicateurs. S’il est spécifié 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. En d’autres termes, une fois qu’une structure d’accélération a été générée sans D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION, aucune autre structure d’accélération ne peut être créée à partir de celle-ci par le biais de mises à jour spécifiant D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION. La spécification d’ALLOW_COMPACTION peut augmenter la taille de la structure d’accélération avant compactage par rapport à l’absence d’ALLOW_COMPACTION. Si plusieurs générations incrémentielles sont effectuées avant le compactage final, des opérations redondantes liées au compactage peuvent être effectuées. La taille requise pour la structure d’accélération compactée peut être interrogée avant le compactage via EmitRaytracingAccelerationStructurePostbuildInfo. Pour plus d’informations sur les propriétés de la taille d’une structure d’accélération compactée, consultez D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC. Remarque Lorsque D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE est spécifié, certaines informations doivent être conservées dans la structure d’accélération, et le compactage n’a qu’un effet limité. Toutefois, si le pipeline sait que la structure d’accélération ne sera plus mise à jour, il peut rendre la structure plus compacte. Certaines applications peuvent tirer parti d’un double compactage : une fois après la génération initiale, puis une nouvelle fois lorsque la structure d’accélération s’est stabilisée dans un état statique, le cas échéant. |
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE | Construit une structure d’accélération de haute qualité qui maximise les performances de lancer de rayons au prix d’un temps de génération supplémentaire. En règle générale, l’implémentation prend 2 à 3 fois plus de temps de génération que le paramètre par défaut afin d’obtenir de meilleures performances de traçage. Cet indicateur est recommandé en particulier pour la géométrie statique. Il est compatible avec tous les autres indicateurs, à l’exception de D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD. |
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD | Construit une structure d’accélération de qualité inférieure, en sacrifiant les performances de lancer de rayons au profit de la vitesse de génération. En règle générale, l’implémentation prend 1/2 à 1/3 du temps de génération du paramètre par défaut, au détriment des performances de traçage. Cet indicateur est compatible avec tous les autres indicateurs, à l’exception de D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD. |
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY | Réduit 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 des temps de génération et/ou de lancer de rayons accrus. Elle est indépendante de l’indicateur D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION et du compactage explicite de la structure d’accélération qu’il permet. La combinaison de ces indicateurs peut signifier que la structure d’accélération initiale ainsi que le résultat de son compactage utilisent moins de mémoire. L’impact de l’utilisation de cet indicateur pour une génération se reflète dans le résultat de l’appel à GetRaytracingAccelerationStructurePrebuildInfo effectué avant la génération pour récupérer les besoins en mémoire de celle-ci. Cet indicateur est compatible avec tous les autres indicateurs. |
| D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE | Effectue une mise à jour de la structure d’accélération, plutôt qu’une génération à partir de zéro. Cette opération est plus rapide qu’une génération complète, mais peut avoir un impact négatif sur les performances de lancer de rayons, en particulier si les positions des objets sous-jacents ont considérablement changé par rapport à la génération 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. Lorsque la source et la destination ne se chevauchent pas, la structure d’accélération source n’est pas modifiée. Les besoins en mémoire de la structure d’accélération de sortie sont identiques à ceux de la structure d’accélération d’entrée. La structure d’accélération source doit avoir été générée avec D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE. Cet indicateur est compatible avec tous les autres indicateurs. Les autres indicateurs sélectionnés, en dehors de D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE et D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, doivent correspondre aux indicateurs de la structure d’accélération source. Les mises à jour de structure d’accélération peuvent être effectuées successivement sans limite, tant que la structure d’accélération source a été créée avec D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE et que les indicateurs de la génération de mise à jour continuent de spécifier D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE. |
| D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_DEHYDRATE | Génère un BVH déshydraté (les données de géométrie sont mises à zéro) compressible avec Deflate. Le BVH peut être réhydraté sur place par le GPU avec ID3D12GraphicsCommandList8::RehydrateRaytracingAccelerationStructureBatchedX ou par le processeur avec ID3D12Device11::RehydrateRaytracingAccelerationStructureX |
Configuration requise
En-tête : d3d12_xs.hBibliothèque : d3d12_xs.lib
Plateformes prises en charge : consoles XBOX Series
