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

Développement 2D, 3D et Jeux Discussion :

Rotation de texture sur un cube en 3D


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Rotation de texture sur un cube en 3D
    Bonjour,

    Je développe un jeu en 3D sur XNA en C#. Et je sèche sur un problème de Math qui je pense est assez simple.

    Dans mon jeu j'affiche un Cube en 3D avec une texture représentant du texte. Le joueur peut tourner le cube dans toutes les direction. J'aimerais que mon texte garde toujours la bonne orientation pour que l'utilisateur puisse toujours le lire.

    Example : J'affiche le texte "Coucou" et l'utilisateur retourne le cube de 180°, dans l'état actuel des choses le texte est à l'envers, j'aimerai retourné ma texture automatiquement pour que mon texte sois toujours à l'endroit.

    Je n'arrive pas à trouver comment determiner l'angle que je doit appliquer à mes coordonnées de textures. Pouvez vous m'aidez?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 942
    Points
    4 942
    Par défaut
    bonsoir, pour ton problème, il faudrait jouer avec les coordonnées de textures :

    modifier les coordonnées de texture de chaque vertex dynamiquement en fonction du vecteur haut de ta caméra.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta reponse.

    J'ai bien compris comment faire la rotation de la texture, mais ce que je n'arrive pas à voir c'est comment trouver l'angle de rotation?

    Tu dit en fonction du vecteur up de la camera, mais je ne vois pas comment?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 942
    Points
    4 942
    Par défaut
    quand tu as ta caméra, tu connais forcément les vecteurs up, right et direction (lignes ou colonnes de la matrice de vu, selon que tu sois en dx ou opengl)

    ensuite il faut donc que haut de ta texture soit aligné avec le haut de ta caméra pour que ça reste lisible.

    alors là ça devient technique :
    - tu projettes l'axe vertical actuel de ta caméra sur un plan ayant pour normal le vecteur normal de la surface contenant ta texture
    - tu fais un produit scalaire entre ce vecteur projeté et le vecteur up de ta texture
    - tu obtiens un angle qui correspondra à ce qu'il faut appliquer comme rotation à la texture pour que les 2 vecteurs hauts correspondent.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta reponse! et désolé pour ma réponse tardive, je vais essayer ça et je reviens si j'ai des soucis

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé ta technique mais je seche sur un point, le calcul du projeté du vecteur up de ma camera sur le plan contenant ma texture.

    J'ai essayer une formule comme celle la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vector v1_projected = v1 - Dot(v1, n) * n;
    ou n est le vecteur normal du plan et v1 le projeté.
    Mais ça ne marche pas vraiment, je ne sais pas si c'est la bonne formule, pouvez vous m'aider?

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 942
    Points
    4 942
    Par défaut
    bonjour,

    ce que tu as écris semble bon,
    voici la page que j'utilise : http://www.jdotec.net/s3i/Mecanique/...on_vecteur.php

Discussions similaires

  1. c# applisquer 6 texture sur un cube
    Par t-die dans le forum DirectX
    Réponses: 1
    Dernier message: 08/06/2006, 17h54
  2. Réponses: 4
    Dernier message: 16/03/2006, 17h50
  3. Texture sur un cube en rotation sous Delphi !!!
    Par Cosmo dans le forum DirectX
    Réponses: 1
    Dernier message: 06/01/2004, 21h14

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