#0 

08-11-2008 18:58:09

Hawk
Membre
Lieu: Wissous
Date d'inscription: 08-11-2008
Messages: 91
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


#1 

08-11-2008 19:27:13

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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/ … orthogonal

et

http://irrlicht.sourceforge.net/phpBB2/ … orthogonal

wink


Force et sagesse...

Hors ligne


#2 

09-11-2008 10:45:02

Hawk
Membre
Lieu: Wissous
Date d'inscription: 08-11-2008
Messages: 91
Site web

Merci pour tes liens.
Sur le deuxième, j'ai trouvé ce bout de code (j'ai adapté à mes paramètres)

Code:

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


#3 

09-11-2008 12:20:26

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
101 invités en ligne
Aucun membre connecté
RSS Feed