#1 

27-02-2008 23:04:45

blm91
Membres
Date d'inscription:
Messages: 16
IP: 82.234.98.89
Courriel

Bonjour tout le monde !

Je suis nouveau sur ce forum et me suis lancé depuis peu dans l'utilisation de cet excellent framework qu'est Irrlicht. Après avoir cherché une réponse à mon problème dans les discussions existantes, je me tourne vers vous pour trouver une solution.

Voici mon problème. Pour situer un peu le contexte, je travaille dans l'haptique et notamment l'utilisation des dispositifs haptiques tels que le Phantom Desktop, le Phantom Omni ou encore le Falcon. Au niveau de mon programme, j'ai une scène Irrlicht avec une surface texturée et une sphère. La sphère est reliée à mon dispositif haptique de sorte qu'elle suit ses déplacements. Lorsque ma sphère pénètre la surface, je récupère le triangle de collision de ma surface à l'aide de la fonction getCollisionPoint et plus précisément le point de collision. Jusque là, tout va bien. Mais là où je bute, c'est lorsque je souhaite récupérer le pixel de texture (ou texel) correspondant à ce point d'intersection. Une solution aurait été d'interpoler les coordonnées UV des sommets du triangle concerné par la collision mais là encore, je bute. Si getCollisionPoint retournait un triangle de type S3DVertex, je pourrais alors accéder aux coordonnées de texture mais là, je ne récupère que les sommets du triangle...

Si quelqu'un pouvait m'aider, ce serait génial !
Merci d'avance !!!
A bientôt,


Hors ligne


#2 

28-02-2008 17:08:34

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 79.88.49.131
Courriel

une méthode bien basique mais qui devrait fonctionnée consiste à tester tout les triangles du mesh (mesh=>meshbuffer=>vertex data) pour voir celui qui correspond au triangle donné par getCollisionPoint ,une fois trouvé interpoler l'UV et lire sur la texture le texel.
Ca marche bien (meme en "tps réel" ) si le mesh n'est pas trop gros aprés si il s'agit de "gros" mesh....c'est une autre histoire.
Il serait d'ailleur plus rentable de ne pas utiliser de CollisionManager de recherché directement dans le vertex data quel est le vertex en collision avec non plus une sphere mais une petite ligne que controle le systeme haptique.


Hors ligne


#3 

28-02-2008 22:16:25

blm91
Membres
Date d'inscription:
Messages: 16
IP: 82.234.98.89
Courriel

Bonjour et merci pour votre réponse.
A vrai dire, j'ai raisonné comme vous en créant mon propre CollisionManager histoire de récupérer le triangle de collision avec tous ses paramètres (et pas uniquement ses sommets). Je l'ai entamé hier soir et pense le terminer dans les prochains jours. Même si Irrlicht est très orienté jeux, je voulais m'assurer qu'il n'y avait pas déjà une fonction permettant ce type d'opération avant de me lancer dans un gestionnaire de collision.
Merci encore pour votre aide.


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
153 invités en ligne
membre en ligne: -
RSS Feed