Bonjour à tous,
Voici le quatrième tutoriel de la nouvelle série de tutoriel OpenGL moderne de la rubrique 2D/3D/Jeux. Dans celui-ci vous allez apprendre à charger et utiliser les shaders dans votre programme OpenGL.
Bonne lecture.
Bonjour à tous,
Voici le quatrième tutoriel de la nouvelle série de tutoriel OpenGL moderne de la rubrique 2D/3D/Jeux. Dans celui-ci vous allez apprendre à charger et utiliser les shaders dans votre programme OpenGL.
Bonne lecture.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Bonjour a tout le monde
Je suis actuellement en train de suivre le 4ème tutoriel de ce tuto et je rencontre actuellement un problème.
Après que la compilation ai fonctionné j'ai le message d'erreur suivant : Invalid shader program: 'Validation Failed: No vertex array object bound.'
Je ne comprend pas pourquoi même après des recherches sur internet...
Je suis sous Mac OS Sierra version 10.12.4
j'ai utilisé :
Pour pouvoir utilisé les même shader que dans ce tuto or après que la compilation ai fonctioné j'ai ce fameux message d'erreur et je n'ai pas trouvé comment le résoudre..
Code : Sélectionner tout - Visualiser dans une fenêtre à part GlutInitdisplay(GLUT_3_2_CORE_PROFIL)
J'utilise les shader suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #version 410 layout (location = 0) in vec3 Position; void main() { gl_Position = vec4(0.5 * Position.x, 0.5 * Position.y, Position.z, 1.0); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #version 410 out vec4 FragColor; void main() { FragColor = vec4(1.0, 0.0, 0.0, 1.0); }
J'ai rajouter c'est ligne que j'ai trouvé pour connaitre l'actuelle version GL et GLSL dans le livre David Wolf :
J'obtiens ceci dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 const GLubyte *renderer = glGetString( GL_RENDERER ); const GLubyte *vendor = glGetString( GL_VENDOR ); const GLubyte *version = glGetString( GL_VERSION ); const GLubyte *glslVersion = glGetString( GL_SHADING_LANGUAGE_VERSION ); GLint major, minor; glGetIntegerv(GL_MAJOR_VERSION, &major); glGetIntegerv(GL_MINOR_VERSION, &minor); printf("GL Vendor : %s\n", vendor); printf("GL Renderer : %s\n", renderer); printf("GL Version (string) : %s\n", version); printf("GL Version (integer) : %d.%d\n", major, minor); printf("GLSL Version : %s\n", glslVersion);
GL Vendor : Intel Inc.
GL Renderer : Intel HD Graphics 5000 OpenGL Engine
GL Version (string) : 4.1 INTEL-10.24.45
GL Version (integer) : 4.1
GLSL Version : 4.10
Je vous remercie de vos futurs réponse..
Bonjour,
La réponse se trouve dans une autre série de tutoriels proposée sur le site : http://opengl.developpez.com/tutorie...rial/FAQ/#LVII
Il suffit donc de suivre ce tutoriel pour savoir comment faire le VAO : http://opengl.developpez.com/tutorie...mier-triangle/
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
je vous remercie de votre réponse
J'essaie de compiler le quatrième tutoriel et j'ai un problème avec cmath et ogldev_util.h
Ceci est dans Tutoriel04.log:
d:\nehe cd\ogldev-source\tutoriel04\ogldev_util.h(46): error C2382: 'fmax'*: redéfinition*; spécifications des exceptions différentes
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\cmath(132): note: voir la déclaration de 'fmax'
Au bas de l'écran j'ai ces erreurs:
Gravité Code Description Projet Fichier Ligne État de la suppression
Erreur (active) E0020 identificateur "uint" non défini Tutoriel04 D:\NeHe CD\ogldev-source\tutoriel04\ogldev_util.h 35
Gravité Code Description Projet Fichier Ligne État de la suppression
Erreur C2382 'fmax'*: redéfinition*; spécifications des exceptions différentes Tutoriel04 d:\nehe cd\ogldev-source\tutoriel04\ogldev_util.h 46
Problème entre cmath ligne 132 qui est: _Check_return_ inline float fmax(_In_ float _Xx, _In_ float _Yx) noexcept
et ogldev_util.h ligne 46 qui est: float fmax(float a, float b);
J'ai aucune idée comment régler ça.
Ce que je ferais, c'est de supprimer le fmax de ogldev_util (h et cpp).
Ou alors, de ne pas utiliser cmath et d'utiliser la version de ogldev_util.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Tu devrais écrire tes fonctions dans ton propre namespace, ça évitera ce genre de surprises
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager