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
un peu de code ? non ...
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 ....
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
Déjà merci d'avoir répondu.
Voici le 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
uhm je pensais que tu utilisais un terrain perso, mais la du coup sa change tout ... ça viens directement d'irrlicht
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
sur ce, bonne soirée/journée/nuit/matiné/... !
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
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 ..
Hors ligne
hum, le problème c'est que j'ai besoin de régler ce problème assez vite.
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
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 ! .
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
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
@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.
Hors ligne
mais lol !! ce sont des prétextes à deux balles mais je vais les accepter
Hors ligne
"-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
Hors ligne