Avec PhysX 3.0, nouvelle évolution de son moteur, Nvidia offre aux développeurs de nouveaux outils pour concevoir des jeux toujours plus réalistes...
Avec PhysX 3.0, nouvelle évolution de son moteur, Nvidia offre aux développeurs de nouveaux outils pour concevoir des jeux toujours plus réalistes...
Windows 7 Edition Familiale Premium 64 Bits (OEM) - PC
à partir de 99,89 €
Comparer les prix
Sony Vegas Pro 11
à partir de 619,97 €
Comparer les prix
Windows 7 Edition Intégrale (Ultimate) Mise à Jour - PC
à partir de 152,50 €
Comparer les prix
Windows 7 Edition Intégrale (Ultimate) 32 bits - PC
à partir de 258,99 €
Comparer les prix
CeBIT 2012
CeBIT 2010
Réactions
Pas de bol, tout le monde se fout de PhysX maintenant. Y a quoi comme gros hit à venir qui s'appuyera encore sur PhysX ? Batman, OK, et à part ça ?
PhysX c'est quand meme plutot sympa !
et je pense qu'avec Unreal Engine 4 ca va faire des merveilles !
(bon après je t cache pas que je suis fanboy de Nvidia^^)
Ouais ben je demande à voir, hein… Parce que la version précédente single-thread et compilée en x87 sans le moindre SSE, même scalaire, histoire que ça rame bien comme il faut, merci bien.
PhysX est une plaie qui fait plus de mal au monde du jeu vidéo que de bien :
— Inutilisable sur CPU.
— Rame quand même pas mal sur GPU.
— N'a qu'un effet purement esthétique, sous peine de changer le gameplay en fonction du matériel des joueurs.
— Entraine souvent une dégradation volontaire du jeu quand il est désactivé, cf. Batman où PhysX permettait d'animer les drapeaux dans le vent. Sans PhysX, l'animation n'était pas moins fine et fluide, il n'y avait pas d'animation du tout… Et pour cause, il n'y avait pas de drapeaux du tout ! Tout ça pour que NVIDIA puisse faire de jolies vidéos de présentations bien frappantes avec un écran partagé "sans PhysX/avec PhysX".
Et accessoirement, la plupart des jeux actuels occupent presque entièrement le GPU, mais pas forcément les 4 à 8 cores du CPU, donc déporter tous les calculs de physique sur le GPU n'est pas forcément toujours la meilleure option.
Enfin, NVIDIA n'a aujourd'hui qu'environ 20 % du marché des circuits graphiques, et 33 % des machines DirectX 11. Ce n'est pas franchement motivant pour utiliser leurs technologies exclusives.
Bref → OpenCL !
Dans les jeux actuels, le GPU est utilisé à fond pour le rendu alors qu'une partie du CPU se tourne les pouces. Et cette tendance va aller en s'aggravant en raison de la multiplication des coeurs sur CPU et du fait que les développeurs ne parviennent pas à en tirer parti.
Du coup, il serait beaucoup plus logique de laisser les calculs de physique au CPU. D'autant que ce sont des calculs qui ne sont pas particulièrement adaptés au GPU.
déjà physX c'est plutôt joli et le moteur s'est pas mal amélioré avec le temps... (moins de plantages sur sacred 2 avec physX)
sinon en dehors de cet aspect je ne suis pas du tout d'accord avec le fait que physX ne sert à rien parceque les processeurs se tournent les pouces
honnêtement tout dépends de ce dont on parle, il reste beaucoup de progrès à faire dans le domaine des détection s de collision. (par exemple deux personnages dynamiques de tailles et volumes non statiques se serrent la main sans qu'il n'y ai d'espace entre les mains, ou l'inverse, trop de polygones qui se fondent les 1 dans les autres)
d'autre part certains jeux (de stratégie notamment) utilisent plus le CPU que d'autres mais certes c'est pas le dernier FPS à la mode qui en aura l'utilisation...
fin bref tout ça pour dire que je pense que la gestion de la physique sur GPU peux apporter beaucoup, et encore plus si c'est en mode "flexible" avec répartition de charge automatique entre GPU et CPU... après faut voir ce qu'en font les développeurs...
Je ne serais pas aussi catégorique : en fait, ça dépend pas mal des jeux. Dans un STR avec des milliers d'unités, il y a de quoi bien occuper le CPU, même s'il a une douzaine de cores, et la charge de travail pour le GPU n'est pas forcément énorme, donc il peut être judicieux de déporter une part des calculs vers le GPU.
Mais c'est précisément parce que ça dépend des jeux, et parce qu'il faut voir ça au cas par cas, voire dynamiquement parce qu'un même jeu peut nécessiter des compromis différents sur des ordinateurs différents, que je pense qu'OpenCL est un bien meilleur choix que PhysX. En pratique, ça pourrait être Bullet Physics, ou un autre moteur, peu importe.
johnlairmite > Des personnages qui se serrent la main, c'est un problème d'animation, pas de collision.
La physique est la partie d'un moteur qui se parallélise le moins bien, que ce soit sur CPU ou GPU. Et pour cause, chaque entité (points ou forme simple ou géométrie) à résoudre (ayant des collisions) dépendant de plusieurs autre entités : impossible de résoudre une unité dans son coin indépendamment des autres, les réponses devant être compatibles les unes avec les autres.
La détection des collisions est parallélisable, mais ce n'est pas la partie la plus gourmande (et elle deviendra de plus en plus petite à mesure que les moteurs physiques progressent ; ex: matériaux souples bien plus gourmands en calcul de solution).
Bref les GPUs ne sont pas du tout adaptés ; et avoir pleins de cœurs CPU n'aide pas trop (à part pour solutionner localement plusieurs collisions complètement indépendantes).
Et donc utiliser un des cores du CPU qui ne fait rien pour Phys X serait donc plus intelligent que de faire chier le GPU qui sait deja ce qu'il a à faire.
Et ce serait plus vendeur que de proposer une puce spécifique comme l'avait fait Ageia à l'époque.
Mais bon, on sait bien que ce n'est pas possible puisque c'est Nvidia qui à la license.
C'est bien pour ça que NVIDIA met surtout en avant la simulation de tissu ou de nuages de particules… Et c'est accessoirement pour ça que PhysX n'est pas super utile !
Avec l'arrivée de Bullet Physics, DirectCompute, et la constante baisse de parts de marché de NVIDIA, je pense que PhysX va de toute façon disparaître. Je ne le pleurerai pas.