PhysX/Gameworks et Unreal Engine 4

Unre­al Engine 4 intè­gre la dernière ver­sion du moteur physique PhysX, dévelop­pé par NVIDIA. mais qu’en est-il de Game­works ?

Der­rière “Game­works” se cache en fait toute une bat­terie de tech­nolo­gies dévelop­pées en interne chez nVidia, ou acquis­es lors du rachat de sociétés tierces.

L’offre se divise grossière­ment en trois caté­gories :

  • la qual­ité de l’image (Visu­alFX ): se con­cen­tre sur les procédés trai­tant par exem­ple l’antialiasing (TXAA), le ren­du des ombres (Soft Shad­ows) mais aus­si le ren­du des vis­ages (Face­Works) ou encore de la pilosité/fourrure (Fur­Works).
  • la sim­u­la­tion de la physique : s’articule autour de la tech­nolo­gie PhysX (APEX) et se con­cen­tre prin­ci­pale­ment sur le ren­du des moteurs de destruc­tion, des tex­tiles et des flu­ides, le ren­du des cheveux (Hair­Works).
  • les out­ils :  solu­tions des­tinées aux développeurs, leur per­me­t­tant d’intégrer tout cela dans les moteurs de leurs jeux et aus­si d’accéder à des fonc­tions plus avancées

L’une des tech­nolo­gies  per­me­t­tant d’exploiter les GPU pour la sim­u­la­tion mul­ti­physique en temps réel, avec des cou­plages entre tous les types de sim­u­la­tion (des inter­ac­tions entre solides (déformables ou non), liq­uides et tis­sus, chaque type d’objet étant régi par des sys­tèmes d’équations dif­férents) se nomme NVIDIA FleX.

Les sources de l’intégration de Game­Works sont disponibles sur un dépôt Git, acces­si­ble sous les mêmes con­di­tions que les sources d’Unreal Engine 4. Toute­fois, il s’agit pour l’instant d’Apex essen­tielle­ment.

D’autres mod­ules de Game­Works sont en cours d’intégration : HBAO+, VXGI, Vehi­cles et Wave­Works sont d’ores et déjà disponibles, tou­jours en tant qu’intégrations expéri­men­tales, tou­jours unique­ment pour Win­dows. Il est prévu d’ajouter d’autres mod­ules dans les mois à venir, comme Hair­Works ou Turf Effects. Cer­tains mod­ules ont besoin d’un GPU NVIDIA, d’autres se sat­is­font d’un GPU Direc­tX 11.

Si comme moi vous avez un compte développeur Nvidia (sinon, c’est sim­ple, allez vous créer un compte, c’est gra­tu­it — même si c’est pas sys­té­ma­tique), vous pou­vez accéder à de nom­breux exem­ples et leur code source en allant à cette adresse.

Game­Works n’est ni plus ni moins qu’une boîte noire sur laque­lle le développeur du jeu n’a aucun con­trôle puisqu’il ne con­nait pas le code qu’elle ren­ferme (on a juste accès aux DLL). Plus pré­cisé­ment, “Le code source de Game­Works est fourni aux développeurs via un accord de licence. Il ne peut pas être dis­tribué à des tiers sans licence.” — Je n’ai pas essayé de leur deman­der un accès, mais à mon avis, il faut mon­tr­er pat­te blanche, et ça ne doit vrai­ment pas être facile à obtenir.

Per­son­nelle­ment, ça ne me botte pas trop. Je ne sais pas si cela vaut la peine de met­tre le nez dans cette tech­nolo­gie qui évolue très vite et dont le mar­ket­ing sem­ble avoir pris les rennes: avec tous ces noms qui vont et qui vien­nent et qui n’existeront peut-être plus dans 6 mois…

Mais son util­i­sa­tion au sein d’Unreal Engine sus­cite en moi un cer­tain intérêt. Il n’est même pas besoin d’attendre qu’Unreal Sup­porte l’intégration défini­tive des dif­férents mod­ules pour les utilis­er. Il suf­fit juste de créer une classe blue­print d’appel aux fonc­tions DLL et de map­per les prin­ci­pales fonc­tions que l’on souhaite utilis­er. Pourquoi pas… ou atten­dre que d’autres le fasse à votre place… Tout dépend: voulez-vous suiv­re la masse ou faire un truc nova­teur avec UE4?

Voici quelques jeux dont les développeurs ont déjà répon­du à cette ques­tion:

  • AC Uni­ty : HBAO+, TXAA, PCSS et tes­se­la­tion
  • Bat­man Arkham Knight : Tur­bu­lence, PhysX, Vol­u­met­ric lights, Face­Works e Effets de pluie
  • Bor­der­lands The Pre-Sequel : PhysX
  • Far Cry 4: HBAO+, PCSS, TXAA, God Ray, Fur, sup­port de la 4k
  • Project Cars : DX11 (heureuse­ment), Tur­bu­lence, PhysX
  • The Crew: HBAO+ et TXAA
  • The Witch­er 3: Hair­Works, HBAO+, PhysX (fringues et destruc­tion)
  • War­face: PhysX, Tur­bu­lence

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.