dessin de triangles pour cône

dessin de triangles pour cône

par Laura Julia Di Virgilio Calonge,
Number of replies: 2

Bonjour ! 

Le programme fonctionnant avec des cubes, j'essaie de faire des cônes. Pour ce faire j'ai voulu réutiliser le triangle du premier exemple du tutoriel de graphisme, mais quand je change la matrice de point de vue, plus rien n'apparaît sur ma fenêtre. J'ai ensuite essayé de simplement utiliser la fonction GL_LINES, mais là encore rien ne semble se dessiner (alors que je n'ai essayé que de tirer un trait entre 2 points...). A l'exécution le programme me donne l'erreur "free() : invalid pointer" et s'arrête.

Est-ce que j'oublie quelque chose d'important en utilisant ces fonctions ? Pourquoi une simple ligne ne fonctionne pas (alors que le programme se construit) ?

Merci d'avance !

In reply to Laura Julia Di Virgilio Calonge

Re: dessin de triangles pour cône

par Deleted user,

Juste afin d'être clair, tu arrives quand même à voir ta fenêtre avant l'erreur free()? Et la fenêtre est vide?

Si tu t'es inspiré du tutoriel pour la partie OpenGL, je pense que la partie qui définit le triangle doit être bonne. Les deux premiers problèmes que je peux imaginer sont que (1) la caméra ne regarde pas ton triangle, donnant l'impression que la fenêtre est vide ou que (2) tu regardes la "mauvaise face" de ton triangle.

En effet, OpenGL utilise le "face culling" (activé par "glEnable(GL_CULL_FACE);") qui ne dessine qu'une face d'un triangle/carré/polygone, la "face avant". Tu regardes une face avant quand, du point de vue de la caméra, les points de ton triangles sont ordonnés dans le sens inverse des aiguilles d'une montre. Vérifie que c'est le cas (tu peux tenter des rotations de 180° et voir si quelque chose change).

Pour ton erreur de free, je pense que c'est toi qui essaye de libérer deux fois une variable allouée dynamiquement. Note que les smart pointers, si tu les utilises, libèrent automatiquement leur mémoire en fin de vie.