2010-09-23 6 views
4

Je suis en train d'apprendre OpenGL et je suis en cours d'exécution dans certaines questions. J'utilise OpenGL 3.0 et GLSL 1.2.shaders GLSL attributs ints

J'ai un tableau de matrices que je voudrais appliquer de manière sélective aux différents sommets. Au lieu de copier une matrice chaque fois que je veux indiquer un index, je voudrais plutôt passer un entier comme un indice et l'utiliser entier pour sélectionner la matrice que je veux. Cependant, lorsque je tente de compiler mon Shader je reçois l'erreur suivante:

ERROR: 0:5: 'attribute' : cannot be bool or int 

Je vous en serais reconnaissant si quelqu'un pourrait me diriger dans la bonne direction.

Répondre

4

Les attributs peuvent être ints, mais vous devez activer une version plus récente de GLSL pour l'utiliser. Essayez d'ajouter ceci au-dessus de votre shaders:

#version 130 

version 130 correspond à OpenGL 3.0

+3

et pour envoyer ces attributs au shader au lieu de glVertexAttrib * utiliser sa version entière - glVertexAttribI * – erjot

+0

J'utilise Mac OS X, qui ne supporte pas 130. Encore, bon à savoir. Merci pour la réponse. – LandonSchropp

+2

Ensuite, vous n'utilisez pas OpenGL 3.0 ... Vous n'avez pas de chance. –