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 :

Petite question rapide sur les différents moteurs disponibles


Sujet :

Physique

  1. #1
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut Petite question rapide sur les différents moteurs disponibles
    Bonjour,

    Je sais que les questions que je vais poser ont déjà été posées, mais les réponses ne m'ont jamais satisfait car c'était toujours dans le contexte d'un type d'appli bien précis. Et là j'aimerais me faire une idée, heu... générale.

    Je commence en programmation de jeux (je veux mon Tomb Raider like perso!) et je songe développer avec Esenthel ou kjAPI, je ne sais pas encore, mais je suppose que peux éventuellement utiliser d'autres moteurs que ceux du SDK si celui-ci ne me plaît pas pour certaines choses (corrigez-moi si je me trompe). Donc je regarde ce qui se fait niveaux moteurs physiques et j'arrive par élimination à quelques moteurs qui semblent vraiment performants:
    -PhysiX : Il est gratuit, super, mais sur le site Nvidia il est dit que ce moteur ne fonctionne qu'avec des cartes Nvidia. Donc les ATI, au revoir... C'est confirmé? Car ma propre carte est une ATI HD4850. Donc super quand même à la base (et ça je confirme). Si c'est exact, je peux donc oublier ce moteur...
    - Havok. Gratuit pour une utilisation non-commerciale (c'est mon cas). Quelqu'un sur ce forum a dit qu'il était aussi bon que PhysiX. Je le crois volontiers, mais y'a-t-il des avis divergents?
    - ODE. Équivalent aux autres?
    - Bullet. J'en parle plus bas.

    Ensuite, mon souci est que tous ces moteurs ne gèrent que des solides non déformables (sauf PhysiX, je crois). Or moi je veux faire aussi du liquide et des corps 'mous' (vêtements, baballes à sa mémère...) Or là, il n'existe presque rien en libre! Seul un moteur 'standard', Bullet, semble se développer la-dessus (j'ai vu une démo, c'est très bien pour ce que je veux faire). Quelqu'un connait / a déjà pratiqué et que vaut-il par rapport aux ténors du marché?

    En fait fait, cela fait bien plus qu'une question...
    Désolé!

    Merci d'avance pour votre aide,
    Teto.

    Edit: Je viens de lire un truc sur un forum anglais très intéressant, d'où il ressort qu'en général, Bullet à le meilleur score pour le test standard (qui vaut ce qu'il vaut) PAL. Mais rien ne vous empêche de donner votre propre avis... d'autant que c'était un article un peu ancien.

  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
    PhysX fonctionne bien entendu avec tout type de carte graphique, ça n'a vraiment rien à voir

    Ce que tu as dû lire c'est que seules les cartes nVidia peuvent accélérer les calculs, mais dans le cas contraire cela se passe juste sur le CPU, c'est pas bien grave.

    Je n'ai aucune expérience des autres moteurs physiques, mais en tout cas PhysX c'est très pro et en même temps accessible, n'hésite pas. Seule la gestion des personnages laisse à désirer, d'ailleurs c'était tellement galère pour eux qu'ils ont libéré le code correspondant et arrêté de le maintenir

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    alors pour havok, bon moteur, un peu usine à gaz, je l'avais choisi y a quelques mois car le kit véhicule est très (trop, paramétrable à souhait, du régime moteur aux rapports de la boite de vitesse etc...) bien fait (plus facilement réutilisable que celui de physx à mon avis).

    la prise en main de celui-ci est assez aisé, les samples sont extrêmement nombreux, facilement lisibles et modifiables.

    il n'y a que havok physic de dispo, havok cloth et destruction sont malheureusement pas accessibles, c'est bien dommage.

    après je me suis basé sur la "tête" des démos pour faire mon choix, pas très objectif pour donné un avis sur les autres moteurs.

  4. #4
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par stardeath Voir le message
    il n'y a que havok physic de dispo, havok cloth et destruction sont malheureusement pas accessibles, c'est bien dommage.
    Je plussoie. C'est même à cause de ça que je vais certainement pas le prendre. C'est dommage, car c'est vrai que niveau rendu du physique, il semble très performant. Le module destruction, qui n'est pas dedans: C'est dommage! Marre de ces jeux où on explose des caisses et des caisses, et qui restent quand même intactes... Cela voudra dire qu'il faudra que je me coltine les destructions à la main. Beuh... Le module clothes absent: Dommage again!
    C'est pour cela que je vais certainement utiliser Bullet, même si les démos du sites sont pas forcément sublimes! Au moins il sait gérer les vêtements et liquides (je crois?), mais pas les destructions, pity.

    Citation Envoyé par stardeath Voir le message
    Après je me suis basé sur la "tête" des démos pour faire mon choix, pas très objectif pour donné un avis sur les autres moteurs.
    +2. Suffit de comparer ceux du site Bullet et Havok... Havok / Bullet .
    Exception d'une démo Bullet sur les possibilités des corps déformables. Là c'était convaincant.

    Sinon, @stardeath, tu as fini par utiliser quoi, comme moteur?

    Perso, je prendrai pas PhysiX (désolé @Laurent ), je pense, car il semble un peu mort. Et tous ceux qui en parlent sur les forums anglais tirent dessus au gros calibre.

    Voilà. Si d'autres commentaires/remarques/critiques vous semblent pertinents à faire, n'hésitez pas!
    Bonne soirée,
    Teto.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    j'ai pris havok, du fait que le kit véhicule est bien et que je programme un petit jeu de course de voiture =D

    je ne cracherai pas sur physx car l'accélération gpu, même si dispo uniquement sur les cartes nvidia, est absolument effrayante; le nombre d'entités gérables peut devenir très (très) grand sans ressentir la moindre saccade, contrairement au moteur sur cpu seulement (et que dire de la démo de apex turbulence que je trouve superbe ... mais pas dispo ><)

    d'ailleurs si je ne me trompe pas intel et ati ont un accord sur l'accélération de havok grâce à opencl (j'aimerai bien avoir des news sur ça, l'info datant d'un peu maintenant)

    n'ayant pas été convaincu par les démos de bullet (pas assez bling bling à mes yeux) j'irai le revoir pour voir un peu comment ça se code, on verra ^^

    ps: pour la destruction sur havok physic, y a moyen de s'en sortir avec les contraintes "cassables", démos "break off parts" et "breakable constraint"
    pour les vêtements y a aussi une feinte, mais je l'ai plus en tête

  6. #6
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par stardeath Voir le message
    Je ne cracherai pas sur physx car l'accélération gpu, même si dispo uniquement sur les cartes nvidia, est absolument effrayante; le nombre d'entités gérables peut devenir très (très) grand sans ressentir la moindre saccade, contrairement au moteur sur cpu seulement (et que dire de la démo de apex turbulence que je trouve superbe ... mais pas dispo ><)
    D'accord, mais reste quand même que cela limite les possibilités aux seuls joueurs possédant une bonne nVidia.
    Citation Envoyé par stardeath Voir le message
    N'ayant pas été convaincu par les démos de bullet (pas assez bling bling à mes yeux) j'irai le revoir pour voir un peu comment ça se code, on verra ^^
    Je plussoie! ah, les démos de voitures limites pourries... et le reste à l'avenant...
    Citation Envoyé par stardeath Voir le message
    Pour la destruction sur havok physic, y a moyen de s'en sortir avec les contraintes "cassables", démos "break off parts" et "breakable constraint"
    pour les vêtements y a aussi une feinte, mais je l'ai plus en tête
    Exactement ce que j'aurais fait. Mais cela signifie que pour un vase, on aura un (deux tout au plus) modèle pré-cassé, qui se cassera toujours avec les mêmes morceaux... Les effets seront différents puisque qu'on le cassera toujours d'une manière différente, et puis les objets n'auront jamais la même orientation dans la surface de jeu, donc... mais cela reste un peu frustrant.
    Dommage pour le truc oublié concernant les vêtements...

    Cela m'amène une autre question. Est-il possible de combiner différents moteurs, quitte à grossir le code final? Genre utiliser Havok pour les solides et Bullet pour les vêtements (quitte à faire des classe passerelles entre les différentes bibliothèque au besoin)? Car si c'est pas le cas, cela me condamne à utiliser Bullet... Mais peut-être qu'on peut le faire, mais que cela ralentit le jeu au final...

    Merci de ta réponse en tout cas.
    Teto.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    combiner différents moteur est peut être possible, mais à quel prix?
    - si tu simule les tissus avec bullet, ils ne pourront pas interagir avec les solides qui sont sous havok
    - des risques sur la qualité de la simulation, api 3d+havok+bullet, ça risque de batailler ferme pour "acquérir" du temps cpu
    - l'ordre de la simulation, lequel des 2 moteurs va t'on forcer à simuler en premier
    - etc...

    tu es mieux de n'utiliser qu'un moteur, c'est comme si tu utilisais simultanément directx et opengl ><

    ps: je cherche toujours la méthode pour les vêtements XD

  8. #8
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut Je m'en doutais...
    Citation Envoyé par stardeath Voir le message
    combiner différents moteur est peut être possible, mais à quel prix?
    - si tu simule les tissus avec bullet, ils ne pourront pas interagir avec les solides qui sont sous havok
    Aïe... Je m'en doutais un peu. J'espérais que non, mais enfin...
    Citation Envoyé par stardeath Voir le message
    - des risques sur la qualité de la simulation, api 3d+havok+bullet, ça risque de batailler ferme pour "acquérir" du temps cpu
    - l'ordre de la simulation, lequel des 2 moteurs va t'on forcer à simuler en premier
    - etc...
    Forcément. Je suppose au moins que quand on utilise un moteur physique, cela ne gène pas le moteur son etc. Je pense que non, sinon ce serait inutile. Je réfléchis en écrivant... Non, c'est idiot ce que je viens de dire.

    Citation Envoyé par stardeath Voir le message
    tu es mieux de n'utiliser qu'un moteur, c'est comme si tu utilisais simultanément directx et opengl ><
    Là maintenant c'est tout à fait clair. Merci!

    Citation Envoyé par stardeath Voir le message
    ps: je cherche toujours la méthode pour les vêtements XD
    Merci again. Je mettrai ce post en [résolu] (et en changeant le titre) quand tu l'auras trouvé! Je pense que cela intéressera d'autres lecteurs. D'ailleurs ne serait-ce pas un truc du genre:
    - Pour une cape, on la découpe en un tas de petits bouts de chiffons correspondants aux triangles de la surface de la cape.
    - On réunit tous ces morceaux en mettant des contraintes de type 'charnière' sur chaque coté des triangles.
    - Et hop! on peut faire voler au vent!

    Merci en tout cas de ton aide précieuse.
    Teto

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    pour les vêtements, démos : Physics/Api/Constraints/Chain

    toutes les démos (sauf Spider à mon avis) ont un intérêt pour la simulation de vétement

  10. #10
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut


    Je suppose que tu parles des démos inclus dans le SDK...
    Merci en tout cas, c'est sans doute le moteur que je vais utiliser, si je n'utilise pas des SDK 'haut niveau' comme Esenthel ou jkAPI.

    Un dernier petit truc: Je n'ai pas encore pris le temps de regarder plus avant Havok (leur site est un peu trop succinct à mon goût), je veux me familiariser avec C++ avant , mais je suppose qu'il fait la simulation de l'eau (flaques, mer, etc...)? Car selon moi cela reste de la physique, non?

    En tout cas, ce post est !

    Teto.

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    Citation Envoyé par Teto45 Voir le message
    Je suppose que tu parles des démos inclus dans le SDK...

    Un dernier petit truc: Je n'ai pas encore pris le temps de regarder plus avant Havok (leur site est un peu trop succinct à mon goût), je veux me familiariser avec C++ avant , mais je suppose qu'il fait la simulation de l'eau (flaques, mer, etc...)? Car selon moi cela reste de la physique, non?
    oui je parle des démos du sdk ^^

    pour l'eau, oui et non, il n'y a pas de démo à proprement parlé de simulation d'étendue d'eau (j'en ai pas le souvenir, y a tellement de samples différents), mais tu peux toujours faire d'un maillage avec quelques contraintes/forces etc...

    mais tu n'es pas obligé de traiter l'eau comme un élément physique, si ton étendue d'eau n'a pas de conséquence au niveau physique (exemple : un personnage court dans l'eau) un maillage dans un vbo, un shader et plouf (c'est le cas de le dire) tu simules un océan.

    après si tu veux une "vraie" simulation de l'eau (genre tu verses du "sirop" colorée dans de l'eau), faut regarder du coté de la simulation de fluides, mais le temps en calcul n'est pas du tout le même.

    attention là je ne parle que de ce que JE ferai, je suis peut être totalement à coté de la plaque.

    pour ton choix, regarde vraiment ce qu'il te faut, moi j'avais pris havok pour le kit véhicule mais si il te faut du vêtements en priorité, prend bullet si j'ai bien compris.

  12. #12
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut
    Heu... Un maillage dans un vbo, keskecé?

    Sinon, hélas, j'ai bien l'intention de faire plonger mon perso dans l'eau... Mais sans doute qu'il existe des tutos quelque part qui explique ce qu'il faut faire...
    Mais je parlais plutôt du comportement de l'eau en général: Si on est sur une plage, est-ce que le moteur peut gérer les vagues? Si on court dans une flaque, le moteur de particule va prendre en charge les éclaboussures, ok, mais la flaque va faire des petites vaguelettes. Est-ce qu'un logiciel comme Havok est capable de faire ce genre de choses? etc.

    Merci pour les infos, cela me fait bien avancer entre ce que j'ai envie de faire et ce que je vais pouvoir faire...
    Teto.

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    un maillage dans un vbo, j'utilise certainement pas les bon termes, grosso modo, une surface plane constitué de plein de facettes comme dans le sample directx HLSLwithoutEffects, avec comme dans celui-ci un shader qui modifie la surface.

    ensuite je dirai que tous les moteurs peuvent le faire, mais je sais pas comment, je n'ai jamais vu un sample "plage" dans tout ce que j'ai regardé ^^'

    après il faut se demander si "le truc" que l'on veut doit provenir d'une simulation physique ou si un "simple" effet visuel suffit, mais pour ça, je suis loin d'être compétent, ça fois que 6-8 mois que je fais mumuse avec un moteur physique.

  14. #14
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut Oui, surtout que...
    Surtout que moi, j'aurais envie de faire nager mon perso, et là, je pense c'est une toute autre paire de manche à programmer... Mais je suppose que de bons tutos existent, je verrai quand j'en aurai besoin .

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    je ne pense pas que pour faire nager un personnage il faut grand chose; dans les jeux, je doute fortement qu'ils utilisent la vrai physique de l'eau pour ça :
    pour moi l'eau c'est juste un milieu où la gravité ne se fait plus ressentir (pas tapé XD), donc dans havok (ça doit être la même technique ailleurs), quand ton personnage est dans l'eau tu lui applique une force qui s'oppose à ta gravité et voilà. c'est simple, et ça ne liquéfie pas nos neurones sur de la physique complexe.

  16. #16
    Membre habitué Avatar de Teto45
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 145
    Points : 149
    Points
    149
    Par défaut
    J'y avais pensé aussi.

    Mais ce doit être une gravité un peu améliorée alors... Car si c'était une simple gravité 0, le perso taperait juste du pied un rocher, et 'nagerait' sans bouger jusqu'à l'autre bout du lac. Effectivement dans l'eau le perso n'est plus soumis à la gravité, mais en même temps tout est changé: ses mouvements suivant comment il se déplace, leur faible vélocité pour donner l'impression de résistance à l'élément liquide, etc. En fait c'est tout un nouveau jeu de mouvements.

    Bon chuis fatigué, mais je pense que je suis clair... C'est marrant, en discutant de toutes ces choses, je m'aperçois de tout ce qu'il faudra faire rien que pour faire trempette... Qu'est-ce que ce sera pour le reste! J'adore.

    Teto.

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

Discussions similaires

  1. petite question rapide sur boucle for
    Par KateA dans le forum C
    Réponses: 15
    Dernier message: 08/03/2010, 23h59
  2. [AC-2002] Question rapide sur les classes
    Par zak_mckraken dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/01/2010, 17h56
  3. Réponses: 5
    Dernier message: 22/08/2008, 10h59
  4. question rapide sur les warning
    Par yan dans le forum C++
    Réponses: 12
    Dernier message: 18/06/2008, 09h48
  5. Petite question rapide sur allocation mémoire
    Par adn013 dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2007, 16h10

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