#0 

17-05-2007 11:36:37

56ka
Membre
Date d'inscription: 01-05-2007
Messages: 19

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 :

Code:

ICameraSceneNode* camera = smgr->addCameraSceneNode();

j'ai essayé comme ça, mais sans sucès :

Code:

camera->setRotation(vector3df(45,45,0));

Alors si vous avez une suggestion ^^



(la hont' lol)


Merci bien

Hors ligne


#1 

17-05-2007 12:49:49

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

bonjour a toi 56k,

56ka :

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


#2 

17-05-2007 13:05:41

56ka
Membre
Date d'inscription: 01-05-2007
Messages: 19

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


#3 

17-05-2007 15:22:33

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
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


#4 

17-05-2007 15:34:38

katsankat
Membre
Date d'inscription: 24-02-2007
Messages: 43

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


#5 

17-05-2007 15:35:39

katsankat
Membre
Date d'inscription: 24-02-2007
Messages: 43

Ah tu as été plus rapide copland.

Hors ligne


#6 

17-05-2007 17:05:48

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

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 :

Code:

        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 :

Code:

        cam->setUpVector(irr::core::vector3df(sin(az),cos(az),0));

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

Dernière modification par firnafin (17-05-2007 17:16:52)

Hors ligne


#7 

18-05-2007 07:23:04

56ka
Membre
Date d'inscription: 01-05-2007
Messages: 19

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