Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

GDC 2017 : les dernières nouveautés de NVIDIA GameWorks
Présentées à la conférence des développeurs de jeux vidéo

Le , par dourouc05, Responsable Qt
À la GDC 2017, NVIDIA aura annoncé une nouvelle carte graphique pour joueurs, extrêmement puissante et avec un tarif raisonnable (la GTX 1080 Ti est plus puissante que la Titan X Pascal, mais à un prix presque réduit de moitié), mais également toute une série de nouveautés dans ses produits pour développeurs de jeux, rassemblés sous la bannière GameWorks. Il s’agit notamment d’effets et de simulations physiques prêtes à l’emploi.

De manière générale, bon nombre de produits GameWorks deviennent compatibles avec DirectX 12, proposent une implémentation Direct Compute en plus de CUDA (ce qui permet d’utiliser l’accélération graphique avec des cartes AMD, mais uniquement sous Windows), ainsi que l’ouverture du code source d’une série de bibliothèques supplémentaires.

DirectX 12 pour les développeurs

La grande différence entre les versions 11 et 12 de DirectX est le niveau d’abstraction : il faut moins de code pour un même effet avec DirectX 11, le pilote graphique s’occupe de l’optimisation d’une série de primitives de haut niveau (qui déchargent donc le programmeur d’une grande partie du travail). Au contraire, avec DirectX 12, le programmeur récupère une énorme flexibilité, mais doit effectuer le travail que le pilote n’effectue plus.



Les possibilités d’optimisation sont donc bien plus grandes, mais les risques également. NVIDIA travaille sur les deux fronts : proposer de nouveaux outils de développement et préparer toutes ses bibliothèques GameWorks pour DirectX 12. Côté outils, Nsight 5.3 apporte la compatibilité avec DirectX 12 et certains casques de réalité virtuelle. PIX, le débogueur visuel DirectX de Microsoft, peut également lire les compteurs de performance des cartes graphiques GeForce.

NVIDIA annonce aussi un nouvel outil : Aftermath, une bibliothèque à intégrer aux jeux afin de déboguer plus facilement les cas de crash. Le principe est d’introduire des marqueurs à intervalle régulier dans le code, où l’état du GPU est sauvegardé. Lors d’une analyse après crash, il devient possible de remonter la ligne du temps au niveau de ces marqueurs. Au niveau de la performance, Aftermath est extrêmement léger : il n’a pas d’impact mesurable sur un jeu. Il peut donc être inclus dans des jeux en production, sans être cantonné au niveau du test.



Nouveautés GameWorks


Une nouvelle version de FleX, le moteur de simulation de particules unifié, est apparue : la 1.1.0 peut exécuter ses calculs sur un processeur graphique par CUDA ou par Direct Compute ; cela ne veut pas dire que CUDA est abandonné, puisque FleX est maintenant compatible avec la version 8.0. Quelques fonctionnalités ont été ajoutées, l’API a été uniformisée avec d’autres bibliothèques physiques de NVIDIA.

Bien évidemment, FleX est maintenant compatible avec DirectX 12. En particulier, la bibliothèque peut tirer parti des fils d’exécution asynchrones pour lancer ses calculs quand le GPU est moins utilisé par le rendu graphique.

Flow est une nouvelle bibliothèque pour le rendu et la simulation de volumes, principalement de la fumée, du feu, des fluides enflammés. Elle remplace et généralise Turbulence et FlameWorks.



HairWorks, pour la simulation de poils et de cheveux, apporte principalement la possibilité d’utiliser la bibliothèque avec DirectX 12 (la version 1.3 est d’ores et déjà disponible sur GitHub, mais pas encore ailleurs).



Le module de destruction, autrefois connu sous le nom de APEX Destruction, a été complètement réécrit pour pleinement profiter des cartes graphiques modernes, tout en laissant la plus grande flexibilité aux développeurs. Blast se focalise sur l’implémentation de la destruction des objets, pas de la simulation physique en général ou de l’affichage : ces points doivent être gérés par l’application (évidemment, un module d’extension intègre Blast dans le moteur physique maison, PhysX). Côté simulation, les contraintes sont simulées de manière bien plus détaillée qu’à l’époque APEX Destruction, ce qui permet de créer les fissures aux endroits les plus faibles. (Plus de détails sur le site officiel.)

De manière similaire, APEX Clothing laisse la place à NvCloth. La bibliothèque semble avoir été réécrite pour plus de flexibilité, comme Blast, avec une compatibilité DirectX 11 et 12, les solveurs pouvant fonctionner indifféremment sur CPU ou sur GPU.



Libération du code source


La libération du code source de GameWorks est une opération de longue haleine, débutée en 2015. NVIDIA continue dans la lignée, avec plus de code disponible. Cependant, les conditions ne semblent pas changer : pas de licence libre, enregistrement obligatoire mais gratuit.



Sources et images : communiqué de presse de NVIDIA, NVIDIA talks DX12, including GameWorks support, GDC 2017: NVIDIA Gameworks goes DX12 and more !.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de tlt tlt - Membre habitué https://www.developpez.com
le 06/03/2017 à 6:21
Le hic avec nVidia est le prix du matériel mais toutes ces librairies sont magnifique
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 06/03/2017 à 11:01
Avec ces dernières avancées, ces bibliothèques seront utilisables sur n'importe quelle carte graphique avec l'accélération matérielle, cette dernière n'est plus tellement l'apanage de NVIDIA (pour certains effets, l'accélération matérielle n'était possible qu'avec CUDA). Tous les avantages pour les développeurs de jeux, sans que ça force à acheter du matériel NVIDIA.
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 10/03/2017 à 21:15
Pour info, le code source de Blast est disponible (enregistrement auprès de NVIDIA toujours nécessaire : https://developer.nvidia.com/physx-source-github) : https://github.com/NVIDIAGameWorks/Blast
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 11/03/2017 à 23:34
NvCloth suit de près. Le code de calcul est implémenté pour une série d'architectures : un code scalaire et portable, des codes SSE2 et AVX (extensions vectorielles du x86) et Neon (l'équivalent ARM), un code CUDA (cartes graphiques NVIDIA) et un autre Direct Compute (cartes graphiques DirectX11, uniquement sous Windows). Toujours sur GitHub, mêmes conditions d'accès.
Offres d'emploi IT
DEVELOPPEUR WEB (H/F)
AGENCE SUPPLAY - Ile de France - Poissy (78300)
Technical support web #webmarketing
MATIERE GRISE - Pays de la Loire - Nantes (44000)
Concepteur/ Développeur JAVA (H/F)
Atos Technology Services - Centre - Orléans (45000)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -