IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XNA/Monogame Discussion :

[MapEditor] Déformation de la texture à l'aggrandissement du graphicsDevice


Sujet :

XNA/Monogame

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut [MapEditor] Déformation de la texture à l'aggrandissement du graphicsDevice
    Bonjour, je souhaite réaliser mon éditeur avec uniquement 3 graphicsDevice (map générale, mini-map et tileset) pour cela il faut qu'au chargement d'une deuxiéme map modifier la position du graphicsDevice dans le bonne onglet et adapter sa taille à celle de la nouvelle map.

    Le probléme est le passage d'un graphicsDevice d'une taille de 160x160 à celle d'un 3200 x 3200 (exemple), et bien la texture est déformée malgré le fait que je fasse un Clear et que je redessine la texture.

    Ce problème apparait uniquement lors de l’agrandissement, et avec beaucoup de différence entre les deux tailles.

    Le code est très simple je ne pense pas que le problème viennent de celui ci, je pense à un bug, une limite technologique lorsque l'on redimensionne un graphicsDevice dans un TabControl.

    Ce problème me fait douter de cette technologie, j'hésite à me lancer dans le C++ avec Qt et SFML. Le problème c'est que je devrait apprendre le C++.
    Sinon devrais-je instancier un graphicsDevice différent pour chaque map, et à chaque redimensionnement de celle ci ? Je ne trouve pas ça bien propre, et lourd en mémoire.

    Etes vous déjà tombé sur ce problème ? Auriez vous une solution ? Que me conseillerez vous de faire ?

    Le graphicsDevice s’agrandit mais la texture à l'intérieur de celui ci aussi et garde une taille proportionnelle à celle du graphicsDevice.

    http://www.noelshack.com/2015-44-1445946742-i2.png

    http://www.noelshack.com/2015-44-1445947497-i1.png

    Merci & bonne journée.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Alors je pense avoir trouvé une solution, mais je n'ai pas compris comment cela marche.
    J'ai mis un BackBufferWith et Height à mon graphicsDevice égal à la taille de la map moins 1. Au dela l'image prend tout l'écran.

    Pourriez vous m'expliquer le fonctionnement de ces propriétés svp ?

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Ces tailles définissent les tailles du tampon d'image utilisé pour faire le rendu (là où est vraiment dessiner la scène). Ce rendu ("texture") pourra être redimensionné par la suite, pour correspondre à la taille de la fenêtre.

    Si vous modifiez la taille du GraphicsDevice, je vous conseillerai de faire le Clear() avant le redimensionnement. Car le Clear() n'agit que sur la taille actuelle du Device et donc, ne va pas nettoyer tout le tampon (?).
    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.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Merci oui j'avais trouvé l'astuce cela marche, cependant j'ai changer de technique. Avant j'avais un Graphics à la taille de la map. Maintenant le graphics fait constamment la taille de la fenêtre et je calcule les cellules à affiché en fonction des scrolls, taille fenêtre et scale, au lieu de bêtement changer de position de graphics.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/12/2006, 18h02
  2. déformation de texture
    Par f56bre dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/09/2006, 11h40
  3. Chargement d'une texture a partir de la mémoire
    Par logramme dans le forum DirectX
    Réponses: 6
    Dernier message: 27/01/2003, 15h57
  4. Mosaïque texturée
    Par Pode dans le forum OpenGL
    Réponses: 5
    Dernier message: 19/09/2002, 10h50
  5. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 02h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo