17-08-2010 13:50:21
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 86.209.109.170
- Courriel
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
17-08-2010 15:13:10
- Magun
- Administrateurs

- Date d'inscription:
- Messages: 910
- IP: 188.93.45.30
- Courriel Site web
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
17-08-2010 15:49:21
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 86.209.109.170
- Courriel
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
17-08-2010 20:57:28
- Magun
- Administrateurs

- Date d'inscription:
- Messages: 910
- IP: 188.93.45.30
- Courriel Site web
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 ..
Hors ligne
18-08-2010 12:18:32
- TUpac
- Membres

- Date d'inscription:
- Messages: 387
- IP: 80.13.52.19
- Courriel
[hs]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++" ![]()
bisoux ![]()
ps : Tupac tu devrais te rentre sur le forum FR++ de toute urgence !!
Tupac : Bisoux ![]()
Fixed : Bisous (sourire)
:p[/hs]
"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."
Hors ligne
18-08-2010 12:59:40
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 86.209.109.170
- Courriel
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
18-08-2010 13:08:06
- nico
- Administrateurs

- Date d'inscription:
- Messages: 563
- IP: 82.232.128.163
- Courriel
[hs]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 ?[/hs]
Hors ligne
18-08-2010 19:15:32
- Magun
- Administrateurs

- Date d'inscription:
- Messages: 910
- IP: 188.93.45.30
- Courriel 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.
[hs]
@all other: ça va vous vous amusez bien ? ![]()
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 ! ![]()
ah oui et le dernier j'ai mon correcteur orthographique sous windows, or je suis en permanence sous linux ![]()
const char ps[3][] =
{
"c'est pas bien de polluer un topic !
\
",
"oui je sais j'en fait partie\
...",
0
};[/hs]
Hors ligne
19-08-2010 01:18:05
- TUpac
- Membres

- Date d'inscription:
- Messages: 387
- IP: 88.168.3.38
- Courriel
[hs]mais lol !! ce sont des prétextes à deux balles mais je vais les accepter ![]()
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");[/hs]
"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."
Hors ligne
19-08-2010 02:31:54
- nico
- Administrateurs

- Date d'inscription:
- Messages: 563
- IP: 82.232.128.163
- Courriel
"-1e+006" ? y a t-il un rapport avec epsilon ?
[hs]
Magun Ecris:
Sa va vous vous amusé bien ?
j'avoue

Magun Ecris:
c'est pas bien de polué un topic !

edit: pas taper
[/hs]
Hors ligne



