Génération Procédurale: Quid de Unity vs Unreal Engine ?

Il y a quelques temps, je suis tombé sur cet arti­cle qui com­pare Unre­al Engine et Uni­ty sous l’angle de la généra­tion procé­du­rale util­isant des vox­els. Voyons ce qu’en pense l’auteur, et ce que nous pou­vons aus­si ajouter sur ce sujet.

La généra­tion procé­du­rale, je ne vous la présente plus ? C’est la pos­si­bil­ité de génér­er des paysages, mais aus­si tout objet comme une échelle, à par­tir d’un cer­tain nom­bre d’assets et d’un pro­gramme. Pour une échelle, vous avez besoin des cotés et d’un bar­reau pour génér­er n’importe quelle taille d’échelle avec de mul­ti­ples bar­reaux, en util­isant une “procé­dure” qui va allonger les cotés et mul­ti­pli­er les bar­reaux. Pour un paysage, c’est plus com­pliqué, mais on raisonne de la même façon. Quant aux Vox­els, ce sont des pix­els 3D qui ont un vol­ume. Les blocs de minecraft en sont un exem­ple. On par­lera de vox­el pour la représen­ta­tion mémoire des blocs, alors que l’affichage passe bien par de la ras­ter­i­sa­tion de tri­an­gles. Un paysage en vox­els (même unique­ment mémoire), vous per­met de creuser ce dernier par exem­ple. Bon, je m’arrête ici pour le rap­pel.

L’auteur nous dit qu’Unity a un gros avan­tage sur UE4, c’est qu’il sup­porte native­ment les « Tex­tures Arrays ». Toute­fois, il sem­ble oubli­er que depuis peu, UE4 les sup­porte égale­ment en natif au tra­vers des tex­tures volumétriques. L’article date pourant du 30 juin, mais nul n’est par­fait. Bon le sup­port n’est peut-être pas aus­si bien inté­gré toute­fois, mais cela devrait s’améliorer dans quelques temps. D’ailleurs, il me sem­ble qu’il y a de nou­velles pistes avec la ver­sion 4.18, mais n’ayant pas encore eu le temps de l’explorer, je ne veux pas m’aventurer.

Autre point impor­tant, c’est la ges­tion physique : PhysX util­isé par UE4 ne sup­porte pas les con­vex hulls alors qu’Unity les sup­porte sans bronch­er. Il faut donc inté­gr­er un nou­v­el algo­rithme pour cela. Il y a aus­si le fait que la des­ti­na­tion d’un navmesh ne peut-être mod­i­fiée en temps-réel sous UE4. On peut le faire en changeant le code avec peu de mod­ifs, mais pas avec la ver­sion offi­cielle.

L’auteur con­clut donc que, bien qu’on puisse mod­i­fi­er UE4 coté code source par rap­port à Uni­ty qui est une boite noire, un développeur de plu­g­in ne peut utilis­er cette option ! On se rap­pellera les turpi­tudes avec Truesky où on tra­vail­lait tou­jours avec une ver­sion « alter­na­tive » du moteur, tou­jours en retard… L’auteur sem­ble oubli­er qu’Epic Games a ten­dance à fusion­ner les « pull requests » en quan­tité et donc, assez rapi­de­ment, ce genre de soucis est écarté. Alors que coté Uni­ty, si ce n’est pas prévu… ben, il fau­dra atten­dre qu’ils déci­dent de le met­tre en place.

Bon, l’auteur n’est pas le pre­mier venu, il bosse chez Vox­el Farm qui pro­pose prob­a­ble­ment le meilleur plu­g­in de vox­els pour UE4 :

Notez que la ver­sion Vox­el Farm 3 INDIE coûte 260€ et qu’elle dis­pose d’un plu­g­in pour UE4 et pour Uni­ty (Win­dows unique­ment). Elle offre le droit à 1 an de mis­es à jour. Pour du mul­ti-plate­formes, il fau­dra aller vers la ver­sion Pro (995$). Une ver­sion Tri­al de 30 jours est disponible.

3 réflexions sur « Génération Procédurale: Quid de Unity vs Unreal Engine ? »

    1. con­vex hulls: c’est l’enveloppe con­vexe, c’est une sorte d’objet sim­pli­fié qui enveloppe un objet 3D et qui le représente pour la ges­tion de la physique. On peut par exem­ple utilis­er un cube “physique” pour représen­ter une sphère 3D, mais elle ne va pas rouler… Pour des objets com­plex­es, un con­vex hull va per­me­t­tre de coller au mieux de l’objet, tout en restant plus “sim­ple” pour la 3D.
      Le Navmesh, c’est le mesh de nav­i­ga­tion. C’est un objet 3D con­tenant le chemin qu’un per­son­nage est capa­ble de suiv­re sur un ter­rain. Il y a des sur­faces sur lesquelles il peut marcher, d’autres non. Ca per­met de cal­culer le plus court chemin pour reli­er un point d’une carte à une autre et déplac­er ain­si un per­son­nage.

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.