#1 

17-05-2007 09:36:37

56ka
Membres
Date d'inscription:
Messages: 19
IP: 83.76.57.167
Courriel

Salut à tous

Je suis nouveau sur Irrlicht, mais j'ai quand même un peu d'expérience dans la prog (4 ans à fond).
La 3D n'est pas nouvelle pour moi, mais j'utilisait un autre truc (le DarkBasic)

Bon voilà le problème. Il est si stupide que j'ai longuement hesité à poster smile

Comment fait-on pour faire rotationner (hum) la camera ?

voici la partie de code en question :

ICameraSceneNode* camera = smgr->addCameraSceneNode();

j'ai essayé comme ça, mais sans sucès :
camera->setRotation(vector3df(45,45,0));

Alors si vous avez une suggestion ^^



(la hont' lol)


Merci bien


Hors ligne


#2 

17-05-2007 10:49:49

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 88.137.158.175
Courriel

bonjour a toi 56k,

56ka Ecris:

Comment fait-on pour faire rotationner (hum) la camera ?

je ne comprends meme pas ou est le probleme si tu veux faire tourner ta cam tu fait comme tu la dis toi meme avec
setRotation ou a lors le hum veut dire quelque chose.
explique mieu le probleme sinon on poura pas d'aide : resultat voulu ...


Hors ligne


#3 

17-05-2007 11:05:41

56ka
Membres
Date d'inscription:
Messages: 19
IP: 83.76.57.167
Courriel

Le problème, c'est que je veux faire tourner la camera sur elle-même.

alors j'ai essayé avec setRotation, mais elle ne bronche pas...

voilà


merci ^^


Hors ligne


#4 

17-05-2007 13:22:33

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.5.18.182
Courriel  Site web

Hello,
Je pense que c'est normal, une camera c'est avant tout un point de position X,Y,Z et un point de Target X,Y,Z.
Essaye plustot de pointer vers un target du genre setTarget smile.
Si tu veux une rotation de la cam, là c'est pas du DB, il te faudra programmer toi même les rotations en passant par les matrices.Sinon peu être en utilisant un cameraFPS qui contient déjà les routines de rotation ou en repiquant une partie du code source.
Voilou @++


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#5 

17-05-2007 13:34:38

katsankat
Membres
Date d'inscription:
Messages: 43
IP: 86.200.236.240
Courriel

Tu peux calculer un point qui tourne autour de la cam et faire cam->setTarget(vectorpos). Fais chauffer les cosinus et les normalize().

Sinon pour faire plus simple, créer un FlyCircleAnimator (comme dans l'exemple 4), puis définir cet animator comme cible de la camera avec setTarget(). Dans la boucle principale cam->setTarget(n->getPosition());


Hors ligne


#6 

17-05-2007 13:35:39

katsankat
Membres
Date d'inscription:
Messages: 43
IP: 86.200.236.240
Courriel

Ah tu as été plus rapide copland.


Hors ligne


#7 

17-05-2007 15:05:48

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 88.137.158.175
Courriel

Excuse moi .
je me suis bien planté hmm ,a savoir pourquoi setRotation marche pas mais est proposé ... pas tres logique puisque considérée en tant que node elle devrai trouner .
Bon si tu ne veux tout de meme la faire tourner (sans passer par les matrices et par cameraFPS ) voici comment faire selon y et x :

		cam->setTarget(cam->getPosition()+irr::core::vector3df(cos(ax)*cos(ay),sin(ax),sin(ay)*cos(ax))  );

Attention si ay=0 la cam point en x.

je réédites j'avais oublier ca:

et pour la rotation en selon z tu fais juste :
		cam->setUpVector(irr::core::vector3df(sin(az),cos(az),0));

(j'espere que je me suis fait pardonner .. smile )


Hors ligne


#8 

18-05-2007 05:23:04

56ka
Membres
Date d'inscription:
Messages: 19
IP: 83.77.43.92
Courriel

cool merci beaucoup !!!!!


Dommage qu'il n'y ait pas une fonction comme pour les node (setRotation)... Ils auraient pu rester dans la même ligne ^^


Alors merci beaucoup


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
118 invités en ligne
membre en ligne: -
RSS Feed