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

Physique Discussion :

Choix du moteur de physique


Sujet :

Physique

  1. #1
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut Choix du moteur de physique
    Bonjour

    Comme certains le savent peut être, je cherche à faire un fps avec un terrain en extérieur. Hors, je m'aperçois la classe qui va gérer le terrain doit dériver d'une classe du moteur physique. Je vous demande donc conseil sur le moteur le plus abordable, tant au niveau du code, que des possibilités, et surtout, de l'aide que l'on peut trouver sur le web.
    J'ai essayé Novodex/PhysX, mais la seule version dont les samples "marchent" sur mon pc, sont ceux de la version 2.2, donc assez vieille maintenant...
    La version 262 ou 270 me déclence constamment VS just in time...
    Pourtant il y a pas mal de choses intéressantes...
    Newton, étant gratuit, je me demande si il atteint les mêmes performances que celles de novodex, si il y a plus de tutoriels, et si il est un peu moins "rigide" : dans novodex, il a quelques tutos, mais ils sont avares de commentaires dans les codes sources...
    Alors, PhysX ou Newton ?

    ps: je suis actuellement entrain de lire les tutos sur newton sur developpez, et c'est de là que me vient cette question...

  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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu as commencé par lire les discussions similaires sur ce forums (il y en a une ou deux) ?

    Sinon je trouve bizarre que les dernières version de PhysX crashent sur ta config.

    Quoiqu'il en soit tu peux utiliser Newton, il devrait largement suffire pour ce que tu cherches à faire. Et puis comme tu l'as dit nous avons ici d'excellents tutoriels concernant Newton (d'autres sont encore à venir).

  3. #3
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    J'aimerai bien savoir d'où ça vient ce plantage, peut être parce que c'est un portable en 15"4 ?

    Pourtant j'ai tous les drivers à jour... et aucune réponse sur les forums...

    EDIT> Est on obligé de créer une classe "terrain" avec toutes les initialisations du moteur physique, et de faire dériver ma propre classe, ou peut on juste passer la liste des vertexes ?

  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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'aimerai bien savoir d'où ça vient ce plantage, peut être parce que c'est un portable en 15"4 ?
    Tu as bien installé les drivers PhysX (nécessaires si tu n'as pas de PPU) ?

    EDIT> Est on obligé de créer une classe "terrain" avec toutes les initialisations du moteur physique, et de faire dériver ma propre classe, ou peut on juste passer la liste des vertexes ?
    Tu peux faire une classe générique d'objets statiques, puis lui envoyer tes sommets qu'ils viennent de terrain ou de n'importe quoi d'autre.
    Par contre regarde bien la doc, il est possible que les API physiques possède un truc optimisé pour gérer les heightmaps.

  5. #5
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Oui, tout est installé. J'ai vu que dans la version 2.7.0, il y a une gestion des heightmaps optimisée. Du coup je voulais utiliser cette version mais... j'ai installé le sdk dans
    "d:\GameTools\PhysX270", où se trouvent les répertoires bin, graphics, etc...
    Hors, quand je vais dans les propriétés du projet, c/c++, general, et que j'ajoute les 3 répertoires dans les includes additionnels :
    d:\GameTools\PhysX270\SDKs\Foundation\include\;d:\GameTools\PhysX270\SDKs\Physics\include\;d:\GameTools\PhysX270\SDKs\PhysXLoader\include\
    rien n'y fait, les types de variables propres au moteur physX ne sont pas reconnues, comme si je n'avais rien fait. Par contre, si j'ajoute dans un fichier .cpp,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include "D:\GameTools\PhysX270\SDKs\Foundation\include\NxFoundation.h"
    #include "D:\GameTools\PhysX270\SDKs\Physics\include\NxPhysics.h"
    #include "D:\GameTools\PhysX270\SDKs\PhysXLoader\include\PhysXLoader.h"
    ça compile nickel... C'est mon VS2k5 qui a un souci ?!

  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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Personnellement je tourne avec PhysX 2.6.2 et Visual Studio 2005, et aucun problème à signaler.

    Par contre quand tu dis "j'ajoute les 3 répertoires dans les includes additionnels", tu inclues tout de même les fichiers dans tes sources hein ? (on ne sait jamais...)

  7. #7
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Je crois que j'ai pas bien compris, à quoi ça sert alors ? Faut-il quand même les ajouter à la main dans le .cpp?

    Autre question : pour les mouvements du joueur, faut-il que je calcule moi même les collisions, ou carrément tout faire avec PhysX ? N'est-ce pas trop limité ? (passer d'une vue à la 3eme personne à une vue fps, je n'ai vu que des gestions de déplacement en 3eme personne dans les exemples de PhysX)

  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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je crois que j'ai pas bien compris, à quoi ça sert alors ? Faut-il quand même les ajouter à la main dans le .cpp?
    Ben ajouter des répertoires dans les options de ton projet va juste indiquer au compilo de chercher dans ce répertoire, mais ça ne te dispense pas d'inclure les fichiers adéquats dans ton code.
    Ca te permet d'écrire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <NxFoundation.h>
    #include <NxPhysics.h>
    #include <PhysXLoader.h>
    Au lieu de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "D:\GameTools\PhysX270\SDKs\Foundation\include\NxFoundation.h"
    #include "D:\GameTools\PhysX270\SDKs\Physics\include\NxPhysics.h"
    #include "D:\GameTools\PhysX270\SDKs\PhysXLoader\include\PhysXLoader.h"
    Parce que si le compilo incluait automatiquement tous les en-têtes qui se trouvent dans tous ses chemins prédéfinis, tu imagines le boxon...

  9. #9
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    J'ai pas essayer PhysX, mais il y a de nombreux tutos fournis avec, et vu qu'il est gratuit je pense qu'à l'heure actuel c'est le meilleur moteur physique, surtout en terme de performances et de fonctionnalités. Toutefois, je pense que Newton peut te suffire . Je suis l'auteur des tutos, un sur les enveloppes convexes sera dispo vendredi, et les deux suivants seront consacrés aux materials, puis aux joints. Bien sûr au niveau des performances ce n'est pas le meilleur, mais l'auteur fait d'énormes efforts pour ajouter pleins de fonctionnalités et améliorer les performances (il est seul). La prochaine version tirera parti des CPU multicoeurs, je pense qu'il est important de soutenir ces développeurs seul qui font un travail fabuleux. Maintenant si tu as vraiment besoin de tout ce qu'offre PhysX, libre à toi de le choisir .

    Au fait pour PhysX, tu la trouve ou la version 2.7 ? La dernière est 2.6.2 sur le site.

  10. #10
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Laurent> ok, j'avais pensé à tout ça...

    Bakura> Je teste les deux. Chapeau à l'auteur de Newton.
    Celui-ci a l'air bien, je vais peut être l'utiliser, pour le moment je suis encore en phase de tests pour la physique. Mon projet va ensuite être rejoint par une équipe, si tout va bien. Le problème, c'est que ces "collègues" me donnent l'impression d'attendre que je me tape tout le "sale" boulot, et venir prendre les louanges... Donc en choisissant entre un moteur ou l'autre, je vais voir si je peux me passer d'une équipe et tout faire moi même suivant la difficulté d'intégration au moteur 3d...

    Pour la version 270 de physx : il faut s'inscrire, ensuite aller dans "my profile" puis downloads, les liens sont tout en bas, juste sous la 262.
    Si vous ne la trouvez pas, dites moi, j'essaierai de trouver quelqu'un pour la mettre en ftp au cas.

  11. #11
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Citation Envoyé par LapinGarou
    Pour la version 270 de physx : il faut s'inscrire, ensuite aller dans "my profile" puis downloads, les liens sont tout en bas, juste sous la 262.
    Si vous ne la trouvez pas, dites moi, j'essaierai de trouver quelqu'un pour la mettre en ftp au cas.
    T'embete pas et puis tu n'as pas le droit de la diffuser il me semble ! Pour Newton, tu as déjà ce qui te permette de faire des collisions avec des objets statiques (une voiture, un niveau 3D,...) et des objets dynamiques (il arrive demain).

    Pour ceux que ça intéresse, voici le "programme" de mes prochains tutos :

    Les matériels, partie I : ce sera une introduction aux matériaux, qui permettent de définir plusieurs propriétés aux objets (par exemple les rendre plus élastiques, pour qu'ils rebondissent plus,...).

    Les matériels, partie II : je me suis aperçu en les étudiant que le moteur offre plus de possibilités que je pensais. Par exemple avec un système de callback, on peut jouer un son dès que deux objets se rencontrent. Imaginons qu'on ait un matérial représentant le fer et un autre le cuir, lorsque deux objets de ses deux matériaux se rencontreront, on peut jouer facilement un son adéquat.

    Les joints, sûrement en deux parties.

    Gérer la poussé d'archimède dans les liquides.

    Les ragdolls.

    Il y en aura d'autres après, mais ce sera dans cet ordre que je procéderai,... Le 1er tuto sur les matériaux arrivera mi - février, fin février, un peu occupé ces temps-ci .

  12. #12
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Cool ! Ca me fait hésiter encore plus dans le choix

    Question : j'entends parler plus ou moins de callback un peu partout. C'est quoi ? une fonction qui contient des données déjà précalculées au cas où ?

  13. #13
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    En fait, un callback c'est une fonction que tu passes en paramètre d'une autre fonction sous la forme d'un pointeur de fonction... Après, c'est une fonction qui va être appelé à chaque fois... Par exemple la fonction ForceAndTorqueCallback, qui permet d'ajouter des forces à l'objet, tu la passeras en paramètre de la fonction NewtonSetForceAndTorqueCallback (ForceAndTorqueCallback)... Et à chaque fois que tu appeleras la fonction NewtonUpdate pour mettre à jour tout le monde, si l'objet n'est pas freezé, et bien la fonction ForceAndTorqueCallback sera appelé, en fait le callback ce sera une sorte de fonction de rappel,...

    Après je suis pas sûr de ce que je raconte, je n'ai aps trop la théorie du callback, je ne fais que m'en servir dans ce contexte ...

  14. #14
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Mouai, ça a encore l'air d'un truc assez coton.

    ps> Pour la version 270, elle est gratuite aussi, sinon je n'aurai pas pu l'avoir :

  15. #15
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Citation Envoyé par LapinGarou
    Mouai, ça a encore l'air d'un truc assez coton.

    ps> Pour la version 270, elle est gratuite aussi, sinon je n'aurai pas pu l'avoir :
    Oui elle est peut-être gratuite, mais tu as du t'inscrire pour pouvoir accéder au portail développeur. Par conséquent tu n'as pas le droit de la diffuser .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 17/01/2009, 22h39
  2. Les Limites des moteurs de physique
    Par Lsong dans le forum Physique
    Réponses: 13
    Dernier message: 20/08/2007, 13h41
  3. Réponses: 13
    Dernier message: 14/04/2007, 20h14
  4. Réponses: 5
    Dernier message: 09/02/2007, 09h09
  5. [Langage] [Delphi] [SGBD] Choix du moteur d'accès SGBD
    Par consult69 dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 08/12/2005, 18h27

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