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:
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?