Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLU] VertexArray et déformation de texture  (Lu 2404 fois)

0 Membres et 1 Invité sur ce sujet

gostron

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
[RESOLU] VertexArray et déformation de texture
« le: Mai 13, 2013, 08:17:18 pm »
Bonjour,

Un petit post pour m'étonner de quelque chose :)

Je comptais faire quelques tests pour faire un effet de perspective sur des textures (en utilisant des VertexArray et en leur donnant la forme de trapèzes comme pour le mode 7 de la SNES donc)

et je fus assez surpris avec le résultat (voir pièce jointe) avec à gauche l'image déformée (mais en deux triangles, et non comme je m'y attendais ^^) et à droite l'image d'origine.

D'où ma question, peut-on faire une déformation trapèze nativement ? Est-ce moi qui m'y suis mal pris ?

Dans le doute voici le code de création de l'array :

    sf::VertexArray array(sf::Quads, 4);
    int leftHeight(100);
    int rightHeight(100);
    int topWidth(50);
    int botWidth(100);
    array[0].position = sf::Vector2f(640-topWidth, 360-leftHeight);
    array[0].texCoords = sf::Vector2f(0, 0);
    array[1].position = sf::Vector2f(640+topWidth, 360-rightHeight);
    array[1].texCoords = sf::Vector2f(tex.getSize().x, 0);
    array[2].position = sf::Vector2f(640+botWidth, 360+rightHeight);
    array[2].texCoords = sf::Vector2f(tex.getSize().x, tex.getSize().y);
    array[3].position = sf::Vector2f(640-botWidth, 360+leftHeight);
    array[3].texCoords = sf::Vector2f(0, tex.getSize().y);
 

[attachment deleted by admin]
« Modifié: Mai 14, 2013, 07:43:28 am par gostron »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : VertexArray et déformation de texture
« Réponse #1 le: Mai 13, 2013, 11:00:02 pm »
Non, ce n'est pas possible en 2D pure. Comme tu l'as sans doute remarqué, le mapping de la texture est correct, dans le sens où ça correspond bien à ce que tu as spécifié dans ton code ; ce n'est juste pas ce à quoi tu t'attendais. Et ce à quoi tu t'attendais, c'est un mapping corrigé pour tenir compte de la perspective, et ça n'est possible qu'avec de la vraie 3D (c'est la coordonnée Z qui permet de corriger le mapping).
Laurent Gomila - SFML developer

gostron

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : VertexArray et déformation de texture
« Réponse #2 le: Mai 14, 2013, 07:43:07 am »
Merci pour la réponse rapide, c'est bien ce que je pensais :)

Sujet clos j'imagine.