Que recherchez-vous ?
Hero background image
Unity 2020.1 release
Mises à jour et nouvelles fonctionnalités graphiques
Cette version pousse la stabilisation encore plus loin et offre de nouvelles fonctionnalités pour les artistes techniques et les programmeurs graphiques qui travaillent sous Unity. On peut citer la fonction Camera Stacking, dans le pipeline de rendu universel, ou encore les mises à jour de l'éclairage, avec les optimisations du lightmapping.

Nouveautés de Unity 2020.1

Discover some of the major updates for graphics in Unity 2020.1. For full details, check out the release notes.

Empilement de caméras dans le pipeline de rendu universel dans Unity 2020.1
Camera Stacking dans le pipeline de rendu universel

Quand vous concevez un jeu, il vous arrive souvent de vouloir inclure un élément rendu hors du champ de la caméra principale. Par exemple, dans un menu de pause, vous pouvez avoir envie d'afficher une certaine version du personnage, ou alors, dans une mécanique de jeu, vous avez besoin d'une configuration spéciale pour le rendu du cockpit.

Vous pouvez désormais utiliser la fonction Camera Stacking pour superposer la vue de plusieurs caméras et créer une vue combinée unique. Ainsi, vous pouvez créer des effets tels qu'un modèle 3D dans une interface utilisateur en 2D, ou le cockpit d'un véhicule. Consultez la documentation pour connaître les limites actuelles.

Paramétrage de l'éclairage dans Unity 2020.1
Mises à jour de l'éclairage

Les ressources de paramètre d'éclairage permettent aux utilisateurs de modifier des paramètres utilisés par plusieurs scènes simultanément. Cela signifie que les modifications de plusieurs propriétés peuvent se propager rapidement dans vos projets, ce qui est parfait pour les artistes spécialisés en éclairage, qui ont besoin d'appliquer des modifications à plusieurs scènes. Il est désormais bien plus rapide de passer d'un jeu de paramètres d'éclairage à un autre, par exemple, lorsque vous passez de précalculs de travail aux précalculs en qualité de production.

Une remarque importante : Attention : les paramètres d'éclairage ne sont plus inclus dans le fichier de la scène, mais dans un fichier indépendant du projet, qui stocke tous les paramètres liés à l'éclairage global précalculé.

remarque La vidéo ci-dessus vient du projet Enter the Room, créé par Nedd pour ICRC.

Emballage sans superposition
Emballage sans superposition

Il est maintenant bien plus simple de configurer des modèles pour le lightmapping.

Pour créer la lightmap d'objets, ceux-ci doivent d'abord être « dépliés » pour aplatir la géométrie et obtenir des coordonnées de texture 2D (UV). Cela signifie que tous les côtés doivent être mappés à une partie unique de la lightmap. Les zones qui se superposent peuvent entraîner une dispersion lumineuse et générer d'autres effets visuels non souhaités dans le résultat final.

Pour empêcher cette dispersion entre tableaux d'UV adjacents, les zones à géométrie ont besoin d'un padding suffisant dans lequel les valeurs d'éclairage peuvent se dilater. Ainsi, l'effet du filtre de texture ne calculera pas de valeurs moyennes à partir des tableaux voisins, qui ne correspondent pas toujours aux valeurs d'éclairage attendues en limite d'UV.

L'emballage automatique de Unity crée une marge d'emballage minimale entre les UV de la lightmap, pour permettre cette dilatation. Cette opération s'effectue lors de l'importation. Cependant, quand vous utilisez des densités de texel faibles dans la scène ou quand vous redimensionnez des objets, les données de la lightmap peuvent malgré tout avoir un padding insuffisant.

Pour simplifier le processus d'identification de la taille de marge d'emballage appropriée lors de l'importation, Unity propose désormais une méthode de calcul de marge dans l'importateur du modèle. Vous pouvez y préciser la résolution minimale de la lightmap à laquelle le modèle sera utilisé, ainsi que l'échelle minimum. À partir de ces données, l'outil de déballage de Unity calculera la marge d'emballage requise, de façon à ce que les lightmaps ne se superposent pas.

GPU et CPU Lightmapper : Amélioration de l'échantillonnage
GPU et CPU Lightmapper : Amélioration de l'échantillonnage

La corrélation dans le path tracing est un phénomène lors duquel des échantillons aléatoires d'une scène lightmappée peuvent faire comme un amas ou du bruit. Dans la version 2020.1, nous avons intégré une meilleure méthode de décorrélation pour CPU et GPU Lightmapper.

