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

C++ Discussion :

Raytracer camera mal orienté


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Raytracer camera mal orienté
    Bonjour,

    Je suis en train de faire un raytracer et j'ai un petit problème qui vient surement de ma caméra. Dans l'image final, les axes x et y sont inversés, x étant verticalement maintenant. Je suppose que c'est du à une mauvaise initialisation de la caméra?

    Ma caméra est défini comme un vecteur3D position, direction, upVecteur, rightVecteur.

    J'initialise ma caméra par rapport à la scène comme ceci:
    (center est le point au centre de la scène

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //camera
        Camera * cam = new Camera();
     
        //position de la caméra
        Vec3Df camPos = Vec3Df(center[0], center[1], center[2] + 7);
        cout<<"camPos "<<camPos<<endl;
     
        //direction de la camera
        Vec3Df direction = Vec3Df(center[0]-camPos[0], center[1]-camPos[1], center[2]-camPos[2]);
        direction.normalize();
        cout<<"direction "<<direction<<endl;
     
        //up vector de la caméra
        Vec3Df upVector = Vec3Df(0.0f, 1.0f, 0.0f);
        cout<<"upVector "<< upVector<<endl;
     
        //right vector de la camera
        //Vec3Df produitRV = Vec3Df::crossProduct(direction, upVector);
        //cam->setRightVector(produitRV);
        //Vec3Df rightVector = cam->getRightVector();
        Vec3Df rightVector = Vec3Df(1.0f, 0.0f, 0.0f);
        cout<<"rightVector "<<rightVector<<endl;
    Est-ce que c'est bien comme ca que je dois faire pour le vecteur up et right?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 901
    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 901
    Points : 219 891
    Points
    219 891
    Billets dans le blog
    125
    Par défaut
    Bonjour,

    Cela me semble juste, mais pour moi, vous n'avez pas besoin d'un vecteur "right". En effet, d'une part il se calcule avec un dot product entre la direciton et le "up".

Discussions similaires

  1. Problème orientation camera Galaxy Ace
    Par Arno5788 dans le forum Android
    Réponses: 7
    Dernier message: 04/06/2012, 09h48
  2. Menus déroulants : souris mal orientée
    Par Try-again dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/12/2007, 10h42
  3. Orientation et Rotation camera 3D
    Par pkpas dans le forum Moteurs 3D
    Réponses: 9
    Dernier message: 31/07/2007, 23h02
  4. [SGBDOO] Base de données orientée objet
    Par Jaona dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 14/04/2003, 11h07
  5. Texte // camera
    Par logramme dans le forum DirectX
    Réponses: 1
    Dernier message: 10/08/2002, 21h05

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