objet Geometry-Shader
Un objet de nuanceur geometry traite des primitives entières. Utilisez la syntaxe suivante pour déclarer un objet de nuanceur geometry.
[maxvertexcount(NumVerts)] void ShaderName ( PrimitiveType DataType Name [ NumElements ], inout StreamOutputObject) ;
Paramètres
-
[maxvertexcount(NumVerts)]
-
[in] Déclaration pour le nombre maximal de sommets à créer.
- [maxvertexcount()] - mot clé requis ; les crochets et parenthèses sont des caractères obligatoires pour une syntaxe correcte.
- NumVerts : nombre entier représentant le nombre de sommets.
-
ShaderName
-
[in] Chaîne ASCII qui contient un nom unique pour la fonction geometry-shader.
-
nom de type de données PrimitiveType [ NumElements ]
-
PrimitiveType - Type primitif, qui détermine l’ordre des données primitives.
Type primitif Description point Liste des points ligne Liste de lignes ou bande de lignes triangle Liste de triangles ou bande de triangles lineadj Liste de lignes avec adjacency ou bande de traits avec adjacency triangleadj Liste de triangles avec adjacency ou bande de triangles avec adjacency DataType - [in] Type de données d’entrée ; peut être n’importe quel type de données HLSL .
Nom - Nom de l’argument ; il s’agit d’une chaîne ASCII.
NombreElements - Taille de tableau de l’entrée, qui dépend de la primitiveType, comme indiqué dans le tableau suivant.
Type primitif NumElements point [1]
Vous n’utilisez qu’un seul point à la fois.ligne [2]
Une ligne nécessite deux sommets.triangle [3]
Un triangle nécessite trois sommets.lineadj [4]
Un lineadj a deux extrémités ; par conséquent, il nécessite quatre sommets.triangleadj [6]
Un triangleadj borde trois triangles supplémentaires ; par conséquent, il nécessite six sommets. -
StreamOutputObject
Valeur de retour
Aucun
Remarques
Le diagramme suivant montre les différents types primitifs d’un objet nuanceur geometry.
Le diagramme suivant montre les appels de nuanceur geometry.
illustration
Exemples
Cet exemple provient de l’exercice 1 de l’atelier Direct3D 10 Shader Model 4.0.
[maxvertexcount(3)]
void GSScene( triangleadj GSSceneIn input[6], inout TriangleStream<PSSceneIn> OutputStream )
{
PSSceneIn output = (PSSceneIn)0;
for( uint i=0; i<6; i+=2 )
{
output.Pos = input[i].Pos;
output.Norm = input[i].Norm;
output.Tex = input[i].Tex;
OutputStream.Append( output );
}
OutputStream.RestartStrip();
}
Modèle de nuanceur minimal
Cet objet est pris en charge dans les modèles de nuanceur suivants.
Modèle de nuanceur | Supporté |
---|---|
modèle de nuanceur 4 et modèles de nuanceur supérieurs | oui |
Rubriques connexes
-
modèle nuanceur 4