Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Lolilolight le Septembre 15, 2013, 04:36:29 pm

Titre: Un pointeur sur les coordonnées des vertex.
Posté par: Lolilolight le Septembre 15, 2013, 04:36:29 pm
Salut alors je m'explique.

J'ai une classe tileMap donc, qui contient, un vecteur de Tiles.

Je crée donc mes vertex comme ça :
 quad[0].position = Vector3f(tiles[i]->getPosition().x, tiles[i]->getPosition().y, zOrder);
        quad[1].position = Vector3f(tiles[i]->getPosition().x + tiles[i]->getSize().x, tiles[i]->getPosition().y, zOrder);
        quad[2].position = Vector3f(tiles[i]->getPosition().x + tiles[i]->getSize().x, tiles[i]->getPosition().y + tiles[i]->getSize().y, zOrder);
        quad[3].position = Vector3f(tiles[i]->getPosition().x, tiles[i]->getPosition().y + tiles[i]->getSize().y, zOrder);
 

Ce que je voudrais c'est que lorsque je change le z de ma tile par exemple, la composante z de mes vertex change aussi. (Ca m'aviterai de devoir parcourir mon vecteur de tiles et changer la position des mes vertex de ma tile dans le VertexArray.)

J'ai pensé à utiliser un pointeur sur la coordonnée z des vertex (comme je le fait déjà lorsque je change l'id de mes entités lorsque je supprime des entités pour pas devoir à chaque fois tout remettre à jour manuellement et pour des raisons d'optimisation aussi.) mais je ne sais pas si c'est possible de faire ça avec des sf::Vertex.

Ou alors je dois modifier SFML ?

Titre: Re : Un pointeur sur les coordonnées des vertex.
Posté par: Laurent le Septembre 15, 2013, 05:58:33 pm
De toute façon la coordonnée Z c'est déjà toi qui l'a ajoutée non ? Donc si tu veux mettre un pointeur ça ne change pas grand chose, c'est dans tous les cas une modification de SFML.
Titre: Re : Un pointeur sur les coordonnées des vertex.
Posté par: Lolilolight le Septembre 15, 2013, 06:34:49 pm
Oui j'ai modifié SFML pour mettre une composante z pour les décors et les murs car ils n'ont pas de sem-transparence afin de dessiner tout en une seule fois tout en pouvant modifier leur z si le personnage est devant ou derrière le mur ou le décor.

Et là je cherche la manière la plus rapide pour le faire.
Titre: Re : Un pointeur sur les coordonnées des vertex.
Posté par: Laurent le Septembre 15, 2013, 08:36:44 pm
Ah oui, je vois ton problème. Comme la structure est passée telle quelle à OpenGL, tu ne peux pas mettre n'importe quoi dans sf::Vertex. Donc pas de pointeur en effet.

Je ne vois a priori pas de solution. Peut-être éventuellement avec un shader, mais c'est même pas sûr.