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.
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;
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.
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
En-tête | d3d12.h |