#0 

28-02-2008 00:04:45

blm91
Membre
Date d'inscription: 08-01-2008
Messages: 16

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


#1 

28-02-2008 18:08:34

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

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.

Dernière modification par firnafin (28-02-2008 18:09:21)

Hors ligne


#2 

28-02-2008 23:16:25

blm91
Membre
Date d'inscription: 08-01-2008
Messages: 16

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