#1 

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


#2 

08-11-2008 18:27:13

tmyke
Administrateurs
Avatar de tmyke
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 hmm (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

wink


Force et sagesse...

Hors ligne


#3 

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


#4 

09-11-2008 11:20:26

tmyke
Administrateurs
Avatar de tmyke
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à. wink


Force et sagesse...

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
141 invités en ligne
membre en ligne: -
RSS Feed