web-dev-qa-db-fra.com

Que fait exactement glEnableVertexAttribArray?

J'ai lu:

http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

Je ne sais pas exactement ce que fait cette fonction.
Je pense qu'il permet l'utilisation d'un VBO donné, mais je ne suis pas sûr.

Je pensais que c'était ce que glEnableClientState(GL_VERTEX_ARRAY) faisait.

42
MintGrowth

J'ai lu: http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

Veuillez ensuite lire la page suivante ; J'explique exactement ce qu'il fait là-bas;)

Si je peux me citer:

Nous avons affecté l'index d'attribut de l'attribut position à 0 dans le vertex shader, donc l'appel à glEnableVertexAttribArray (0) active l'index d'attribut pour l'attribut position. ... Si l'attribut n'est pas activé, il ne sera pas utilisé pendant le rendu.

30
Nicol Bolas

Il est similaire à un tableau de sommets mais stocke des valeurs supplémentaires supplémentaires pour chaque point plutôt que ses coordonnées. Vous pourriez vouloir stocker une température, une densité, une force de signal à chaque point dans une application de modélisation par exemple, ou peut-être une valeur de dégâts pour un jeu

4
Martin Beckett

Un peu tard pour la fête.

Il existe une autre façon de spécifier des données pour un attribut de sommet, la manière non-tableau :

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glVertexAttrib.xml

De cette façon, nous spécifions des données pour un seul sommet, ces données seront répliquées pour tous les sommets.

Pour utiliser des données non-tableau , appelez glDisableVertexAttribArray.

Pour utiliser les données du tableau , appelez glEnableVertexAttribArray.

2
Nghia Bui