> ## 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 (consoles XBOX Series) — O conjunto estendido de parâmetros para builds em lote.

O conjunto estendido de parâmetros para builds em lote.

## Sintaxe

```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
```

### Membros

*Type*\
Tipo: [D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_SUBOBJECT\_TYPE](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_build_raytracing_acceleration_structure_subobject_type)

Esse valor será *D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_SUBOBJECT\_TYPE\_PARAMS3*.

*NumExtraElementsForInstanceSplitting*\
Tipo: UINT

Padrões do driver:

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` (todos os outros sinalizadores de build do TLAS)

Valores esperados:

1. `0xFFFFFFFF` (usar o padrão do driver)
2. `[0, totalInstanceCount * 15]`

Esse valor indica o número de instâncias adicionais a serem alocadas na memória do TLAS, que o builder do TLAS pode utilizar para dividir nós de BLAS e melhorar o desempenho da travessia.

Cada instância pode ser dividida em 4 ou 16 partes, expandindo o primeiro ou o segundo nível da árvore. Isso significa que há um limite máximo de 15 instâncias "extras" necessárias para dividir uma instância em 16 partes, além da alocação original para uma única instância.

Isso afeta tanto a memória do TLAS quanto o tamanho de scratch, que geralmente são pequenos, bem como os tempos de build do TLAS. Se o tempo de build for uma preocupação maior do que o tempo de travessia, considere usar *D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_BUILD* ou desabilitar manualmente a divisão de instâncias usando `NumExtraElementsForInstanceSplitting = 0`.

*InstanceSplit16Fraction*\
Tipo: float

Padrões do driver:

1. `0.2f` (todos os sinalizadores de build do TLAS)

Valores esperados:

1. `-1.0f` (usar o padrão do driver)
2. `[0.0f, 1.0f]`

Esse valor modifica o comportamento de `NumExtraElementsForInstanceSplitting`. Defina-o com um valor entre `0.0f` e `1.0f` para controlar a porcentagem de `NumExtraElementsForInstanceSplitting` usada para dividir BLASes em 16 partes em vez de 4 partes.

Por exemplo, definir `InstanceSplit16Fraction = 1.0f` dedicará todo o orçamento à divisão de objetos grandes/esparsos em 16 partes, mas afetará um número total menor de BLASes. Definir um valor mais alto pode ser útil em casos como uma cena que contém várias partes grandes de terreno e muitos objetos menores. Definir um valor menor pode ser útil em uma cena com muitos objetos de tamanho semelhante que se sobrepõem mutuamente.

*IsolateSARatio*\
Tipo: float

Padrões do driver:

1. `0.75f` (todos os sinalizadores de build do TLAS)

Valores esperados:

1. `0.0f` (usar o padrão do driver)
2. `(-1.0f, 0.0f)` (ordenar os objetos primeiro)
3. `(0.0f, 1.0f)` (ordenar os objetos por último)

Esse valor permite "isolar" objetos no TLAS cuja área de superfície seja maior do que uma proporção especificada da área de superfície total da cena. Esses objetos são movidos para um branch separado, de modo a manter limites mais justos para os outros branches.

O sinal desse valor determina se os objetos são ordenados antes ou depois dos outros branches na memória, afetando a ordem de travessia para branches sobrepostos.

Não é recomendável combinar essa opção com o Treelet Reordering (incluído por padrão no modo FAST\_TRACE), pois o Treelet Reordering será executado após o isolamento de branches e alterará a hierarquia.

## Comentários

Use [D3D12XboxMakeDefault\_D3D12XBOX\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_PARAMS3](/pt-BR/reference/graphics/d3d12_xs/functions/d3d12xboxmakedefault_d3d12xbox_build_raytracing_acceleration_structure_params3) para definir esta struct com valores padrão antes de substituir os membros escolhidos. Não inicialize esta struct com zeros.

Ao usar parâmetros estendidos, [ID3D12Device8::GetRaytracingAccelerationStructurePrebuildInfoX](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12Device8/methods/id3d12device8_getraytracingaccelerationstructureprebuildinfox) deve ser usado em vez de `GetRaytracingAccelerationStructurePrebuildInfo`. Os tamanhos de memória ou de scratch do BVH podem ser diferentes e podem resultar em corrupção de heap e travamentos da GPU se não forem alocados corretamente.

Confira os exemplos de uso em [BuildRaytracingAccelerationStructureBatched2X](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_buildraytracingaccelerationstructurebatched2x).

## Requisitos

**Cabeçalho:** d3d12\_xs.h\
**Plataformas com suporte**: consoles XBOX Series

## Confira também

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


## Related topics

- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_prebuild_info_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_desc_public.md)
