texte initial |
correction |
date |
hum, le problème c'est que j'ai besoin de réglé 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 version et a chaque fois ça ne marchait pas. |
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.
|
20-08-2010 23:38:39 |
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 .. |
uhm je pensais que tu utilisais un terrain perso, mais là du coup ça change tout ... ça vient directement d'irrlicht
bon, pour ce faire je te conseille d'utiliser un terrain de TMyke dispo sur ce forum, ou quelque chose dans le même style, ou regarde sur le forum officiel
ils 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 correctif sous la svn, si tu n'y es pas déjà sinon repasse en release, on ne sait jamais
sur ce, bonne soirée/journée/nuit/matinée/... !
edit/ps: je peux toujours te conseiller sur le moteur de terrain, j'ai bien dû tous les regarder, si tu en fais un, regarde l'exemple 23 ..
|
20-08-2010 23:37:55 |
un peut de code ? non ...
bon sinon je ne sais pas trop comment tu gère sa, avec un picking sans doute, enfin j'imagine ... dans cette optique tu peut faire subir une transformation au coordonnée du picking avec les matrices, se qui devraient faire pointer le bonne endroie
sinon tu refait 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 aproche ( 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 .... a et est tu sur que quand tu cherche a apeller getHeight(), tu a le bon node ? possible que tu te retrouve avec un pointer invalid/vide/... |
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/...
|
20-08-2010 23:35:22 |
oui tu as raison nabouill mais quand tu dit que tu repositionne la caméra en "Arrière" qu'est ce que l'arrière en 3d ?? c'est tout relatif
Quand tu dis camera fils, tu veux donc dire que toutes les transformations que l'objet va subir seront répercuté sur la caméra ? |
oui tu as raison nabouill mais quand tu dis que tu repositionnes la caméra en "Arrière" qu'est ce que l'arrière en 3d ?? c'est tout relatif
Quand tu dis camera fils, tu veux donc dire que toutes les transformations que l'objet va subir seront répercutées sur la caméra ?
|
20-08-2010 23:31:44 |
moi j'aurais plutôt dit, à l'initialisation: tu met ta camera fils de ta voiture, ensuite tu repositionne un peut la camera en arrière/hauteur. Puis: à chaque frame un petit "camera->setTarget(voiture->getposition());" devrait suffire.
A+ |
moi j'aurais plutôt dit,
à l'initialisation: tu mets ta camera fils de ta voiture, ensuite tu repositionnes un peu la camera en arrière/hauteur.
Puis: à chaque frame un petit "camera->setTarget(voiture->getposition());" devrait suffire.
A+
|
20-08-2010 23:31:07 |
moi en tout cas tout se que je dit c'est que ous n'aver pas beacoup chercher, le même "probleme" a été poser il n'y a pas une semaine et encore d'autre fois avans
http://irrlicht-fr.org/viewtopic.php?id=1403 http://irrlicht-fr.org/viewtopic.php?id=742 http://irrlicht-fr.org/viewtopic.php?id=416 ... etc |
moi en tout cas tout ce que je dis c'est que vous n'avez pas beaucoup cherché, le même "problème" a été posé il n'y a pas une semaine et encore d'autre fois avant
http://irrlicht-fr.org/viewtopic.php?id=1403
http://irrlicht-fr.org/viewtopic.php?id=742
http://irrlicht-fr.org/viewtopic.php?id=416 ... etc
|
20-08-2010 23:30:08 |
Pour cela, tu récupère la position de l'objet que tu veux suivre.
ex: OBJET->getPosition();
ensuite tu utilise cette position pour la caméra à laquel tu ajoute un offset (généralement tu augmente légèrement la hauteur (axe y)) afin que la caméra soit juste un peu au dessus de l'objet que tu suis. Ensuite il faut trouver le moyen de reculer la caméra derrière l'objet que tu suis même si celui-ci tourne sur son axe. Pour cela, récupère le vecteur direction (vecteur target) de l'objet en question. Le vecteur direction c'est la direction dans laquel l'objet regarde. Soustrais ensuite l'offset avec ce vecteur que tu multipliera par un valeur que tu choisira (affin que la caméra soit plus ou moins reculé)
ex: OBJECT\_position + core::vector3df(0,0.5f,0) - OBJECT\_target * val;
ensuite il faut que la caméra regarde dans la direction de l'objet donc tu modifie la variable target de la caméra et tu lui assigne la position de l'objet à suivre.
Voila j'espère être claire.
a+ |
Pour cela, tu récupères la position de l'objet que tu veux suivre.
ex: OBJET->getPosition();
ensuite tu utilises cette position pour la caméra à laquellle tu ajoutes un offset (généralement tu augmentes légèrement la hauteur (axe y)) afin que la caméra soit juste un peu au dessus de l'objet que tu suis. Ensuite il faut trouver le moyen de reculer la caméra derrière l'objet que tu suis même si celui-ci tourne sur son axe. Pour cela, récupère le vecteur direction (vecteur target) de l'objet en question. Le vecteur direction c'est la direction dans laquelle l'objet regarde. Soustrais ensuite l'offset avec ce vecteur que tu multiplieras par une valeur que tu choisiras (afin que la caméra soit plus ou moins reculée)
ex: OBJECT\_position + core::vector3df(0,0.5f,0) - OBJECT\_target * val;
ensuite il faut que la caméra regarde dans la direction de l'objet donc tu modifies la variable target de la caméra et tu lui assignes la position de l'objet à suivre.
Voilà j'espère être clair.
a+
|
20-08-2010 23:28:49 |
Salut,
Pour mon programme, j'aurai besoin de la fonction getHeight(), jusqu'à la tout va bien, mais le problème c'est que mon terrain subis une rotation ( sur l'axe Y), et getHeight, ne me renvoie que "-1e+006" (n'importe où que je sois sur le terrain), mais si j'enlève la rotation, getHeight() me renvoie la bonne hauteur. Comment réglé ce problème, tout en gardant la rotation? |
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?
|
20-08-2010 23:24:37 |
je pense que le problème vient de ton modele, ton armature est peut être correct, mais tes membres ne doivent pas être bien attachés à tes bones. Par exemple si tu crée un corps, tu l'attache a un bones de départ apele "body", a ce "body" tu créer 1 autre bones appelé "epaule1" fils de "body", tu créer un cylindre pour faire un bras que tu attache a "épaule1", puis tu créer un autre bones "coude1" fils de "epaule1" au quel tu attache un nouveau cylindre pour faire un avant bras. etc... etc... Je pense que sur ton modèle tu a du attacher toutes les partie du corps au même bones, donc ton squelette bouge dans le vide.
Regarde ce tutorial si tu veut, il est pour un autre logiciel, mais la technique est exactement la même bones animation fragmotion
A+ |
je pense que le problème vient de ton modèle, ton armature est peut être correcte, mais tes membres ne doivent pas être bien attachés à tes bones.
Par exemple si tu crées un corps, tu l'attaches à un bones de départ appelé "body", à ce "body" tu crées un autre bones appelé "epaule1" fils de "body", tu crées un cylindre pour faire un bras que tu attaches à "épaule1", puis tu crées un autre bones "coude1" fils de "epaule1" auquel tu attaches un nouveau cylindre pour faire un avant bras. etc... etc...
Je pense que sur ton modèle tu as dû attacher toutes les partie du corps au même bones, donc ton squelette bouge dans le vide.
Regarde ce tutorial si tu veut, il est pour un autre logiciel, mais la technique est exactement la même
bones animation fragmotion
A+
|
20-08-2010 23:22:47 |
hlsl est un language de programmation pour les shaders directx ... il ne peut pas être "inclus" par contre directx oui je veut bien ...
je me répette mais XEffect utilise HLSL ou GLSL il n'est donc pas impératif d'implenter directx, on peut tout a fait utiliser XEffect avec un device opengl ( du coup sa utilise GLSL ) |
hlsl est un langage de programmation pour les shaders directx ... il ne peut pas être "inclu" par contre directx oui je veux bien ...
je me répète mais XEffect utilise HLSL ou GLSL il n'est donc pas impératif d'implanter directx, on peut tout à fait utiliser XEffect avec un device opengl ( du coup ça utilise GLSL )
|
20-08-2010 23:17:51 |