Unity arrive en version 2018.2

Unity est un moteur de jeu très utilisé dans l’industrie. Il peut fonctionner tant en 2D qu’en 3D, sur les vingt-sept plateformes gérées (PC de bureau, consoles de jeu, téléphones portables, sans oublier la réalité virtuelle ou augmentée). Il a l’avantage d’être gratuit pour une utilisation personnelle (avec une limite de cent mille dollars de revenus annuels).

La version 2018.2 vient de sortir et construit sur les fondations déposées par la 2018.1 : le pipeline de rendu scriptable (SRP) et le graphe des shaders. Ces nouveautés ne sont pas encore assez finalisées pour être recommandables en production, mais cet objectif se rapproche. Cette nouvelle itération du moteur de jeu améliore la performance du pipeline léger (LWRP), principalement prévu pour le matériel moins performant (comme les téléphones portables), en jouant sur le chargement des données en mémoire. Les opérations sur les lumières sont aussi effectuées par lot plutôt qu’indépendamment.

Une autre variante du pipeline est orientée vers un rendu de plus haute qualité (HDRP), principalement pour les ordinateurs puissants et les consoles de dernière génération. De nouveaux effets ont été implémentés dans ce pipeline :

  • le brouillard volumétrique, contrôlable en densité localement, qui diffuse toutes les lumières qu’il reçoit (à l’exception des lumières en surface) ;
  • la réflexion planaire brillante, qui prend en compte l’aspect lisse des matériaux ;
  • l’anticrénelage par géométrie spéculaire, pour réduire les problèmes qui apparaissent avec des triangles trop denses ;
  • le masque d’ombrage, qui peut maintenant être utilisé en parallèle des textures d’illumination.

En outre, le graphe de shaders peut être utilisé en parallèle du HDRP. La compatibilité entre les deux est toutefois limitée pour le moment (le pavage et les matériaux avancés ne sont pas disponibles).

Unity est aussi utilisé pour créer des jeux en 2D. La version 2018.2 offre notamment des fonctionnalités pour un rendu plus précis des jeux en art du pixel peu importe la taille de l’écran.

Les cartes peuvent aussi être construites à partir de carreaux hexagonaux (plutôt qu’uniquement carrés).

Vulkan continue à s’infiltrer dans Unity : dès maintenant, l’éditeur peut utiliser cette API pour son rendu tant sous Windows que Linux (même si cette fonctionnalité est toujours considérée comme expérimentale).

Pour mieux profiter des systèmes multicœurs, Unity 2018.1 avait apporté un nouveau système de gestion des fils d’exécution. Il est maintenant mis à profit dans l’implémentation des systèmes à entités, grâce à une implémentation réactive.

Ceci n’est qu’un très bref aperçu des nouveautés disponibles, toutes les nouveautés sont détaillées dans le billet de blog officiel.

Télécharger Unity 2018.2. Télécharger l’éditeur pour Linux.

Advertisements

Comment accélérer la mémoire 3D XPoint d’Intel ?

L’une des dernières innovations d’Intel concerne la mémoire, avec sa technologie 3D XPoint. Son intérêt est de rendre la frontière entre mémoire persistante (comme un disque dur ou un SSD) et mémoire volatile (la RAM) plus floue : outre son côté persistant (même en cas de perte de courant, la mémoire de l’ordinateur est préservée : il peut instantanément continuer ses opérations comme si de rien n’était), la mémoire 3D XPoint offre un niveau de performance comparable aux SSD (même s’il est moins bon que pour la RAM), avec une densité et un prix de fabrication inférieurs à la RAM. Un point négatif pour le moment est cependant la consommation d’énergie, par rapport à la RAM.

Une équipe de chercheurs de la North Carolina State University a ainsi cherché des solutions pour améliorer la performance de la mémoire 3D XPoint, en cherchant principalement à la rendre plus attractive face à la RAM traditionnelle. Ils se sont focalisés sur la synchronisation entre la mémoire principale (RAM) et sa copie sur le disque principal, par exemple lors de la mise à jour d’un fichier.

Dans ce cas, le processeur commence par effectuer les transformations nécessaires dans sa mémoire interne (ses caches, de la mémoire “statique”), qui sont alors transférés en mémoire centrale (RAM) avant de finir écrites sur le disque. Cependant, si un plantage se produit lors de l’opération d’écriture sur le disque (transfert depuis la RAM vers le stockage à long terme), comment s’assurer que les données sont bien cohérentes ?

