ID3DX10Mesh::D rawSubsetInstanced, méthode
Dessinez plusieurs instances du même sous-ensemble d’un maillage.
Syntaxe
HRESULT DrawSubsetInstanced(
[in] UINT AttribId,
[in] UINT InstanceCount,
[in] UINT StartInstanceLocation
);
Paramètres
-
AttribId [in]
-
Type : UINT
Spécifie le sous-ensemble du maillage à dessiner. Cette valeur est utilisée pour différencier les visages d’un maillage comme appartenant à un ou plusieurs groupes d’attributs. Consultez la section Remarques.
-
InstanceCount [in]
-
Type : UINT
Nombre d’instances à afficher.
-
StartInstanceLocation [in]
-
Type : UINT
Quelle instance commencer à extraire dans chaque mémoire tampon marquée comme instance données.
Valeur retournée
Type : HRESULT
La valeur de retour est l’une des valeurs répertoriées dans Codes de retour Direct3D 10.
Notes
Un maillage contient une table d’attributs. La table d’attributs peut diviser un maillage en sous-ensembles, où chaque sous-ensemble est identifié avec un ID d’attribut. Par exemple, un maillage avec 200 visages, divisé en trois sous-ensembles, peut avoir une table d’attributs qui ressemble à ceci :
Subset | Visages |
---|---|
AttribID 0 | Visages 0 ~ 50 |
AttribID 1 | Visages 51 ~ 125 |
AttribID 2 | Visages 126 ~ 200 |
L’instanciation peut étendre les performances en réutilisant la même géométrie pour dessiner plusieurs objets dans une scène. Un exemple d’instanciation peut être de dessiner le même objet avec des positions et des couleurs différentes. L’indexation nécessite plusieurs mémoires tampons de vertex : au moins une pour les données par sommet et une deuxième mémoire tampon pour les données par instance.
Le dessin d’instances avec DrawSubsetInstanced est très similaire au processus utilisé avec ID3D10Device::D rawIndexedInstanced décrit dans l’exemple d’instanciation. La principale différence lors de l’utilisation de DrawSubsetInstanced est que les mémoires tampons de vertex et d’index doivent être extraites de l’objet ID3DX10Mesh Interface avant que les données d’instanciation puissent être combinées.
Le code suivant illustre l’extraction des mémoires tampons de vertex et d’index à partir de l’objet de maillage.
ID3D10Buffer* vertexBuffer;
pDeviceObj->pMesh->GetDeviceVertexBuffer(0, &vertexBuffer);
ID3D10Buffer* indexBuffer;
pDeviceObj->pMesh->GetDeviceIndexBuffer(&indexBuffer);
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi