Compartir a través de


estructura D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC (d3d12.h)

Describe una estructura de aceleración raytracing. Pase esta estructura a ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure para describir la estructura de aceleración que se va a compilar.

Sintaxis

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;

Miembros

DestAccelerationStructureData

Ubicación para almacenar la estructura de aceleración resultante. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo informa de la cantidad de memoria necesaria para el resultado aquí dado un conjunto de parámetros de compilación de estructura de aceleración.

La dirección debe estar alineada con 256 bytes, definida como D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT.

Importante

La memoria debe estar en estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Inputs

Descripción de los datos de entrada para la compilación de la estructura de aceleración. Se trata de datos almacenados en una estructura independiente porque también se usa con GetRaytracingAccelerationStructurePrebuildInfo.

SourceAccelerationStructureData

Dirección de una estructura de aceleración existente si se solicita una actualización de la estructura de aceleración (una compilación incremental), estableciendo D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE en el parámetro Flags. De lo contrario, esta dirección debe ser NULL.

Si esta dirección es la misma que DestAccelerationStructureData, la actualización se realizará en contexto. Cualquier otra forma de superposición de la memoria de origen y destino no es válida y genera un comportamiento indefinido.

La dirección debe estar alineada con 256 bytes, definida como D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT, que debería ser el caso automáticamente porque cualquier estructura de aceleración existente pasada aquí ya habría sido necesaria para colocarse con dicha alineación.

Importante

La memoria debe estar en estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

ScratchAccelerationStructureData

Ubicación donde la compilación almacenará los datos temporales. GetRaytracingAccelerationStructurePrebuildInfo informa de la cantidad de memoria temporal que la implementación necesitará para un conjunto determinado de parámetros de compilación de estructura de aceleración.

Importante

La memoria debe estar en estado D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

ScratchAccelerationStructureData

Requisitos

   
Encabezado d3d12.h