> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public.md) 以描述要构建的加速结构。

## 语法

```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](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md) 根据给定的一组加速结构构建参数在此处报告结果所需的内存量。

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

> [!NOTE]
>
> 该内存必须处于 [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](https://docs.xbox.com/zh-CN/reference/graphics/d3d12_x/enums/d3d12_resource_states.md) 状态。

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

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

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

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

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

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

> [!NOTE]
>
> 该内存必须处于 [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](https://docs.xbox.com/zh-CN/reference/graphics/d3d12_x/enums/d3d12_resource_states.md) 状态。

#### ScratchAccelerationStructureData

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

> [!NOTE]
>
> 该内存必须处于 [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](https://docs.xbox.com/zh-CN/reference/graphics/d3d12_x/enums/d3d12_resource_states.md) 状态。

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

## 要求

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


## Related topics

- [BuildRaytracingAccelerationStructure (XBOX Series 主机)](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_desc_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER (XBOX Series consoles)](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_tools_visualization_header_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series consoles)](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