Pour le moment, la seule technique disponible est la persistance hâtive, où chaque transformation est écrite aussi vite que possible sur disque. Néanmoins, avec des technologies de mémoire non volatile, on peut faire mieux : effectuer ces mises à jour quand le système est moins chargé, par exemple, pour qu’il fonctionne aussi vite que possible. De fait, même s’il y a un plantage entre les deux, puisque la mémoire n’est pas volatile, les transformations sont conservées.

C’est l’idée développée par cette équipe et formalisée sous le nom de persistance paresseuse. Cette technique permet de gagner presque dix pour cent sur le temps de transaction moyen, dont vingt et un pour cent en temps d’écriture en mémoire. La récupération après un plantage devient plus compliquée, mais ce cas est assez rare : le cas le plus général devient aussi plus rapide.

Voir aussi : la présentation de ces recherches à l’International symposium on computer architecture, l’article scientifique.

Source : Researchers Invent a Way to Speed Intel’s 3D XPoint Computer Memory.

ARM et Samsung collaborent pour des Cortex A76 à 3 GHz

ARM est le concepteur de la majorité des processeurs utilisés actuellement dans les téléphones, probablement aussi dans les supercalculateurs de demain, si pas nos ordinateurs personnels. Sa dernière génération de cœurs de calcul Cortex A76 est prévue pour le très haut de gamme en performance, en promettant d’être comparable à certains processeurs Intel pour des ordinateurs portables à basse consommation.

Pour arriver à ce niveau, il faut un processus de fabrication des processeurs suffisamment évolué : c’est pour cela qu’ARM s’est associé avec Samsung pour développer une architecture physique complète des cœurs Cortex A76 déjà optimisée pour les derniers processus Samsung (7LPP), qui devraient être disponibles dès la fin de cette année.

Cette architecture prédéfinie permettra d’atteindre des fréquences de plus de trois gigahertz, selon les estimations actuelles (pas de chiffre définitif avancé), avec une consommation d’énergie compatible avec des périphériques très mobiles. Elle comprend à la fois le processeur, la mémoire, ainsi que les entrées-sorties en 1,3 V et 3,3 V, pour s’adapter à un maximum de situations différentes.

Ce partenariat continuera à se développer, notamment pour la migration vers le nœud 5 nm de Samsung (5LPE), qui devrait arriver vers 2020 (même si, à ce moment-là, l’A76 sera probablement obsolète), mais aussi pour des cœurs avec une consommation énergétique plus faible, les Cortex A55.

Sources : Samsung, ARM’s 5LPE & 7LPP Partnership For Cortex A76 Will Allow 3GHz+ Frequencies, Samsung And ARM Expand Collaboration To Drive High Performance Computing, Arm and Samsung Extend Artisan POP IP Collaboration to 7LPP and 5LPE Nodes.

NGD lance sa deuxième génération de SSD programmables

Les disques électroniques (SSD) entrent dans de plus en plus de domaines par la grande porte : leur performance est excellente en comparaison des disques durs magnétiques habituels (il n’y a pas de tête de lecture à déplacer avant de commencer à lire ou à écrire des données), leur prix est en chute libre, leur capacité augmente sans cesse.

NGD surfe sur cette vague en ajoutant une partie pas forcément attendue sur un SSD : une capacité de calcul non négligeable. La deuxième génération de leur seul produit, Catalina 2, offre une série de cœurs de calcul ARM ainsi qu’un FPGA Xilinx associés à un SSD, ce qui garantit un très haut niveau de programmabilité et de performance. Le problème à résoudre est que le traitement de grandes quantités de données nécessite de transporter ces volumes à travers d’abord les bus d’un serveur, puis peut-être le réseau d’un centre informatique : si les traitements les plus courants et simples peuvent être effectués directement au niveau du stockage, alors tous ces moyens de communication seront utilisés bien plus efficacement. Un autre bénéfice est que la consommation d’énergie est moindre — les disques de NGD consomment une douzaine de watts au plus.

Ces disques sont compatibles avec NVMe 1.3 et peuvent se connecter sur un port PCI Express 3.0 x4 ou U.2. La carte Catalina 2 est complètement indépendante de la mémoire flash installée : elle est connectée à l’aide de ports M.2 que l’on peut remplacer n’importe quand (pour le moment, il s’agit de composants fournis par Toshiba). Ces disques fournissent une performance en lecture et écriture d’au plus 3,9 Go/s. Pour assurer la cohérence des données écrites, NGD a adopté une technologie de codes correcteurs à faible densité.

