> ## 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_RAYTRACING_INSTANCE_DESC (consoles XBOX Series)

> Descreve uma instância de uma estrutura de aceleração de raytracing usada na memória da GPU durante o processo de build da estrutura de aceleração.

Descreve uma instância de uma estrutura de aceleração de raytracing usada na memória da GPU durante o processo de build da estrutura de aceleração.

## Sintaxe

```cpp theme={null}
typedef struct D3D12_RAYTRACING_INSTANCE_DESC
{
    FLOAT[4] Transform;
    UINT InstanceID;
    UINT InstanceMask;
    UINT InstanceContributionToHitGroupIndex;
    UINT Flags;
    D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
} D3D12_RAYTRACING_INSTANCE_DESC
```

### Membros

*Transform*\
Tipo: FLOAT\[3]\[4]

Uma matriz de transformação 3x4 em layout de linha principal (row-major) que representa a transformação de instância para mundo. As implementações transformam os raios, em vez de transformar toda a geometria ou os AABBs.

<Note>
  O layout de `Transform` é uma transposição de como as matrizes afins normalmente são armazenadas na memória. Em vez de quatro vetores de 3 componentes, `Transform` é organizado como três vetores de 4 componentes.
</Note>

*InstanceID*\
Tipo: UINT

Um valor arbitrário de 24 bits que pode ser acessado usando a função intrínseca `InstanceID` nos tipos de sombreador com suporte.

*InstanceMask*\
Tipo: UINT

Uma máscara de 8 bits atribuída à instância, que pode ser usada para incluir/rejeitar grupos de instâncias por raio. Se o valor for zero, a instância nunca será incluída; portanto, normalmente ela deve ser definida como algum valor diferente de zero. Para obter mais informações, consulte o parâmetro `InstanceInclusionMask` da função [TraceRay](https://learn.microsoft.com/en-us/windows/win32/direct3d12/traceray-function).

*InstanceContributionToHitGroupIndex*\
Tipo: UINT

Um valor arbitrário de 24 bits que representa a contribuição por instância a ser adicionada à indexação da tabela de sombreadores para selecionar o grupo de acertos a ser usado.

*Flags*\
Tipo: UINT

Uma máscara de 8 bits que representa os sinalizadores de [D3D12\_RAYTRACING\_INSTANCE\_FLAGS](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public) a serem aplicados à instância.

*AccelerationStructure*\
Tipo: D3D12\_GPU\_VIRTUAL\_ADDRESS

Endereço da estrutura de aceleração de nível inferior que está sendo instanciada. O endereço deve estar alinhado a 256 bytes, definido como [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/win32/direct3d12/constants). Qualquer estrutura de aceleração existente passada aqui já precisaria ter sido posicionada com esse alinhamento.

A memória apontada deve estar no estado [D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states).

## Comentários

Esta definição de struct C++ é útil se você estiver gerando os dados de instância primeiro na CPU e depois carregando-os na GPU. Mas seu aplicativo também pode gerar descrições de instância diretamente na memória da GPU (a partir de sombreadores de computação, por exemplo) seguindo o mesmo layout.

## Requisitos

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


## Related topics

- [D3D12_RAYTRACING_INSTANCE_FLAGS (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_FLAGS (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_flags_public.md)
- [D3D12_RAYTRACING_GEOMETRY_TYPE (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_type_public.md)