Ces améliorations de la décorrélation sont actives par défaut et n'ont pas besoin d'intervention de l'utilisateur. Le résultat : des lightmaps qui convergent vers un résultat dénué de bruit en temps réel et affichent moins d'éléments.

Nous avons aussi augmenté la limite d'échantillons du Lightmapper : 1 milliard au lieu de 100 000 échantillons. Cette mise à jour est utile pour les projets du type visualisation architecturale, où les conditions d'éclairage compliquées peuvent générer du bruit dans la lightmap.

Nous apporterons encore d'autres améliorations à cette fonctionnalité dans la version 2020.2, que vous pouvez déjà tester en version alpha.

Optimisations de lightmapping
Optimisations de lightmapping

Pendant le lightmapping, nous lançons des rayons dans la scène, qui rebondissent sur les surfaces et créent des trajectoires lumineuses qui servent à calculer l'éclairage global. Plus un rayon rebondit, plus longue est la trajectoire et plus la génération d'échantillon prend de temps. Ainsi, le temps nécessaire pour créer la lightmap de la scène s'en trouve allongé.

Pour plafonner ce temps nécessaire pour calculer chaque rayon, le lightmapper doit trouver des critères qui permettent de mettre un terme à chaque trajectoire. Pour cela, vous pouvez définir une limite du nombre de rebonds autorisés pour chaque rayon. Pour optimiser encore davantage le processus, vous pouvez utiliser une technique appelée « roulette russe », qui choisit de façon aléatoire à quelles trajectoires mettre fin précocement.

Cette méthode tient compte de l'importance d'une trajectoire dans l'éclairage global de la scène. Chaque fois qu'un rayon rebondit sur une surface sombre, les chances que sa trajectoire soit interrompue augmentent. Cette sélection des rayons réduit le temps de calcul global et affecte peu la qualité de l'éclairage.

L'image ci-dessus vient du projet Enter the Room, créé par Nedd pour ICRC.

Prise en charge des cookies lightmappés
Prise en charge des cookies lightmappés

Les cookies sont un type de map pouvant être appliqué aux éclairages pour modeler un éclairage à distribution de luminance non uniforme. Cette technique peut donner un éclairage plus réaliste et sert à créer d'autres effets visuels impressionnants.

Alors que les cookies étaient jusqu'ici limités aux éclairages en temps réel, dans la version 2020.1, Unity prend désormais en charge les cookies dans CPU et GPU Lightmapper. Cela signifie que les éclairages mixtes et précalculés tiendront également compte de l'influence du cookie pour atténuer l'éclairage direct et indirect.

La prise en charge des cookies lightmappés serviront de base pour la prise en charge, dans nos futures versions, des éclairages IES pour nos clients dans l'architecture.

Contributeurs et récepteurs du mode de vue Scene
Contributeurs et récepteurs du mode de vue Scene

Avec les contributeurs et les récepteurs du mode de vue Scene, vous pouvez voir quels objets influencent l'éclairage global de la scène. Il est aussi plus facile de voir rapidement si l'éclairage global provient de lightmaps ou de Light Probes.

Quand vous utilisez le mode de vue Scene, les moteurs de rendu de maillage sont indiqués dans des couleurs différentes selon qu'ils contribuent à l'éclairage global et/ou selon leur façon de recevoir cet éclairage. Ce mode de vue Scene fonctionne dans tous les pipelines de rendu programmables, en plus du moteur de rendu intégré de Unity.

Ce mode est particulièrement utile avec les Light Probes, car il fournit un bon aperçu de l'utilisation des probes. Vous pouvez personnaliser les couleurs dans le panneau Preference, pour améliorer l'accessibilité.

Ray tracing pour les maillages animés (preview)
Streaming Virtual Texturing (preview)
Streaming Virtual Texturing (preview)

Streaming Virtual Texturing est une fonctionnalité qui réduit l'utilisateur de la mémoire GPU et le temps de chargement des textures quand votre scène comprend de nombreuses textures haute résolution. Elle divise les textures en tuiles et les charge progressivement dans la mémoire GPU quand elles sont utilisées. Elle est prise en charge dans le pipeline de rendu HD (version 9.x preview et ultérieure) et peut être utilisée dans Shader Graph.

Vous pouvez prévisualiser le package en cours dans cet exemple de projet. Dites-nous ce que vous en pensez sur le forum.

Télécharger Unity 2020.1
Télécharger Unity 2020.1

Accédez à toutes les fonctionnalités et aux derniers outils dès aujourd'hui.