Avant tout, ma question est pourquoi je n'est pas le triangle qui s'affiche, comme dans le cours de Boouh (Merlin) `Développez vos applications 3D avec OpenGL 3.3` onglet (page) `Première affichage`
Sachez que c'est la première fois que je poste une question sur un forum, car je suis plus du style à chercher pour ne pas perdre mon temps, mais là j'ai plus trop le choix et l'étape d’après, c'est l'abandon pour un temps et continué mes bon vieux, PHP, JavaScript, HTML et CSS
Je suis en train de fondre de l'intérieur est pourtant je suis patient
Donc dans le cours, il est question d'afficher un triangle, mais sans succès.
1- j'ai Ubuntu 18.04 LTS
1- J'utilise gcc/g++
g++ main.cpp SceneOpenGL.cpp Shader.cpp -Werror -lSDL2 -lGL -o main
#Faites pas attention à `SceneOpenGL.cpp` et `Shader.cpp` ce sont ceux de l'onglet(page) d'après (c'était un test, pour voir si ça fonctionnai pas)
2- La commande suivante me dit que j'ai openGl 3.0
glxinfo | grep -i openGL
#Ce qui donne ceci :
OpenGL vendor string: nouveau
OpenGL renderer string: NV136
OpenGL core profile version string: 4.3 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
3- J'ai installé les drivers de ma Nvidia GeForce GTX 1060 6GO pour avoir une version plus récente de OpenGL, sans succès
4- J'ai essayé sous Windose avec Code::Block (Qui a était extrêmement difficile à paramétrer, à ce tirer une balle), cela a fonctionné, mais j'adore mon petit Linux est son shell (ligne de commande)
5- Pour être précis j'ai la fenêtre SDL2 qui s'ouvre bien sans faute, mais qui a un écrans noir
6- J'ai modifier cette ligne pour avoir OpenGL 3.0 et pas 3.1, c'est pas mieux
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
//Changé le 1 de la fin en 0, pour je suppose 3.1 en 3.0
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
7- Au dernière nouvelle la Fonction glClear() me renvoyai une erreur :
glClear(GL_COLOR_BUFFER_BIT);
glGetError() == GL_NO_ERROR//Renvoie false
glGetError() == GL_INVALID_OPERATION//Renvoie true
//GL_INVALID_OPERATION => 1282, Positionné si l’état d’une commande est illégal compte tenu des paramètres passés.
J'ai essayé de trouver une façon de la réglé, mais impossible
Donc en gros,
j'en peu plus,
pour installer SDL2, le parcours du combattant,
comprendre comment inclure OpenGL avec GCC, pareil (et encore je n'en suis même pas sûr),
mettre à jour OpenGL pour la version 3.3, une véritable torture et au finale aucun résultat,
j'ai toujours pas compris comment fonctionne l'inclusion de librairie, franchement il font ch**** avec les .a et je ne sais trop quoi d'autres,
les .c, .cpp et les .h me vont très bien.
Si quelqu'un aurait 2-3 tutos ou infos pour tout ce qui est GCC, SDL2 et OpenGL3, le tout sur Linux.
Et bien, voila, en espérant ne pas avoir était trop long et assez précis.
Je suis pas truc(je me rappelle plus du mot), je sais qu'il y aura difficilement une réponse positive, mais cela n'est pas grave
Désoler pour le petit coup de bouche, mais là j'en peu plus de cette informatique complètement bancale à cause du privateur et de toutes c'est versions différentes.
Bonne chance, mdr, enfin merci d'avance.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Au niveau tutos, il y a LearnOpenGL, OGLDev qui sont bien.
Après, as-tu, par hasard, activé les extensions de débogage d'OpenGL, pour avoir des messages d'erreur ou de warning au cas où ? C'est la première étape, pour pouvoir debugger correctement un code OpenGL.
Si vous ne trouvez plus rien, cherchez autre chose.
Non ce n'est pas une blague, je n'ai que l'équivalant de 1 jour de langage C et j'ai trouvé "facilement" pour le apt install, mais je ne savais pas pour
G++ avec l'option -lSDL2.
Puis dans un autre tuto il nous faisait installer une autre version qui n'a pas fonctionné et d'autres truc enfin bon, un vraie débutant.
Et puis tu connais, donc forcément pour toi c'est plus facile, comme pour moi c'est facile de faire un site de A à Z et si il faut, avec le bloc-note
Moi pouvoir aller jusqu'à OpenGl 4.3, je savais pas, mais est il pour autant disponible à l'utilisation, je ne sais pas.
Si oui dans ce cas c'est plus dans les options de G++, où je suis nul comme la fait remarquer markand
Bonne soirée, moi je suis fatigué je vais aller manger et dormir, bonne nuit hooooha (baillement).
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Beaucoup font ou indiquent de choses à ne pas faire.
Ne le prends pas mal mais si tu ne sais pas encore lier correctement les bibliothèques alors tu devrais encore continuer à apprendre le C++ de manière générale. -lSDL2 c'est juste une option qui permet au compilateur de se lier à SDL2 en suivant un certain nommage, par exemple sous Linux gcc/clang va chercher libSDL2.(so|a) dans un nombre prédéfinis de répertoires.
Évidemment ce ne sont pas des choses qu'on peut deviner mais ce sont des choses qu'on doit maîtriser avant de commencer à utiliser des bibliothèques externes.
Cela dit, c'est assez chiant de maintenir un nombre de bibliothèques externes car elles sont souvent à des endroits différents et parfois même nommées différemment. Et c'est grâce à des outils comme CMake, pkg-config qu'on peut se lier à des bibliothèques externes de manière plus simple et plus portable. Mais c'est encore une autre ressource à apprendre. Oui le C++ c'est pas facile.
Pour OpenGL c'est un peu différent. C'est une norme pas une « bibliothèque » tel quel. Ce sont des implémentations qui te fournissent une certaine version sur ta machine (un peu comme le C++). Par exemple sous Linux l'implémentation d'OpenGL est principalement mesa. Ainsi on peut pas vraiment dire « j'installe OpenGL ». Enfin, le driver nvidia est propriétaire et intrusif. Il modifie l'implémentation d'OpenGL sur Linux et c'est particulièrement crade. Malheureusement le driver libre nouveau ne fait pas encore de miracle non plus.
- Edité par markand 18 décembre 2018 à 9:32:23
git is great because Linus did it, mercurial is better because he didn't.
Je connais CMake, mais si je n'utilise pas code::block, c'est un peu pour la même raison que pour CMake, apprendre les base et pas suivre bêtement des connerie que je ne comprend pas.
Je pense qu'il faut faire ce qu'on te dit, puis après réfléchir et apprendre, si tu n'as pas une base alors il est impossible de construire quoi que ce soit et si cette base est pourri tu t'en rendra vite compte, avec un peu de patience
Oui cela est un peu contradictoire, mais en les assemblant on peut aller loin.
Il me faudrait donc comprendre encore beaucoup de choses au niveau de GCC et G++, mais OÙ ?
Le plus dur dans un langage c'est pas de l'apprendre, c'est de trouver ce qu'il y a à apprendre (ça fait bizarre les deux "a à" ?)
Il serait donc fort aimable d'avoir des documentation concernant GCC, autre que le MAN, qui reste assez tordu et long.
Sois-dit en passant le sujet principale ne sont pas mes connaissances, mais bien le problème concernant l'affichage du triangle avec OpenGL.
J'ai omis de dire, que j'ai dû mettre un dossier appeler "GL3" contenant "gl3.h", dans le dossier "/usr/local/include/".
Je viens de remarquer que le dossier "/usr/include/GLES3/" contient aussi le fichier "gl3.h" et d'autre fichier.
Serait-il une solution à mon problème ?
Trop de mystère, c'est exitant
J'adore les Smiley
-
-
Bon vue que MEUUUUSIEU veux que je n'écrive qu'un message toutes les 24H, voici le fameux message
----------------
NAN MAIS C'EST DINGUE !!!
Je viens de tester une nouvelle fois mon TRUC avec GCC et là, BAM, nan mais c'est fous quand même.
J'ai tester avec mon ordinateur portable qui n'a pas de carte graphique et c'est lui que j'utilisais à la base, mais j'ai vite abandonné par rapport à OpenGL.
C'est pourquoi j'ai par la suite utilisé mon ordinateur fixe et sa carte graphique pensant avoir plus de chance.
Et VOILÀ, c'est quand même dingue ! Reste plus qu'à comprendre
Enfin, c'est pas vraiment ce que j'appelle une résolution de problème sur un Forum, mais c'est déjà mieux que rien.
J'ai beau chercher je ne vois pas ce qui aurait put changer, à part ... suspens, le fait d'avoir ouvert et sauvegardé le fichier "main.c" avec l'éditeur NANO ?!
Est-ce normale qu'il n'y ai pas de couleur sur les balises codes "C++" ? C'est bon j'ai ma réponse, suffisait de recharger la page.
C'est complètement illisible, la honte.
N'hésitez pas à le copier dans un éditeur de texte.
Wouah, je suis trop fatigué, j'arrive plus à réfléchir, apparemment j'ai copié ce qui avait dans la fonction initialise pour essayer sans elle, laisse tomber.
- Edité par Accraugaming 18 décembre 2018 à 11:40:06
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Jette le tutoriel que tu suis, il utilise des features obsoletes d'OpenGL: vertex arrays notamment, et surtout le manque d'un VAO, qui est nécessaire en OpenGL moderne, sans parler du fait qu'il n'utilise pas les extensions de debug pour ... debugger.
- Edité par dragonjoker 20 décembre 2018 à 13:43:09
Si vous ne trouvez plus rien, cherchez autre chose.
Ok, je suis pas encore assez chaud pour ça, j'ai trop de bouleau, j'y reviendrais plus tard.
Sinon, je suis pas sûr que je peu mettre le sujet en résolu, étant donné qu'il n'y a pas vraiment d'explication ?
Dans ce cas que faire ?
En tout cas, merci bien, j'ai gagné du temps sur un sujet qui m'était complètement inconnu
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens
OpenGL 3 ubuntu suivi cours, triangle non affiché
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens
Si vous ne trouvez plus rien, cherchez autre chose.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens
Si vous ne trouvez plus rien, cherchez autre chose.
git is great because Linus did it, mercurial is better because he didn't.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens
git is great because Linus did it, mercurial is better because he didn't.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens
Si vous ne trouvez plus rien, cherchez autre chose.
DEUS·MEUMQUE·JUS
Quand l'univers s'en·mêle alors le chat joue à la pelote.
Stéphane, la traversée des sens