Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - flo flo

Pages: [1]
1
C / Deformation d'images avec vertexArrays
« le: Mai 06, 2016, 10:05:49 pm »
Bonjour bonsoir ! Je vous remercie par avance pour les réponses que vous pourrez m'apporter ici ! Merci de prendre de votre temps pour me dépanner :)

Alors voilà j'utilise la SFML 2 et j'ai un problème je souhaite utiliser une image avec des vertexarray pour ensuite modifier la position des vertexarray et "étirer" l'image pour essayer de créer un effet de perspective, voici mon code :


#include <iostream>
#include <SFML/Graphics.hpp>
 
sf::RenderWindow app;
 
int main()
{
    app.create(sf::VideoMode(900, 675, 32), "Titre fenetre", sf::Style::Close);
 
    sf::Texture plancherTexture;
    plancherTexture.loadFromFile("plancher.png");
 
    sf::VertexArray points(sf::Quads, 4);
 
    points[0].position = sf::Vector2f(0, 0);
    points[1].position = sf::Vector2f(900, 0);
    points[2].position = sf::Vector2f(900, 675);
    points[3].position = sf::Vector2f(0, 675);
 
    points[0].texCoords = sf::Vector2f(0, 0);
    points[1].texCoords = sf::Vector2f(900, 0);
    points[2].texCoords = sf::Vector2f(900, 675);
    points[3].texCoords = sf::Vector2f(0, 675);
 
    sf::Clock time;
    while(app.isOpen())
    {
        sf::Event event;
        while(app.pollEvent(event))
        {
            if(event.type == sf::Event::Closed)
                app.close();
        }
        if(time.getElapsedTime().asMilliseconds() > 30)
        {
            points[2].position.x ++;
            points[3].position.x --;
 
            time.restart();
        }
 
        app.clear();
        app.draw(points, &plancherTexture);
        app.display();
    }
    return 0;
}

 


Il est assez basique voici l'image avant le code :

https://s3-eu-west-1.amazonaws.com/sdz-upload/prod/upload/plancher.png

Et voici le résultat après une dizaine de seconde de ma boucle :

https://s3-eu-west-1.amazonaws.com/sdz-upload/prod/upload/Sans%20titre91.bmp

On voit bien ici que la "perpective" que je voulais faire est mal faite car une ligne est nettement tracée et sépare mon image en 2 triangles.

Je pense que cela est du au fait que dans cette librairie les différentes primitives de forme (ici sf::Quads pour moi) sont faites à partir de triangles.

Ma question est la suivante : y a t-il moyen de contourner se problème ? Je vous remercie d'avance pour vos réponses ^^

Pages: [1]
anything