08-11-2008 17:58:09
- Hawk
- Membres
- Date d'inscription:
- Messages: 91
- IP: 82.121.134.3
- Courriel Site web
Bonjour.
J'aimerai savoir si quelqu'un sait comment faire une projection parallèle avec Irrlicht. Je m'explique:
J"ai une caméra placé au dessus de mes objets, et je voudrais que la projection se fasse sans perspective, par exemple on ne verrai que la face du haut d'un cube, peut importe où il est passé.
Est-ce que quelqu'un sait comment faire?
Ca fait quelque temps que je cherche, j'ai essayé d'imposer une matrice de projection à ma caméra, mais ca ne marche pas (en tout cas, avec les matrices de projection que j'ai trouvée sur Internet, ca ne marche pas).
Merci.
Hors ligne
08-11-2008 18:27:13
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.33.58.64
- Courriel
En fait tu cherches à faire une projection Orthogonale. Je n'ai point le temps de te faire un code ce soir
(sorry)
mais, regarde ces deux post du forum off, tu devrais trouver une bonne source d'inspiration:
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=414&highlight=projection+orthogonal
et
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=16071&highlight=projection+orthogonal![]()
Force et sagesse...
Hors ligne
09-11-2008 09:45:02
- Hawk
- Membres
- Date d'inscription:
- Messages: 91
- IP: 83.114.156.215
- Courriel Site web
Merci pour tes liens.
Sur le deuxième, j'ai trouvé ce bout de code (j'ai adapté à mes paramètres)
camera = smgr->addCameraSceneNode(0,core::vector3df(0,1,0),core:vector3df(0,0,0));
core::matrix4 IsoMatrix;
IsoMatrix.buildProjectionMatrixOrthoLH(40.0f,30.0f,250.0f,-510.0f);
camera->setProjectionMatrix(IsoMatrix);
camera->setIsOrthogonal(true);Et avec quelques réglages, j'ai obtenu ce que je cherchais. Merci beaucoup.
Au passage, quelle est la différence entre une matrice Orthogonale LeftHanded et RightHanded ?
Hors ligne
09-11-2008 11:20:26
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.33.58.64
- Courriel
En fait c'est la méthode d'orientation des trois axes dans l'espace, main droite ou main gauche.
Cela se traduit sur le calcul de la matrice comme suit si mes souvenirs sont bon:
2/w 0 0 0
0 2/h 0 0
0 0 1/zNear-zFar) 0
0 0 zNear/(zNear-zFar) 1
pour une orientation main droite, et pour une orientation main
gauche comme suit:
2/w 0 0 0
0 2/h 0 0
0 0 1/zFar-zNear) 0
0 0 zNear/(zNear-zFar) 1
Voilà. ![]()
Force et sagesse...
Hors ligne



