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 :

[Rotations] Un objet sur une planete, comment faire ?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 430
    Points : 93
    Points
    93
    Par défaut [Rotations] Un objet sur une planete, comment faire ?
    Bonjour, je crée un jeu en ligne qui utilise directx9 et dans lequel notre personnage doit pouvoir se balader autour d'une planète.
    Première chose je dois pouvoir transmettre la position du bonome avec le minimum de variables puisque c'est un jeu en ligne.
    Deuxieme chose je dois pouvoir avancer en ligne droite et changer de direction, mais voila avec les rotations c'est la galère. Je prendre une matrice que je ne réinitialise pas, et pencher le personnage du coté voulu pour qu'il garde la tere en dessous de ses pieds mais ça veut dire que je vais devoir transmettre toute la matrice.
    Si quelqu'un pouvait m'aider, ce serait gentil.

    Merci d'avance.

  2. #2
    Membre actif Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Points : 207
    Points
    207
    Par défaut
    Je prendre une matrice que je ne réinitialise pas
    Déjà ça me parait mal partie
    et pencher le personnage du coté voulu pour qu'il garde la tere en dessous de ses pieds
    Ne peux-tu pas utiliser un peu de trigo () pour t'en tirer?
    - hp pavillon dv7
    - intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz 2.27GHz
    - nVidia GeForce 9600M GT
    - mémoire vive : 3.0Go

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 430
    Points : 93
    Points
    93
    Par défaut
    Merci pour ces indications, mais ne voyant toujours pas comment faire, j'ai fais comme je pensais, (ma matrice que je ne réinitialise pas ), et ça fonctionne parfaitement, reste à voir comment la transmettre, est-ce que je suis obliger de transférer les 16 valeurs ou ça peut fonctionner en la transformant en quaternion (ce qui fera seulement 4 valeur me semble t'il) ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par supergrey Voir le message
    Deuxieme chose je dois pouvoir avancer en ligne droite et changer de direction, mais voila avec les rotations c'est la galère. Je prendre une matrice que je ne réinitialise pas, et pencher le personnage du coté voulu pour qu'il garde la terre en dessous de ses pieds mais ça veut dire que je vais devoir transmettre toute la matrice.
    Si quelqu'un pouvait m'aider, ce serait gentil.

    Merci d'avance.
    Non, tu ne transmets pas toute la matrice : tu utilises un système de coordonnée qui a du sens (dans ton cas: l'espace tangent à la sphère). Si ta sphère est de bonne taille par rapport au déplacement des personnages (comme c'est le cas dans la plupart des situations), tu peux approximer cet espace avec la portion d'un plan tangent à la sphère (et donc travailler sur un plan, au final). Sinon, tu peux travailler en coordonnées sphériques (tu n'as alors que 2 angles et une distance à transmettre pour avoir la position; + 2 angles et une distance pour avoir un vecteur de déplacement).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 430
    Points : 93
    Points
    93
    Par défaut
    En fait j'ai trouvé une autre solution qui est finalement, vu que c'est plus ou moins un FPS, j'ai besoin d'une visée, je transmet donc la position et le point de visée en 3d ce qui fait 6 valeurs au total.
    Merci

  6. #6
    Membre actif Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Points : 207
    Points
    207
    Par défaut
    Citation Envoyé par supergrey
    Merci pour ces indications, mais ne voyant toujours pas comment faire, j'ai fais comme je pensais, (ma matrice que je ne réinitialise pas ), et ça fonctionne parfaitement
    En effet si ca fonctionne pourquoi s'embêter...
    Citation Envoyé par supergrey
    est-ce que je suis obliger de transférer les 16 valeurs ou ça peut fonctionner en la transformant en quaternion (ce qui fera seulement 4 valeur me semble t'il) ?
    Je reprend juste la question pour préciser que la matrice(4*4) représente des transformations(translation, rotation...). Eventuellement, la translation "peut" représenter une position. Un quaternion en revanche représente une rotation et peut être transformé en matrice(3*3), donc pas de position... mais la FAQ saura mieux l'expliquer que moi
    - hp pavillon dv7
    - intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz 2.27GHz
    - nVidia GeForce 9600M GT
    - mémoire vive : 3.0Go

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 430
    Points : 93
    Points
    93
    Par défaut
    Oui en cherchant un peu j'avais compris que les quaternions représentent uniquement les rotations...

Discussions similaires

  1. Bulle BD sur une image, comment faire ?
    Par isa150183 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/02/2015, 11h31
  2. Requête tableau sur 12 mois d'une année, comment faire ?
    Par clickandgo dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 13/04/2012, 12h59
  3. [PrestaShop] Template prestashop tableau sur une ligne comment le faire passer sur plusieurs lignes
    Par ptitepo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 23/12/2010, 02h47
  4. Réponses: 13
    Dernier message: 09/05/2006, 16h30
  5. Debugger avec VC++ 5 une DLL. Comment faire ?
    Par Pierre8r dans le forum MFC
    Réponses: 2
    Dernier message: 11/02/2005, 09h32

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