Source : NGD Launches Catalina 2 Programmable SSDs: 16 TB – 32 TB, ARM A-53 Cores.

 

Les prochains processeurs graphiques d’AMD n’utiliseront PCIe 4.0 que dans leurs déclinaisons professionnelles

La prochaine génération de processeurs graphiques d’AMD, les Vega 20, devrait être annoncée cette année et être disponible un peu plus tard. Selon les sources, ces processeurs devraient être équipés de trente-deux gigaoctets de mémoire HBM2, ce qui les destine principalement au marché professionnel, ainsi qu’être fabriquées sur un processus 7 nm. Une des évolutions de ces puces sera probablement la mise à disposition d’une implémentation de PCI Express 4.0, le bus qui sert à relier la carte graphique au reste de l’ordinateur dans la plupart des cas. La version 4.0 de ce bus n’est disponible que depuis peu, les produits commencent à arriver et AMD veut faire partie des premiers à l’adopter.

Les avantages de PCIe 4.0 se résument principalement à la bande passante disponible : chaque seconde, il sera possible d’effectuer jusque seize milliards de transferts (le double de PCIe 3.0), c’est-à-dire jusque soixante-quatre gigaoctets de données transférées par seconde (pour un port x16). Pour les processeurs graphiques, cette évolution est très importante, vu que la bande passante est déjà un facteur limitant pour certaines applications depuis quelques années (ce qui a poussé NVIDIA à développer sa propre interface NVLINK pour la communication à haut débit).

Ce bus PCIe 4.0 n’arrivera que du côté professionnel, principalement à cause des coûts de développement et de qualification de ces bus. Selon certaines études, ces développements n’auraient de sens économique que dans le cas d’applications de niche comme le calcul haute performance, car le besoin de performance est là et le budget ne représente pas un gros problème. En effet, en augmentant la vitesse de transfert, on augmente une série de problèmes : le signal perd plus vite en puissance (avec PCIe 1.0, la puissance reste suffisamment élevée même après cinquante centimètres ; avec PCIe 4.0, on estime plutôt cette distance à une dizaine de centimètres) ; deux signaux doivent être synchronisés de manière nettement plus précise.

Ces problèmes ne sont pas tellement importants au niveau d’une carte graphique : un composant pour gérer la synchronisation sur seize lignes coûterait entre quinze et vingt-cinq euros à la revente, par exemple. Cependant, au niveau d’une carte mère (bien plus grande qu’une carte graphique), on parlerait de surcoûts de l’ordre de cent à trois cents euros !

Au lieu d’utiliser des pistes sur un circuit imprimé, il serait évidemment possible d’envisager d’autres solutions. Bon nombre d’industriels semblent intéressés par le remplacement de ces pistes par des câbles, notamment twinax (des câbles coaxiaux avec deux conducteurs internes) et des connecteurs en luciole (déjà utilisés pour certaines connexions optiques). Leurs propriétés sont très bonnes d’un point de vue ingénierie (impact faible sur la latence et la puissance du signal), mais moins pour la fabrication (malgré un coût limité, il faut connecter tous ces câbles manuellement).

On pourrait donc voir apparaître assez vite des cartes PCIe 4.0, si pas 5.0, mais uniquement lorsque ces nouvelles versions apportent suffisamment au niveau de la performance — ce qui n’est pas encore clair pour les usages grand public.

Source :

La modélisation des cheveux passera-t-elle bientôt par de l’apprentissage profond ?

Les technologies de rendu de cheveux pour les jeux vidéo ne manquent pas. Par exemple, NVIDIA dispose de HairWorks, AMD de TressFX. Cependant, ces bibliothèques ont un énorme désavantage : le temps de calcul requis pour la simulation physique. En effet, une chevelure est constituée de millions de cheveux qui se déplacent plus ou moins indépendamment les uns des autres. Conséquence ? Dans des jeux comme The Witcher 3, activer le rendu des cheveux fait chuter significativement la performance.

Des chercheurs de l’USC, Pinscreen et Microsoft ont alors pensé à utiliser de l’apprentissage profond pour remplacer ces simulations physiques. Malgré un temps d’apprentissage extrêmement long, cette technique promet d’atteindre une très bonne performance en inférence, c’est-à-dire lors de l’utilisation du réseau neuronal pour effectuer la simulation physique. Sur du matériel actuel très haut de gamme (une carte NVIDIA Titan Xp), cette inférence ne prend que quelques millisecondes pour des dizaines de milliers de cheveux, avec moins de cent mégaoctets occupés en mémoire. La simulation n’empiète donc pas énormément sur la puissance de calcul disponible pour le rendu, même si les cœurs tensoriels des puces Volta pourraient être mis à contribution.

