Partager via


D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC structure (d3d12.h)

Décrit une structure d’accélération de raytracing. Transmettez cette structure dans ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure pour décrire la structure d’accélération à générer.

Syntaxe

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS                            DestAccelerationStructureData;
  D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
  D3D12_GPU_VIRTUAL_ADDRESS                            SourceAccelerationStructureData;
  D3D12_GPU_VIRTUAL_ADDRESS                            ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;

Membres

DestAccelerationStructureData

Emplacement de stockage de la structure d’accélération résultante. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo indique la quantité de mémoire requise pour le résultat ici en fonction d’un ensemble de paramètres de build de structure d’accélération.

L’adresse doit être alignée sur 256 octets, définie comme D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT.

Important

La mémoire doit être à l’état D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Inputs

Description des données d’entrée pour la build de structure d’accélération. Il s’agit de données stockées dans une structure distincte, car elles sont également utilisées avec GetRaytracingAccelerationStructurePrebuildInfo.

SourceAccelerationStructureData

Adresse d’une structure d’accélération existante si une mise à jour de structure d’accélération (build incrémentielle) est demandée, en définissant D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE dans le paramètre Flags. Sinon, cette adresse doit être NULL.

Si cette adresse est identique à DestAccelerationStructureData, la mise à jour doit être effectuée sur place. Toute autre forme de chevauchement de la mémoire source et de destination n’est pas valide et produit un comportement non défini.

L’adresse doit être alignée sur 256 octets, défini comme D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT, ce qui doit être automatiquement le cas, car toute structure d’accélération existante passée ici aurait déjà dû être placée avec cet alignement.

Important

La mémoire doit être à l’état D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

ScratchAccelerationStructureData

Emplacement où la build stockera les données temporaires. GetRaytracingAccelerationStructurePrebuildInfo indique la quantité de mémoire de travail dont l’implémentation aura besoin pour un ensemble donné de paramètres de build de structure d’accélération.

Important

La mémoire doit être dans l’état D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

ScratchAccelerationStructureData

Spécifications

   
En-tête d3d12.h