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 |
|
Biblioteca |
|
Consulte también