estrutura D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 (d3d12umddi.h)
Descreve uma geometria do triângulo de rastreamento de raios.
Sintaxe
typedef struct D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 {
D3D12DDI_GPU_VIRTUAL_ADDRESS ColumnMajorTransform3x4;
DXGI_FORMAT IndexFormat;
DXGI_FORMAT VertexFormat;
UINT IndexCount;
UINT VertexCount;
D3D12DDI_GPU_VIRTUAL_ADDRESS IndexBuffer;
D3D12DDI_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
} D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054;
Membros
ColumnMajorTransform3x4
Endereço de uma matriz de transformação de affine 3x4 no layout principal da linha a ser aplicado aos vértices no VertexBuffer durante um build de estrutura de aceleração. O conteúdo de VertexBuffer não é modificado. Se um formato de vértice 2D for usado, a transformação será aplicada com o terceiro componente de vértice considerado zero.
Se ColumnMajorTransform3x4 for NULL, os vértices não serão transformados. O uso de ColumnMajorTransform3x4 pode resultar em maior computação e/ou requisitos de memória para o build da estrutura de aceleração.
A memória apontada deve estar no estado do recurso D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
IndexFormat
Um DXGI_FORMAT, que representa o formato dos índices no IndexBuffer. O valor precisa ser um dos seguintes:
- DXGI_FORMAT_UNKNOWN (quando IndexBuffer for NULL)
- DXGI_FORMAT_R32_UINT
- DXGI_FORMAT_R16_UINT
VertexFormat
Um DXGI_FORMAT, que representa o formato dos vértices (posições) em VertexBuffer. O valor precisa ser um dos seguintes:
- DXGI_FORMAT_R32G32_FLOAT (terceiro componente assumido 0)
- DXGI_FORMAT_R32G32B32_FLOAT
- DXGI_FORMAT_R16G16_FLOAT (terceiro componente assumido 0)
- DXGI_FORMAT_R16G16B16A16_FLOAT
IndexCount
Número de índices no IndexBuffer. Deve ser 0 se IndexBuffer for NULL.
VertexCount
Número de vértices (posições) em VertexBuffer.
IndexBuffer
Matriz de índices de vértice. Se NULL, os triângulos não serão indexados. O endereço deve ser alinhado ao tamanho de IndexFormat.
A memória apontada deve estar no estado do recurso D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
VertexBuffer
Matriz de vértices, incluindo um passo a passo. O alinhamento no endereço e no passo deve ser um múltiplo do tamanho do componente, ou seja, 4 bytes para formatos com componentes de 32 bits e 2 bytes para formatos com componentes de 16 bits. Não há nenhuma restrição no passo (enquanto há um limite para elementos gráficos), exceto que os 32 bits inferiores do valor são todos usados. Isso significa que o campo é UINT64 puramente para fazer com que os campos vizinhos se alinhem de forma limpa e, obviamente, em todos os lugares. Espera-se que cada posição de vértice esteja no endereço inicial do intervalo de passos e qualquer espaço em excesso seja ignorado por builds de estrutura de aceleração. Esse espaço em excesso pode conter outros dados do aplicativo, como atributos de vértice, que o aplicativo é responsável por buscar manualmente em sombreadores, seja ele intercalado em buffers de vértice ou em outro lugar.
A memória apontada deve estar no estado do recurso D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
Comentários
A geometria apontada por essa estrutura está sempre na lista de triângulos de (forma indexada ou não indexada). Não há suporte para faixas.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1809 |
Cabeçalho | d3d12umddi.h |