> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC

> 描述光线追踪加速结构。将此结构传递给 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure 以描述要构建的加速结构。

描述光线追踪加速结构。将此结构传递给 [ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public) 以描述要构建的加速结构。

## 语法

```cpp theme={null}
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*\
类型：D3D12\_GPU\_VIRTUAL\_ADDRESS

存储所构建的加速结构的位置。[ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo](/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public) 根据给定的一组加速结构构建参数在此处报告结果所需的内存量。

该地址必须按 256 字节对齐，其定义为 [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants)。

<Info>
  该内存必须处于 [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/reference/graphics/d3d12_x/enums/d3d12_resource_states) 状态。
</Info>

*Inputs*\
类型：D3D12\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_INPUTS

用于加速结构构建的输入数据描述。该数据存储在一个单独的结构中，因为它也与 **GetRaytracingAccelerationStructurePrebuildInfo** 一起使用。

*SourceAccelerationStructureData*\
类型：D3D12\_GPU\_VIRTUAL\_ADDRESS

如果请求加速结构更新（增量构建），即在 Flags 参数中设置了 [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PERFORM\_UPDATE](/reference/graphics/d3d12/enums/d3d12_raytracing_acceleration_structure_build_flags_public)，则为现有加速结构的地址。否则，此地址必须为 NULL。

如果此地址与 <i>DestAccelerationStructureData</i> 相同，则以就地方式执行更新。源内存与目标内存的任何其他形式的重叠都是无效的，会产生未定义行为。

该地址必须按 256 字节对齐，其定义为 [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants)，因为此处传入的任何现有加速结构在放置时已被要求使用此对齐，所以此项应自动满足。

<Info>
  该内存必须处于 [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/reference/graphics/d3d12_x/enums/d3d12_resource_states) 状态。
</Info>

#### ScratchAccelerationStructureData

构建将在其中存储临时数据的位置。**GetRaytracingAccelerationStructurePrebuildInfo** 根据一组给定的加速结构构建参数报告实现所需的暂存内存量。

<Info>
  该内存必须处于 [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/reference/graphics/d3d12_x/enums/d3d12_resource_states) 状态。
</Info>

*ScratchAccelerationStructureData*\
类型：D3D12\_GPU\_VIRTUAL\_ADDRESS

## 要求

**头文件：** d3d12\_xs.h\
**库：** d3d12\_xs.lib\
**支持的平台**：XBOX Series 主机
