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

DirectX Discussion :

affichage de font en 3D


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut affichage de font en 3D
    bonjour à tous

    Novice, je suis en train de développer une interface graphique sommaire en VB.net + directX.
    Le 1er objectif est de positionner un certain nombre de points dans l'espace, avec une "étiquette" à proximité (simplement le numéro de point).
    Pour l'affichage du numéro, j'utilise la commande drawtext de Direct3D.font.
    Le probleme est que cette commande positionne l'étiquette dans le repere 2D de la fenetre.
    Comment faire pour que l'étiquette coincide avec la position du point ? (point décrit par ses coordonnées spatiales X,Y,Z)

    merci

  2. #2
    Membre extrêmement actif

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    donc pour ton problème, ton point P dans l'espace 3D a des coordonnées (X, Y, Z), et toi tu cherche ou placer ton étiquettes dans l'espace de l'écran, on note P' (X', Y') la position de ton point dans l'espace 2D (espace de l'écran).

    tu as ensuite matWorld, matView et matProj les matrices respectivement de transformation dans le monde, dans le repère caméra et de projection.

    hors pour afficher ton point P sur l'écran, il faut transformer ton point avec toutes ces matrices : P' = P * matWorld * matView * matProj.

    ensuite tu utilise les coordonnées de P' pour en déduire la position de ton étiquette sur l'écran.

    bémol à cette explication : si je me rappelle bien la position de P' sera dans comprise dans l'intervalle [-1, 1]*[-1, 1] hors il me semble quand tu affiche du texte, tu utilise directement les coordonnées écran (1024*768 par exemple) donc tu auras un calcul supplémentaire à faire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    Bonjour
    merci pour ta réponse.
    A priori, il faut donc bien utiliser la commande Project associée à un objet de type vector3.
    L'aide indique "project a vector from object space into screen space".
    Elle nécessite comme arguments, dans l'ordre : le vecteur à projeter, viewport, matrice_projection, matrice_view, matrice_world (les 3 matrices comme indiqué dans ta réponse).
    Qu'est ce que ce 2ème argument viewport ? (type Object)
    2ème chose : la commande Project renvoie un objet de type vector3 également. Comment ensuite récupérer les coordonnées de l'écran 2 D ?
    Merci

  4. #4
    Membre extrêmement actif

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    le viewport c'est vulgairement l'endroit où tu fais l'affichage, la plupart du temps la fenêtre de ton application.

    après vérification, ici le viewport c'est les caractéristiques de ton affichage : coordonnées du point supérieur gauche, les dimensions en pixels, etc ...

    pour les coordonnées dans de l'écran 2D, il suffit de lire dans ton vecteur résultant les coordonnées x et y.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    merci pour ta réponse !
    la commande project marche pas mal
    (j'ai mis simplement device.Viewport en 2eme argument)

    bonne journée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2013, 17h21
  2. PyGame : Affichage des fonts
    Par Ziranium dans le forum Programmation multimédia/Jeux
    Réponses: 8
    Dernier message: 28/04/2011, 22h38
  3. Affichage de font-family dans <option> ne marche pas
    Par Sports47 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/08/2010, 16h02
  4. Problème d'affichage de font
    Par ZeTatanka dans le forum Mise en forme
    Réponses: 3
    Dernier message: 19/02/2009, 12h14
  5. Probleme affichage de couleur de font
    Par Cesardust dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 28/01/2008, 16h40

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