J'aimerais deplacer le rendu dans une méthode de classe dédié mais dès que je met un fonction opengl dans la méthode de classe, plus rien ne s' affiche.
J'aimerais deplacer le rendu dans une méthode de classe dédié mais dès que je met un fonction opengl dans la méthode de classe, plus rien ne s' affiche.
Bonjour,
OK. Vérifiez bien que la nouvelle méthode est appelée.
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.
Est-ce que les appels sont faits dans le même thread ?
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.
Même thread, j'ai bien appelé la fonction
Peut être qu'il faut que je passe les arguments par référence, ce que je ferai de toute façon car ce sont des objets que j'ai créé
Si vous n'utilisez pas de référence (ni pointeur) alors vous faites des copies de vos objets. Du coup, si vous avez une fonction modifiant certaines variables, seules la copie (temporaire) sera impactée et les changements ne seront pas appliqués au reste du programme.
Mais, si cela vous amène à de telle interrogation, je ne peux que vous conseiller de relire un cours de programmation, car ce n'est pas lié à OpenGL.
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.
salut il faudrait préciser l'OS : est-ce que c'est en win32 ?
je suis sur Windows 10 64bits
là ça marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(renderer.programID); glUniformMatrix4fv(glGetUniformLocation(renderer.programID, "projection"), 1, GL_FALSE, value_ptr(renderer.projection)); glBindVertexArray(chunk.GetvaoID()); glBindTexture(GL_TEXTURE_2D,renderer.texID); renderer.modelview = translate(camera.view, vec3(0.0f, 0.0f,0.0f)); glUniformMatrix4fv(glGetUniformLocation(renderer.programID, "modelview"), 1, GL_FALSE, value_ptr(renderer.modelview)); glDrawArrays(GL_TRIANGLES, 0,chunk.vertices.size()/3); glBindTexture(GL_TEXTURE_2D, 0); glBindVertexArray(0); glUseProgram(0);
mais pas là,quand je l'appelle dans le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void Renderer::drawChunk(Chunk Ch,Camera cam){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(programID); glUniformMatrix4fv(glGetUniformLocation(programID, "projection"), 1, GL_FALSE, value_ptr(projection)); glBindVertexArray(Ch.GetvaoID()); glBindTexture(GL_TEXTURE_2D,texID); modelview = translate(cam.view, vec3(0.0f, 0.0f,0.0f)); glUniformMatrix4fv(glGetUniformLocation(programID, "modelview"), 1, GL_FALSE, value_ptr(modelview)); glDrawArrays(GL_TRIANGLES, 0,Ch.vertices.size()/3); glBindTexture(GL_TEXTURE_2D, 0); glBindVertexArray(0); glUseProgram(0); }
C'est quoi Chunk et Camera ? Pourquoi les passer en copie ? Sont-ils correctement copiables ? Où sont les glGetError ?
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.
ce n'est pas un problème de HDC ( Device Context) obtenu dans WM_PAINT par hasard ?
en fait il suffisait de passer par référence,peut etre a cause des vectors qui étaient des les classes et qui se copient mal
Pour rebondir sur glGetError (message de Bousk) : on ne l'utilise plus, on utilise les callbacks de debug fournis par OpenGL qui au pire fournissent la même info que glGetError, mais qui ont l'énorme avantage de pouvoir se plugger sans effectuer un seul changement dans le reste du code.
Si vous ne trouvez plus rien, cherchez autre chose...
Vous trouverez ici des tutoriels OpenGL moderne.
Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).
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.
Partager