Plus techniquement, le réseau neuronal profond apprend à partir d’images 2D une correspondance envers un rendu en 3D des cheveux. Son architecture fait largement appel à des couches convolutionnelles (convolution, pooling, déconvolution). Le réseau transforme d’abord l’image 2D en un champ vectoriel d’orientation des cheveux ; ensuite, il génère des cheveux (représentés comme des séquences de points 3D) ; finalement, il reconstruit un rendu en augmentant le niveau de détail à partir des cheveux générés. Cette méthode permet de préserver énormément de détails locaux, ce qui donne une apparence relativement naturelle au rendu (notamment les cheveux crollés).

Le jeu de données utilisé comprend quarante mille styles différents de coiffure (et donc de comportement des cheveux), pour cent soixante mille images prises avec des points de vue aléatoires. Cependant, il tend à mal généraliser : certains types de coiffure n’ont pas un rendu très réaliste (surtout les plus exotiques : cheveux crépus, africains, très courts) — il faudrait probablement encore agrandir le jeu de données pour résoudre ce problème (ou utiliser plusieurs réseaux neuronaux plus spécialisés).

Cette recherche n’est pas directement applicable dans des jeux vidéo, l’entrée du modèle restant une image. Reste à voir comment la simulation à base de réseaux neuronaux pourra prendre en compte tous les effets : pas seulement une tête qui tourne, mais aussi le vent dans les cheveux ou encore un tissu…

Sources : Nvidia GPUs could use AI to power next-gen HairWorks models in future games, AI Can Render 3D Hair in Real Time.

Voir aussi : Single-View Hair Reconstruction using Convolutional Neural Networks.

Amazon Lumberyard en pleine transition vers Qt

Amazon s’est lancé, en 2015, dans son propre moteur de jeu, Lumberyard, dérivé de CryEngine. Les objectifs étaient de fournir une meilleure intégration avec le service infonuagique d’Amazon, AWS (Amazon Web services), ainsi que le service de diffusion vidéo en direct pour les jeux vidéo Twitch (un autre produit Amazon). En réalité, Lumberyard est intégré aux équipes d’AWS. Contrairement aux autres moteurs de jeu AAA, Lumberyard est entièrement gratuit, sans condition.

Les moteurs de jeu ont évolué depuis les débuts du jeu vidéo : depuis des codes adaptables pour réaliser un jeu très similaire à des bibliothèques de fonction communes à un certain nombre de jeux, les moteurs actuels sont de véritables environnements de développement intégrés. Ils permettent ainsi de créer un nouveau jeu sans trop d’investissement.

Les prochaines évolutions des moteurs de jeu seront probablement au niveau des éditeurs offerts aux développeurs et graphistes impliqués dans un jeu, pour encore faciliter la création de nouveaux jeux. Unreal Engine a déjà lancé la révolution au niveau des interfaces graphiques, avec l’intégration de la réalité virtuelle pour la conception de niveaux.

Amazon suit cette voie, en réécrivant ses éditeurs avec Qt. La majorité de ces nouveaux éditeurs est conçue avec l’utilisabilité en tête. Par exemple, EMotion FX permet d’animer des personnages à l’aide d’un système à base de nœuds. Il permet la création de machines d’état hiérarchiques, de mélanger plusieurs telles machines, le tout dans une interface qui ne nécessite pas de long apprentissage ou le développement de composants supplémentaires.

Script Canvas est un autre nouvel éditeur. Il se focalise sur la programmation de scripts de manière graphique (comme Scratch). Il exploite aussi une interface à base de nœuds et est prévu pour s’intégrer avec EMotion FX. Grâce à lui, les concepteurs de jeu (sans véritable compétence en programmation) peuvent imaginer se passer d’un langage de script ou de programmation pour toute une série de tâches.

Ces développements (pas encore finalisés) et ceux à venir viendront probablement continuer à faciliter le développement de jeux complets sans besoin de spécialistes, notamment en programmation. Pour sa facilité d’utilisation, les développeurs de Lumberyard se focalisent sur Qt pour toutes ces nouvelles fonctionnalités.

Télécharger Amazon Lumberyard.