Compartir a través de


Id3DX10Mesh::D rawSubsetInstanced (método)

Dibuja varias instancias del mismo subconjunto de una malla.

Sintaxis

HRESULT DrawSubsetInstanced(
  [in] UINT AttribId,
  [in] UINT InstanceCount,
  [in] UINT StartInstanceLocation
);

Parámetros

AttribId [in]

Tipo: UINT

Especifica qué subconjunto de la malla se va a dibujar. Este valor se usa para diferenciar caras de una malla como pertenecientes a uno o varios grupos de atributos. Vea Notas.

InstanceCount [in]

Tipo: UINT

Número de instancias que se van a representar.

StartInstanceLocation [in]

Tipo: UINT

Instancia de la que se va a empezar a capturar en cada búfer marcado como datos de instancia.

Valor devuelto

Tipo: HRESULT

El valor devuelto es uno de los valores enumerados en Códigos de retorno de Direct3D 10.

Comentarios

Una malla contiene una tabla de atributos. La tabla de atributos puede dividir una malla en subconjuntos, donde cada subconjunto se identifica con un identificador de atributo. Por ejemplo, una malla con 200 caras, dividida en tres subconjuntos, podría tener una tabla de atributos similar a la siguiente:

Subset Caras
AttribID 0 Caras 0 ~ 50
AttribID 1 Caras 51 ~ 125
AttribID 2 Caras 126 ~ 200

 

La creación de instancias puede ampliar el rendimiento mediante la reutilización de la misma geometría para dibujar varios objetos en una escena. Un ejemplo de creación de instancias podría ser dibujar el mismo objeto con diferentes posiciones y colores. La indexación requiere varios búferes de vértices: al menos uno para los datos por vértice y un segundo búfer para los datos por instancia.

Dibujar instancias con DrawSubsetInstanced es muy similar al proceso usado con ID3D10Device::D rawIndexedInstanced que se describe en Ejemplo de creación de instancias. La diferencia clave al usar DrawSubsetInstanced es que los búferes de vértices e índices deben extraerse del objeto De interfaz ID3DX10Mesh antes de que se puedan combinar los datos de creación de instancias.

En el código siguiente se muestra cómo extraer los búferes de vértices e índices del objeto mesh.

      ID3D10Buffer* vertexBuffer;
      pDeviceObj->pMesh->GetDeviceVertexBuffer(0, &vertexBuffer);
      ID3D10Buffer* indexBuffer;
      pDeviceObj->pMesh->GetDeviceIndexBuffer(&indexBuffer);
      

Requisitos

Requisito Value
Encabezado
D3DX10.h
Biblioteca
D3DX10.lib

Consulte también

ID3DX10Mesh

D3DX Interfaces