#0 

17-08-2010 15:50:21

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

Salut,

Pour mon programme, j'aurais besoin de la fonction getHeight(), jusque là tout va bien, mais le problème c'est que mon terrain subit une rotation ( sur l'axe Y), et getHeight, ne me renvoie que "-1e+006" (où que je sois sur le terrain), mais si j'enlève la rotation, getHeight() me renvoie la bonne hauteur.  Comment régler ce problème, tout en gardant la rotation?

Hors ligne


#1 

17-08-2010 17:13:10

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

un peu de code ? non ... smile

bon sinon je ne sais pas trop comment tu gères ça, avec un picking sans doute, enfin j'imagine ... dans cette optique tu peut faire subir une transformation aux coordonnée du picking avec les matrices, ce qui devrait faire pointer le bon endroit

sinon tu refais ta fonction getHeight en te basant sur les coordonnées x,z du terrain, moins pratique dans certain cas j'avoue, mais avec la même approche ( avec les matrices ), il doit tout de même y avoir moyen d'obtenir les mêmes résultats, et plus rapide je penses, car les méthode de picking sont basées sur du raycast en général et plutôt lent ...

bref je parle dans le vent sans codes .... wink
ah et es tu sûr que quand tu cherches à appeler getHeight(), tu as le bon node ? possible que tu te retrouves avec un pointeur invalide/vide/...

Hors ligne


#2 

17-08-2010 17:49:21

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

Déjà merci d'avoir répondu. smile
Voici le code:

Code:

// Dans main
// .....

    terrain = smgr->addTerrainSceneNode(
            TCheminNiveau[3].c_str(),
                0,                                      // parent node
                -1,                                     // node id
                core::vector3df(0.f, 0.f, 0.f),         // position  
                core::vector3df(0.f, -90.f, 0.f),         // rotation
                core::vector3df(31.87f, 10.87f,31.87f),      // scale 
                video::SColor ( 255, 255, 255, 255 ),   // vertexColor
                5,                                      // maxLOD
                scene::ETPS_17,                         // patchSize
                4                                       // smoothFactor
                );
        terrain->setMaterialFlag(video::EMF_LIGHTING, false);
    terrain->setMaterialFlag(video::EMF_FOG_ENABLE, true);
       terrain->setMaterialTexture(0, driver->getTexture("terrain-texture.jpg"));
       terrain->setMaterialTexture(1, driver->getTexture("detailmap3.jpg"));

while(device->run())
{
//.......
//.......
posCam = camera->getPosition();
cout << terrain->getHeight(posCam.X, posCam.Z) << endl;
//.....

Il y a juste ça dans le code qui concerne le terrain. Et il suffit que je remplace -90.f par 0.f dans rotation pour que tout marche parfaitement.

Hors ligne


#3 

17-08-2010 22:57:28

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

uhm je pensais que tu utilisais un terrain perso, mais la du coup sa change tout ... ça viens directement d'irrlicht hmm

bon, pour se faire je te conseil d'utiliser un terrain de TMyke dispo sur ce forum, ou quelque chose dans le même style, ou regarde sur le forum officiel
il sont plus optimisés que celui de "base" proposé par l'engine

c'est temporaire ou pas, cela dépend de tes besoins, ou de tes << capacités ? >>
sinon il est probable que ce ne soit qu'un bug de ta version d'irrlicht, il y a peut-être un corectif sous la svn, si tu n'y est pas déjà sinon repasse en release,  on ne sait jamais smile

sur ce, bonne soirée/journée/nuit/matiné/... ! wink

edit/ps: je peux toujours te conseiller sur le moteur de terrain, j'ai bien du tous les regarder, si tu en fait un, regarde l'exemple 23 ..

Dernière modification par Magun (17-08-2010 23:02:55)

Hors ligne


#4 

18-08-2010 14:18:32

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Magun :  je peut toujours te conseiller sur le moteur de terrain, j'est bien du touse les regardés, si tu en fait un, regarde l'exemple 23 ..
Fixed  :  je peuX toujours te conseiller sur le moteur de terrain, j'AI bien du touS les regardER, si tu en fait un, regarde l'exemple 23 ..

Sans rancune Magun? je ne peux résister quand c'est aussi gros. Rassure toi t'es pas le seul à recevoir des cours de français, c'est plus fort que moi.
Au fait! Nico j'aimerai faire une réclam. pour un nouveau forum qui se trouverait juste après "aide au language C++" et qui s'intitulerait :"aide au language FR++" big_smile

bisoux smile


ps : Tupac tu devrais te rentre sur le forum FR++ de toute urgence !!

Tupac : Bisoux smile
Fixed  : Bisous (sourire)

:p


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#5 

18-08-2010 14:59:40

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

hum, le problème c'est que j'ai besoin de régler ce problème assez vite. sad
Mais c'est quoi exactement les terrains de TMyke? Car je n'ai pas trouvé en cherchant sur le forum.
Pour le problème de version, j'ai déjà essayé sur plusieurs versions et à chaque fois ça ne marchait pas.

Hors ligne


#6 

18-08-2010 15:08:06

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Bein alors Tupac, es-tu fatigué en ce moment ? Tu zappe le plus mythique.

cela dépent de t'est beusoin, ou de t'est << capaciter ? >>


hein bâte table ! wink.
Je vais essayer de trouver une solution, je songe à mettre en place un système de correction, je vous tiens au courant...

ps: lol, on se marre, mais la grammaire française est bien plus complexe que tout les langages de programmations réunis
nb: oui moi aussi je fait souvent des fautes sad
edit: les liens de tmyke sont morts, pourrais-tu poster le code Magun ? tiens d'ailleur je sais pas ce qu'il devient tmyke, quelqu'un à des nouvelles ?

Hors ligne


#7 

18-08-2010 21:15:32

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

@Kit-fisto24: pour le terrain de TMyke http://irrlicht-fr.org/viewtopic.php?id=533
si tu ne le trouves pas très pratique je peux (re)chercher sur le forum officiel, ceux qui m'avaient plu.


@all other: ça va vous vous amusez bien ? wink
vous avez de la chance je suis de bonne humeur ( internet rétabli après 4 ou 5h de coupure ! )
trois infos histoire de me trouver des prétextes **sifflote**

je l'ai déjà spécifié à nico, mais, mes vacances se sont résumées à 18h de pc par jour, et depuis peu 20h ...
je bosse évidemment dans le noir, et je ne vois évidemment pas mon clavier ! hmm
ah oui et le dernier j'ai mon correcteur orthographique sous windows, or je suis en permanence sous linux smile

const char ps[3][] =
{
    "c'est pas bien de polluer un topic ! neutral\n",
    "oui je sais j'en fait partie\n ...",
    0
};

Hors ligne


#8 

19-08-2010 03:18:05

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

mais lol !! ce sont des prétextes à deux balles mais je vais les accepter smile
Même si le correcteur fonctionne à merveille sous linux, il est aussi vrai qu'il ne gère pas la grammaire.

std::vector<std::string> ps;
ps.push_back("Magun:Sa va vous vous amusé bien   Fixed:Ca va vous vous amusEZ bien");
ps.push_back("Magun:je les déjà spécifié à nico        Fixed:je l'AI déjà spécifié à nico");
ps.push_back("http://www.pcpractic.rs/data/products/5/g11_keyboard_usb_us_layout.jpg");
ps.push_back("C'est bon j'arrête de te souler promis :p");


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#9 

19-08-2010 04:31:54

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

"-1e+006" ? y a t-il un rapport avec epsilon ?


Magun :

Sa va vous vous amusé bien ?


j'avoue

Magun :

c'est pas bien de polué un topic !





edit: pas taper wink

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
102 invités en ligne
Aucun membre connecté
RSS Feed