Gl.VertexAttrib1fv (gb.opengl.glsl)
Static Sub VertexAttrib1fv ( Index As Integer, V As Float[] )
Spécifie la valeur des attributs d’un sommet générique.
Paramètres
- index
-
Spécifie l’indice de l’attribut du sommet générique à modifier.
-
v0,
v1,
v2,
v3
-
Spécifie la nouvelle valeur de l’attribut spécifié à employer.
Paramètres
- index
-
Spécifie l’indice de l’attribut du sommet générique à modifier.
- v
-
Spécifie un pointeur vers un tableau de valeurs à utiliser pour l’attribut de sommet.
Paramètres
- index
-
Spécifie l’indice de l’attribut du sommet générique à modifier.
- type
-
Type de compactage employé pour les données. Ce paramètre doit être Gl.INT_10_10_10_2 ou Gl.UNSIGNED_INT_10_10_10_2
pour spécifier des données respectivement signées ou non.
- normalized
-
Si Gl.TRUE, les valeurs doivent être alors converties en valeurs flottantes par normalisation. Sinon, elles sont directement converties en valeurs flottantes.
-
value
-
Spécifie la nouvelle valeur compactée à utiliser pour l’attribut
de sommet spécifié.
Description
OpenGL définit un nombre d’attributs de sommet standard que les
applications peuvent modifier via les points d’entrée standard de l’API (couleur, normal, coordonnées de texture, etc.). La famille de points d’entrée
Gl.VertexAttrib permet à une application de passer des attributs de sommet générique en de nombreux emplacements.
Les attributs générique sont définis par des valeurs à quatre composantes organisées en tableau. La première entrée de ce tableau est numérotée 0, et la taille du tableau est spécifiée par une constante dépendante de l’implémentation Gl.MAX_VERTEX_ATTRIBS. Les éléments individuels de ce tableau peuvent être modifiés via un appel à
GlVERTEXAttrib qui spécifie l’indice de l’élément à modifier et une valeur pour cet élément.
Ces commandes peuvent être employées pour spécifier une, deux, trois ou toutes les quatre composantes des attributs de sommet générique spécifiées par
index. Un
1 dans le nom de la commande indique que seule une valeur est passée, et ce sera utilisé pour modifier la première composant de l’attribut de sommet générique. Les deuxièmes et troisièmes composantes seront mises à 0, et la quatrième composante sera mise à 1. Similairement, un
2 dans le nom de la commande indique que les valeurs sont fournies pour les deux premières composantes, la troisième étant mise à 0, et la quatrième composante sera mise à 1. Un
3 dans le nom de la commande indique que les valeurs sont fournies pour les trois premières composantes et la quatrième composante sera mise à 1, alors qu’un
4 dans le nom de la commande indique que les valeurs sont fournies pour les quatre composantes.
Les lettres
s,
f,
i,
d,
ub,
us, et
ui indiquent
Si les arguments sont de type short, float, int, double,
unsigned byte, unsigned short, ou unsigned int. Lorsque
v est ajouté au nom, la commande peut prendre un pointeur vers un tableau de ces valeurs.
Des lettres capitales additionnelles peuvent indiquer des altérations supplémentaires au comportement par défaut de la fonction glVertexAttrib :
Les commandes contenant
N indiquent que les arguments sont passés en valeur à point décimal fixe qui sont dimensionnées selon une échelle normée selon les règles de conversion de composantes définies par les spécifications OpenGL. Les valeurs signées sont interprétées comme représentant des valeurs décimales fixes dans l’étendue
/wiki/-1,1, et les valeurs non signées sont interprétées comme représentant des valeurs décimales fixes dans l’étendue
/wiki/0,1.
Les commandes contenant
I indiquent que les arguments sont pleinement étendus à des entiers signés ou non.
Les commandes contenant
P indiquent que les arguments sont rangés en composantes compactées au sein d’un type natif plus grand.
Les variables d’attributs du language de Shading OpenGL autorisées sont de type mat2, mat3, or mat4. Les attributs de ces types doivent être chargés en utilisant les points d’entrée de
Gl.VertexAttrib.
Les Matrices doivent être chargées dans des emplacements successifs d’attributs génériques en colonnes ordonnées, avec une colonne de la matrice dans chaque emplacement d’attribut générique.
Une variable attribut défini par l’utilisateur déclarée à un shader de sommet peut être liée à un indice d’attribut générique en appelant
Gl.BindAttribLocation.
Ceci permet à une application d’utiliser des noms de variable plus descriptifs dans un shader de sommets. Un changement subséquent à l’attribut de sommet générique spécifié sera immédiatement reflété comme un changement à la variable d’attribut dans le shader de sommet.
La liaison entre l’indice d’un attribut de sommet générique et une
variable définie par l’utilisateur dans un shader de sommets fait partie de l’état du programme objet, mais pas la valeur en cours de l’attribut de sommet générique. La valeur de chaque attribut de sommet générique fait partie de l’état en cours, exactement comme les attributs de sommet standards, et mis à jour même si un programme objet différent et employé.
Une application peut librement modifier les attributs de sommet générique qui ne sont pas liés à une variable d’attribut nommée de shader de sommet. Ces valeurs sont simplement actualisées comme des parties de l’état en cours et ne seront pas accédées par le shader de sommet. Si un attribut de sommet générique lié à une variable d’ attribut d’un shader de sommets n’est pas mise à jour au cours de l’exécution d’un shader de sommets, le shader de sommets utilisera répétitivement la valeur en cours de l’ attribut de sommet générique.
Notes
Les attributs de sommet génériques peuvent être mis à jour n’importe quand.
Il est possible à une application de lier plus d’un nom d’
attribut au même indice d’attribut de sommet générique. Ceci est référencé comme un alias, et ce n’est autorisé que si un seul alias de variable d’attribut n’est actif dans le shader de sommet, ou si aucun trajet à travers le shader de sommet ne consomme plus d’un alias d’attribut aliasé au même emplacement. Les implementations
OpenGL ne sont pas supposer effectuer des tests d’erreur pour détecter l’aliasing, il leur est permis de présumer que l’aliasing ne se produira pas, et elles peuvent employer les optimisations qui ne fonctionnent qu’en l’absence d’aliasing.
Il n’y a pas de réservation pour lier les attributs de sommet standards
; par conséquent, il n’est pas possible de faire des alias d’attributs génériques avec les attributs standards.
Les versions
Gl.VertexAttrib4bv,
Gl.VertexAttrib4sv,
Gl.VertexAttrib4iv,
Gl.VertexAttrib4ubv,
Gl.VertexAttrib4usv,
Gl.VertexAttrib4uiv, et
Gl.VertexAttrib4N ne sont disponibles que pour la version GL 3.1 ou supérieur.
Les versions
Gl.VertexAttribP ne sont disponibles que pour la version GL 3.3 ou supérieur.
Erreurs
Gl.INVALID_VALUE est générée si
index est plus grand ou égal à Gl.MAX_VERTEX_ATTRIBS.
Gl.INVALID_ENUM est générée si
Gl.VertexAttribP est employé avec un
type autre que
Gl.INT_10_10_10_2 ou Gl.UNSIGNED_INT_10_10_10_2.
Gets Associés
Gl.Get avec l’argument Gl.CURRENT_PROGRAM
Gl.GetActiveAttrib avec l’argument
program et l’indice d’une variable attribut active.
Gl.GetAttribLocation avec l’argument
program et le nom d’une variable attribut.
Gl.GetVertexAttrib avec l’argument Gl.CURRENT_VERTEX_ATTRIB et
index
Voir aussi
Voir documentation originale sur le site web OpenGL