|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() |
Bonjours à tous,
Je suis actuellement en train de me former à openGL et essaye de créer une carte en utilisant un heightmap, mon gestionnaire de fenêtre est SFML2 qui me permet aussi de charger les images (heightmap + textures) malheureusement, je coince un peu sur l'utilisation des vbo, ou plutot de texturer les terrain qui est stocké dans un vbo. Voici mon code : Code :
Code :
et voici le code d'affichage: Code :
J'en appel donc à votre aide pour m'expliquer comment faire ou me donner un lien. Merci d'avance. ps: si mon code est buggé ou mauvais, j'aimerais tous les conseils dessus |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 560 ![]() |
Bonjour,
Je me demande quelle est la conséquence du problème (artefacts graphiques ?). Sinon, je me demande ce qu'il y a dans BUFFER_OFFSET, mais je pense qu'il ne faut pas l'utiliser comme cela, mais plus en passante 32+24.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() |
Le problème c'est que ça ne fonctionne pas du tout, je ne voit pas comment procéder, autant quand j'utilisai glVertex3f et glTexCoord2f j'ai réussi sans difficulté à texturer ma map (je précise qu'il s'agit d'une seule texture pour tout la carte, je verrais plus tard pour faire du texturing en fonction de la hauteur)
Mais depuis que je l'ai passé en vbo, je bloque. Dans le bout de code que j'ai fourni plus haut, j'ai chargé l'image via SFML, transformée en texture openGL via glGenTextures, glBindTexture, glTexParameteri et glTexImage2D. J'ai également rentré les coordonnées de chaque vertex de la map dans la texture avec Code :
Déjà je me demande comment indiquer que c'est la texture chargée précédemment qu'il doit utiliser. pour le BUFFER_OFFSET(), il s'agit d'une macro, la voici : Code :
#define BUFFER_OFFSET(a) ((char*)NULL + (a))
|
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 560 ![]() |
Pour spécifier une texture, soit vous passer par un uniforme (technique avec les shaders) soit vous spécifier la texture avec glBindTexture().
Pour le BUFFER_OFFSET(), pour spécifier les coordonnées de texture, il faut bien mettre 24, je mettais trompé la première fois. Sinon, pour le reste, le code me semblait bon. Avez vous vérifier les erreurs avec glGetError() ?
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#5 | ||||||
|
Invité régulier
![]() |
j'ai ajouté glBindTexture avec l'id de la texture juste avant le glTexCoordPointer mais ca ne fonctionne toujours pas, voici mon nouveau code:
remplissage du VBO : Code :
Code :
Code :
Tout fonctionne correctement, sauf le texturing. |
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com