Les derniers contenus liés au tag unreal engine
Microsoft annonce DirectX Raytracing
Vulkan en novembre pour le CryEngine
GDC: Nvidia fournit le code source de PhysX
GDC: Démo Epic : Unreal Engine 4 Infiltrator
L'Unreal Engine 4 expliqué en vidéo(s)
Microsoft annonce DirectX Raytracing
Microsoft a profité de l'ouverture de la GDC pour annoncer une nouvelle API, DirectX Raytracing (DXR) . Comme son nom l'indique, il s'agit d'une nouvelle API qui vient s'ajouter aux autres API DirectX pour standardiser l'utilisation de certaines techniques dites de raytracing. Le raytracing tente pour rappel de représenter de manière plus exacte le parcours de la lumière pour proposer des rendus réalistes. L'inconvénient de la technique étant son coût généralement prohibitif, même si des approximations existent.
A l'inverse, le rendu 3D dans les jeux actuel est basé sur la rasterisation, la projection d'une scène 3D en 2D avant d'y appliquer les traitements pour obtenir la couleur des pixels, avec des techniques plus ou moins avancées de gestion de lumière (les premiers jeux 3D se contentant d'imiter les effets de lumière en les dessinant directement dans les textures, tandis qu'aujourd'hui les pixel shaders s'appliquent sur l'image 2D ce qui limite les possibilités même si les développeurs sont extrêmement créatifs). Comme le rappelle le sous titre de l'annonce de Microsoft, "3D Graphics is a lie" (le rendu 3D est un mensonge) !
Avec DXR, Microsoft souhaite donc ajouter un peu de "réalisme" avec une petite dose de raytracing. Dans le détail, il s'agit d'une API complémentaire qui ajoute de nouvelles possibilités pour utiliser le raytracing par dessus les pipelines actuels de rasterisation. En pratique, DXR s'appuie sur une représentation de la géométrie pour lancer des rayons. Par dessus cette représentation, chaque objet ou groupe d'objet pourra définir des "raytracing shaders" et des textures spécifiques à utiliser. Une fois ceci crée, le lancé de rayons est appliqué, l'API définie les cas d'intersection, de non intersection, et de "presque" intersection (near miss), en gérant les cas ou les rayons rebondissent sur plusieurs surfaces (multi bounce).
Techniquement, le lancer de rayon est effectué a partir de la "caméra" dans la variante utilisée par DirectX, et peut se faire pour une sélection de pixels de l'écran ou la totalité (Microsoft prend l'exemple de ne le faire uniquement que pour les objets dont la surface est réfléchissante).
Un exemple de rendu DXR avec le moteur SEED d'EA, Project PICA
D'un point de vue compatibilité avec le matériel existant, Microsoft renvoi simplement vers les constructeurs pour les détails. Certains matériels sur le marché disposeraient déjà d'un support de DXR (on ne sait pas lesquels), et Microsoft semble proposer un mode de rendu alternatif s'appuyant sur Direct Compute pour fonctionner sur tout le matériel existant aujourd'hui (avec un niveau de performances on l'imagine réduit).
AMD nous a indiqué qu'ils collaboraient "étroitement" avec Microsoft "pour les aider à définir, améliorer et prendre en charge l'avenir de DirectX 12 et du ray tracing", un propos qui évite soigneusement de prononcer l'acronyme DXR. AMD dispose déjà d'une API de ce type utilisable sur de multiples plateformes avec Radeon Rays . Interrogé sur la question spécifique de l'accélération matérielle, AMD nous a indiqué qu'ils proposeraient, à un moment non défini, un pilote qui proposera une accélération DXR (au delà du mode "fallback" utilisant Direct Compute et qui lui marche sur tous les GPU, mais probablement en étant peu utilisable). Ce qui sera accéléré, et quelles cartes seront concernées n'est pas encore défini non plus selon le constructeur. On semble sentir une certaine précaution pour ne pas dire frilosité de la part de la société sur sa communication, il nous est difficile de savoir s'il s'agit d'un manque de préparation sur le sujet, d'un désaccord avec Microsoft sur certains choix effectués, ou d'autre chose.
Nvidia de son côté a évoqué son implémentation sous le nom de RTX, cette dernière ne s'appliquera qu'à compter des GPU Volta et ultérieurs (soit uniquement la Titan V dans les GPU "joueurs" actuels de la gamme du constructeur). Nvidia présente la technologie là aussi de manière assez vague, sous entendant que leur implémentation sera utilisable "via" DXR, mettant son API en avant sans que l'on sache si c'est simplement dans un but de démarcation compétitive ou autre chose. Là encore à l'image d'AMD, la communication des deux principaux constructeurs ne va pas exactement dans le même sens que celle de Microsoft (les relations entre Microsoft et les responsables GPU ont toujours été particulières, chacun tentant de tirer la couverture de son côté et de créer un avantage compétitif, que ce soit les constructeurs de GPU l'un face à l'autre, ou Microsoft à proposer une API et des fonctionnalités qui ne soient pas cross-platform).
Du côté des développeurs, Microsoft annonce que les moteurs Frostbite, SEED (plus haut), Unity et Unreal Engine proposeront une forme de support de DXR. Futuremark devrait également proposer un test de ce type pour une version de 3D Mark.
Vulkan en novembre pour le CryEngine
Nos confrères d'Overclock3D ont noté que Crytek a mis à jour sa roadmap concernant son moteur graphique CryEngine. Pour rappel, Crytek propose désormais son moteur sous licence .
La version 5.2 lancée en août avait déjà apporté le support de DirectX 12, la version 5.3, prévue pour le mois de novembre apportera cette fois ci le support de Vulkan, l'API bas niveau du Khronos Group.
La roadmap indique également que la version 5.4, prévue pour la GDC, apportera un support du multi GPU sous DirectX 12. Si précédemment le multi GPU était géré par le pilote (avec plus ou moins de mal), les API de bas niveau redonnent désormais la main aux développeurs de jeux et de moteurs pour qu'ils implémentent eux même correctement la gestion de plusieurs GPU, ouvrant pour le coup des possibilités d'asymétrie y compris dans des marques différentes.
Du côté des autres gros moteurs proposés sous licence, on notera qu'Unity a ajouté le support de DirectX 12 cet été, et que le support de Vulkan a été annoncé comme en développement. L'Unreal Engine propose déjà de son côté le support de DX12 et Vulkan.
GDC: Nvidia fournit le code source de PhysX
Depuis son annonce il y a 3 ans, l'Unreal Engine 4 intègre PhysX de Nvidia. Rappelons qu'il s'agit d'un moteur de prise en charge de la physique, multiplateformes. Il est proposé gratuitement sur PC et sous licence pour les consoles. Il offre la possibilité, optionnellement, d'accélérer via le GPU le traitement de certains effets qui n'affectent pas la simulation du monde.
PhysX évolue régulièrement et ses mises à jour sont progressivement intégrées par Epic dans l'UE4 qui en supporte actuellement la version 3.3.2. Changement important, à la GDC, Nvidia a annoncé qu'à partir de la version 3.3.3, le code source C++ de PhysX pour l'Unreal Engine 4 sera fourni à travers GitHub à tous les développeurs qui en feront la demande.
Une révolution pour Nvidia ? Oui mais pas totalement puisque cette orientation nouvelle garde malgré tout ses limites. Ainsi ce n'est pas tout PhysX qui est ouvert mais uniquement deux de ses modules, certes probablement les plus importants pour la conception des jeux vidéo : les librairies de gestion des destructions et de simulations des tissus. A noter qu'il s'agit dans les deux cas de librairies 100% CPU, la simulation des tissus sur GPU n'en fait pas partie et reste un élément stratégique sur PC pour Nvidia. Il ne faut donc pas voir dans cette annonce une opportunité pour AMD de porter PhysX sur Radeon par exemple.
A terme cela devra permettre une meilleure utilisation de PhysX et probablement des possibilités nouvelles suivant ce que les développeurs vont construire autour de ces librairies. Ils pourront d'ailleurs proposer leurs évolutions à Nvidia qui pourra éventuellement les intégrer dans la branche principale de PhysX qui se retrouvera ensuite dans les futures versions de l'Unreal Engine.
Vous pourrez retrouver plus d'informations par ici .
GDC: Démo Epic : Unreal Engine 4 Infiltrator
Epic était également de la partie au niveau des démos présentées à la GDC. Après Samaritan basé sur une version très évoluée de l'Unreal Engine 3, Epic présentait une nouvelle démo basée sur la dernière évolution en date de son moteur : l'Unreal Engine 4.
Cette démo est annoncée comme tournant en temps réel sur une seule GeForce GTX 680 et montre donc ce qu'il est possible de faire avec l'UE et le matériel actuel, à condition bien entendu de mettre les moyens au niveau artistique ! Concevoir des mondes, des objets, des personnages, des éclairages, etc., aussi travaillés représente un investissement énorme dont la croissance exponentielle pose problème pour les studios de développement.
L'Unreal Engine 4 expliqué en vidéo(s)
Epic a récemment publié une vidéo démontrant et expliquant les caractéristiques du nouvel Unreal Engine 4. Les fonctionnalités sont expliquées en détail, et en particulier la "global illumination" (l'illumination globale dynamique en temps réel). Cette fonction veut reproduire certains effets de propagation et de coloration de la lumière telle qu'on le voit dans le monde réel. La grosse nouveauté ici est que les effets d'éclairage indirect (la lumière qui rebondit sur une surface) ne sont pas précalculés et appliqués à des objets statiques, mais calculés en temps réel par le GPU. Comme les effets de lumière directe.
Si la démonstration est techniquement impressionnante, il est à noter que dans une interview récente (publiée sur GeForce.com), Tim Sweeney, le pionnier d'Unreal Engine, déclarait que l'Unreal Engine 4 visait les GPU DX11 et devenait "intéressant" sur un matériel capable de délivrer 1 TFLOPS et plus... ce qui le met théoriquement à portée de GPUs "modestes" comme les GF114 des GTX 560. Théoriquement car il est très difficile de quantifier ce que Sweeney entend par "intéressant". Pour information la vidéo "Elemental" (ci-dessous) est présentée comme rendue sur une seule GTX680.