IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

[debutant]Sk mesh et collisions


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut [debutant]Sk mesh et collisions
    Deux points sur lesquels je butte depuis que je fais du Dx :

    -Pour faire une animation, il y a les skinned Mesh mais j'ais beau relire les doc et exemple du SDK je n'y comprend rien. Rien que pour m'aider les seuls tutoriels que je trouve sont en anglais... Alors je voudrais savoir quelle est la manière la plus simple de montrer une anim faite avec 3ds ou blender dans un jeu Dx. Si c'est les skinned meshes, est-ce qu'il y a des bons tutoriels francais...

    -Quand on cré une map pour un jeu en 3D ( une map du style avec 3ds ), comment peut-on faire pour tester des collisions avec chaques faces de la map... car une collision entre deux objects je sais faire mais pas à l'intérieur d'un objet.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Mon avis c'est que les méthodes fournies avec DirectX ne sont pas les plus simples pour gérer les animations. Personnellement je me suis rabattu sur la bibliothèque Cal3D, qui est ma foi bien plus simple d'utilisation

    Pour les collisions avec la map, tu devrais avoir une structure de partitionnement (octree, BPS, portals, ...). Si tu testes à chaque fois avec chaque poly de ta map, ça te tuera ton framerate.

  3. #3
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    Ok... Au début aussi je travaillais sur Irrlicht
    Mais j'ais trouvé que ca limitait trop et qu'il fallait travailler directement avec DirectX.

    Pour les collisions, mon problème est justement que je ne vois aucune méthode pour réaliser ce que je veux ( juste faire en sorte qu'un personnage ne sorte pas de ma carte )

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pour la gestion de ta map, comme je te l'ai dit il te faut une structure de partitionnement, c'est à peu près essentiel dans un moteur 3D
    Renseigne toi sur les octrees/quadtrees si c'est des scènes en exterieur, et les BSP/portals si c'est des scènes en interieur. Ca ne t'aidera pas seulement pour les collisions, mais aussi pour le culling, et apres encore peut-etre pour d'autres choses.

  5. #5
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    Bon alors je vais reformuler ma question : connais tu une librarie pour DirectX qui ne fait que de la collision ??? ( freeware si possble )

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ben c'était juste un conseil que je te donnais, parce que ton moteur va être bancal sans structure de partitionnement (j'en sais quelque chose ).

    Il existe moultes bibliothèques de collisions, la plus citée étant toujours ODE.

  7. #7
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    En disant ça, je oulais juste signaler que la detection de collisions ne devait ps être complexe mais en voyant l'ampleur de la tâche, je préférais m'orienter vers un system collison déjà fait pour nepas avoir à lâcher dx.

    Il en est demême pour les animations

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ok je vois. J'ai jamais utilisé ODE, mais ce sera peut-etre pas non plus super simple. Il te faudrait quoi exactement comme gestion de collision ?

  9. #9
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    Oh pas celles de doom3 (quoique 8) )
    Juste faitre en sorte que le perso ne joue pas à Liquid Man dans la map ou contre d'autres obstacles
    PS: le nom complet de ODE, c'est OPCODE ?

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    OPCODE est une bibliothèque qui utilise ODE (ou alors c'est le contraire ? ).

    Pour que ton perso reste a terre et ne traverse pas les murs, c'est deja loin d'etre basique tu sais. Pour faire ça il faut aller taper dans des methodes (plus ou moins) compliquées.

  11. #11
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    J'ais bien conscience que ce n'est pas facile ms c'est la base d'un jeu 3d.

    PS: une recherche sur google de ODE ne donne rien d'exploitable...

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    ODE se trouve ici : http://ode.org/

  13. #13
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut
    En cherchant bien, j'ais trouvé 3 librairies:
    -NovodeX
    -ODE
    -Tokamak

    Malheureusement, la doc ou les tutoriaux en français font défaut et cela fait perdre du tps inutilement...

  14. #14
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    pour precision :
    OPCODE est une librairie qui gere les collision et uniquement les collision
    ODE est une librairie qui gere la physique (liaisons entre les objet, réaction complexes...) et les collisions. pour certains types de collisions, elle utilise OPCODE. c'est donc bien ODE qui utilise OPCODE

    @+
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  15. #15
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    lol je sais que j'ai rien à voir la dedant mais en lisant le post je me suis demander... c'est quoi une "structure de partitionnement"??? (juste le principe svp)

  16. #16
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    en gros ton monde est contenu dans une boite, et la boite est subdivisé en plusieurs petites sous-boites, qui elles même sont subdivisé... ainsi de suite jusqu'a un certain niveau de profondeur, et le dernier niveau de profondeur contient les informations voulu (triangles, objet ...)

    ca permet de reduire le cout de recherche par exemple de position, en effet si tu veut savoir si une sphere touche un polygone et que ton monde fait 5000 poly, si tu test tes 5000 poly ca va ramer
    par contre avec par exemple un octree (8 sous boite par boite...) tu test si la sphere est dans la 1ere sous boite, si elle est dedans, tu peut eliminer les 8 autre, c'est a dire le 7/8éme des polygone, et tu peut recommencer le test en enlevant ainsi les 7 autre 8éme... ainsi de suite jusqu' a ce que tu arrive au dernier niveau ou tu n'aura plus que quelques poly a tester...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  17. #17
    Membre expérimenté Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Par défaut
    En gros pour résumer ce qui est très bien expliqué au dessus, tu gagnes bcp en calcul car tu tests pas les collisions sur tt les polygones du terrains

  18. #18
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    ok merci, je pensais que ct un truc du genre 8)

  19. #19
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    ouais ou il y aurait une autre technique pour détécter une colision.. je donne mon exemple avec 2 shpères... le truc serait de créé un vecteur qui soit le soustration des 2 vecteurs de position des 2 objet à controle. Ensuite on regarde si la norme (taille) ,qui ce fait "verteur.lenght", est plus courte que l'addition de 2 rayon des objets...

    Après pour savoir par ou elle gicle j'ai pas encore regarder comment ça se passait.

    En Résumer le principe c'est de soustaire les 2 vercteur et de regarder sa norme.. aprps a vous de trouve selon l'objet dont il s'agit pour savoir si ça touche ou pas.

    lol je sais que je fais pas avancer bc le chose mais je trouvais cette technique interressante pas falcile à comprendre.

  20. #20
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    c'est tout simplement la technique des collision spheriques...
    pour la reaction au collisions tu peut utiliser la technique simple qui consiste a echanger les vecteurs de directions des 2 objets... ca fait comme un carreau au billard...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. Collision entre mesh et terrain
    Par tomy14 dans le forum Ogre
    Réponses: 13
    Dernier message: 28/07/2014, 01h50
  2. Irrlicht Collision entre 2 Mesh
    Par suyeon dans le forum Irrlicht
    Réponses: 3
    Dernier message: 07/07/2010, 12h40
  3. [Newton] Collision mesh 3D
    Par Masadow dans le forum Newton
    Réponses: 0
    Dernier message: 17/04/2009, 11h59
  4. [Debutant] - Ou trouver un example de collision ?
    Par Happy dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 15/12/2005, 03h36
  5. test collisions
    Par tatakinawa dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/06/2002, 06h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo