> ## 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.

# D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3

> D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3 (XBOX Series 主機) — 批次建置的擴充參數集。

批次建置的擴充參數集。

## 語法

```cpp theme={null}
typedef struct D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3
{
    D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_SUBOBJECT_TYPE Type;
    UINT    NumExtraElementsForInstanceSplitting;
    float   InstanceSplit16Fraction;
    float   IsolateSARatio;
} D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3
```

### 成員

*Type*\
類型：[D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_SUBOBJECT\_TYPE](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_build_raytracing_acceleration_structure_subobject_type)

此值會是 *D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_SUBOBJECT\_TYPE\_PARAMS3*。

*NumExtraElementsForInstanceSplitting*\
類型：UINT

驅動程式預設值：

1. `floor(totalInstanceCount * 0.35f)` (*D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_TRACE*)
   1. `0` (*D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_MINIMIZE\_MEMORY*)
   2. `0` (*D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE*)
2. `0` (所有其他 TLAS 建置旗標)

預期值：

1. `0xFFFFFFFF` (使用驅動程式預設值)
2. `[0, totalInstanceCount * 15]`

此值表示要在 TLAS 記憶體中配置的額外執行個體數目，TLAS 建置器可利用這些執行個體分割 BLAS 節點，以改善周遊效能。

每個執行個體可以透過展開樹狀結構的第一或第二層級，分割成 4 或 16 個部分。這表示除了單一執行個體的原始配置之外，將一個執行個體分割成 16 個部分最多需要 15 個「額外」執行個體。

這會影響 TLAS 記憶體和暫存大小 (通常都很小)，以及 TLAS 建置時間。如果建置時間比周遊時間更值得關注，請考慮使用 *D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_BUILD*，或使用 `NumExtraElementsForInstanceSplitting = 0` 手動停用執行個體分割。

*InstanceSplit16Fraction*\
類型：float

驅動程式預設值：

1. `0.2f` (所有 TLAS 建置旗標)

預期值：

1. `-1.0f` (使用驅動程式預設值)
2. `[0.0f, 1.0f]`

此值會修改 `NumExtraElementsForInstanceSplitting` 的行為。將此值設定為介於 `0.0f` 和 `1.0f` 之間，以控制 `NumExtraElementsForInstanceSplitting` 中用於將 BLAS 分割成 16 個部分 (相對於 4 個部分) 的百分比。

例如，設定 `InstanceSplit16Fraction = 1.0f` 會將整個預算專用於將大型/稀疏物件分割成 16 個部分，但會影響的 BLAS 總數較少。在包含數個大型地形區塊和許多較小物件的場景等情況下，設定較高的值可能很有用。在有許多大小相近且彼此重疊之物件的場景中，設定較小的值可能很有用。

*IsolateSARatio*\
類型：float

驅動程式預設值：

1. `0.75f` (所有 TLAS 建置旗標)

預期值：

1. `0.0f` (使用驅動程式預設值)
2. `(-1.0f, 0.0f)` (先排序物件)
3. `(0.0f, 1.0f)` (最後排序物件)

此值允許在 TLAS 中「隔離」表面積大於整個場景表面積之指定比例的物件。這些物件會被拉到個別的分支，以便為其他分支保持更緊密的界限。

此值的正負號決定這些物件在記憶體中是排在其他分支之前或之後，進而影響重疊分支的周遊順序。

不建議將此選項與 Treelet 重新排序 (預設包含在 FAST\_TRACE 模式中) 結合使用，因為 Treelet 重新排序會在分支隔離之後執行，並改變階層。

## 備註

使用 [D3D12XboxMakeDefault\_D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_PARAMS3](/zh-TW/reference/graphics/d3d12_xs/functions/d3d12xboxmakedefault_d3d12xbox_build_raytracing_acceleration_structure_params3)，在覆寫所選成員之前將此結構設定為預設值。請勿將此結構以零初始化。

使用擴充參數時，必須使用 [ID3D12Device8::GetRaytracingAccelerationStructurePrebuildInfoX](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12Device8/methods/id3d12device8_getraytracingaccelerationstructureprebuildinfox)，而不是 `GetRaytracingAccelerationStructurePrebuildInfo`。BVH 記憶體或暫存大小可能不同，若未正確配置，可能導致堆積損毀和 GPU 停止回應。

請參閱 [BuildRaytracingAccelerationStructureBatched2X](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_buildraytracingaccelerationstructurebatched2x) 中的使用範例。

## 需求

**標頭：** d3d12\_xs.h\
**支援的平台：** XBOX Series 主機

## 另請參閱

[D3D12XboxMakeDefault\_D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_PARAMS3](/zh-TW/reference/graphics/d3d12_xs/functions/d3d12xboxmakedefault_d3d12xbox_build_raytracing_acceleration_structure_params3)\
[BuildRaytracingAccelerationStructureBatched2X](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_buildraytracingaccelerationstructurebatched2x)\
[d3d12\_xs](/zh-TW/reference/graphics/d3d12_xs/d3d12_xs_members)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
