Método ID3DX10Mesh::D rawSubsetInstanced
Desenhe várias instâncias do mesmo subconjunto de uma malha.
Sintaxe
HRESULT DrawSubsetInstanced(
[in] UINT AttribId,
[in] UINT InstanceCount,
[in] UINT StartInstanceLocation
);
Parâmetros
-
AttribId [in]
-
Tipo: UINT
Especifica qual subconjunto da malha a ser desenhada. Esse valor é usado para diferenciar rostos em uma malha como pertencentes a um ou mais grupos de atributos. Consulte Observações.
-
InstanceCount [in]
-
Tipo: UINT
Número de instâncias a serem renderizadas.
-
StartInstanceLocation [in]
-
Tipo: UINT
Qual instância para começar a buscar em cada buffer marcado como dados de instância.
Valor retornado
Tipo: HRESULT
O valor retornado é um dos valores listados em Códigos de Retorno do Direct3D 10.
Comentários
Uma malha contém uma tabela de atributos. A tabela de atributos pode dividir uma malha em subconjuntos, em que cada subconjunto é identificado com uma ID de atributo. Por exemplo, uma malha com 200 faces, dividida em três subconjuntos, pode ter uma tabela de atributos semelhante a esta:
Subset | Faces |
---|---|
AttribID 0 | Faces 0 ~ 50 |
AttribID 1 | Faces 51 ~ 125 |
AttribID 2 | Faces 126 ~ 200 |
A instanciação pode estender o desempenho reutilizando a mesma geometria para desenhar vários objetos em uma cena. Um exemplo de instanciação pode ser desenhar o mesmo objeto com diferentes posições e cores. A indexação requer vários buffers de vértice: pelo menos um para dados por vértice e um segundo buffer para dados por instância.
As instâncias de desenho com DrawSubsetInstanced são muito semelhantes ao processo usado com ID3D10Device::D rawIndexedInstanced descrito em Exemplo de Instancamento. A principal diferença ao usar DrawSubsetInstanced é que os buffers de vértice e índice devem ser extraídos do objeto interface ID3DX10Mesh antes que os dados de instanciação possam ser combinados.
O código a seguir ilustra a extração dos buffers de vértice e índice do objeto de malha.
ID3D10Buffer* vertexBuffer;
pDeviceObj->pMesh->GetDeviceVertexBuffer(0, &vertexBuffer);
ID3D10Buffer* indexBuffer;
pDeviceObj->pMesh->GetDeviceIndexBuffer(&indexBuffer);
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também