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 :

Désactiver les effets de perspective


Sujet :

DirectX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 264
    Points : 144
    Points
    144
    Par défaut Désactiver les effets de perspective
    Hello !

    Je programme en C# et j'utilise DirectX ...

    Est-il possible de désactiver les effets de perspective de telle manière que 2 droites parallèles apparaissent réellement parallèles à l'écran ?

    Merci !

  2. #2
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Ce que tu veux c'est une projection parallèle (aussi appelée ortho si les droites de projection parallèle sont orthogonales au plan de projection).

    La projection parallèle/ortho est un cas particulier de la projection perspective (avec le centre de projection "à l'infini"). en pratique la projection orthographique s'obtient en ayant une matrice de projection qui ramène toute coordonnées initiale à w=constant.

    eg :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1 0 0 0
    0 1 0 0
    0 0 1 0
    0 0 0 1 // <- quatrième coordonnée w = 0*x + 0*y + 0*z + 1*1 = 1
    Tu peux calculer cette matrice de projection ortho à la main ou utiliser la fonction préexistante D3DXMatrixOrthoLH/RH, qui va simplement remplir la matrice avec la formule décrite dans la documentation de ces fonctions.

    Pour déterminer la partie visible le hardware va continuer à faire référence au far plane et au near plane. Le far plane est lorsque la valeur z (=z/w=z/1) issue de cette matrice est égale à 1, le near plane lorsque la valeur z issue de cette matrice de projection est égale à 0.

    LeGreg

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 264
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par LeGreg Voir le message

    Tu peux calculer cette matrice de projection ortho à la main ou utiliser la fonction préexistante D3DXMatrixOrthoLH/RH, qui va simplement remplir la matrice avec la formule décrite dans la documentation de ces fonctions.

    LeGreg
    Merci LeGreg

    J'ai donc utilisé la matrice de projection orthogonale (instruction Matrix.OrthoLH(...)) et ça marche nickel

    Un petit mystère tout de même : j'utilise OrthoLH (et non OrthoRH) pour obtenir un résultat similaire à PerspectiveFovRH !?!

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

Discussions similaires

  1. Comment activer/désactiver les effets de flou de DWM? (FAQ)
    Par zubrow dans le forum Windows Vista
    Réponses: 3
    Dernier message: 01/12/2007, 22h15
  2. Réponses: 6
    Dernier message: 11/01/2005, 12h49
  3. Comment désactiver les actions automatiques de Windows ?
    Par j-phi dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 06/01/2005, 12h53
  4. désactiver les contraintes
    Par romainw dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/07/2004, 10h46
  5. Désactiver les touches F1, F2, F3, F4, F5 dans IE
    Par ZiZouJH dans le forum Flash
    Réponses: 7
    Dernier message: 17/02/2003, 09h59

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