Que recherchez-vous ?
E-Book

Comment déplacer votre projet Built-in Render Pipeline vers Universal Render Pipeline (URP) ?

Jul 31, 2024|12 Min.
Fantasy Kingdom - Made with Unity, Assets by Synty Studios
Cette page a fait l’objet d’une traduction automatique. Afin de consulter la version originale pour des raisons d’exactitude et de fiabilité,

Le pipeline de rendu universel (URP) est le pipeline de rendu par défaut dans Unity 6. Dans ce guide, nous vous expliquons pourquoi l'URP devient la solution par défaut, nous vous présentons les principales fonctionnalités et les avantages de la SRP (Scriptable Render Pipeline), nous partageons des exemples de studios qui ont transféré leurs projets vers l'URP et nous vous expliquons, étape par étape, comment vous pouvez faire de même avec les vôtres.

Pour en savoir plus sur l'URP, consultez l'e-book complet, Introduction à l'URP pour les créateurs avancés.

Évolution du rendu : Du pipeline de rendu intégré aux pipelines de rendu scriptables

La portée de la plateforme est l'une des plus grandes forces d'Unity. L'idéal pour presque tous les studios de jeux est de créer un jeu une fois pour toutes et de le Deployer efficacement sur toutes les plateformes qu'ils choisissent, des PC haut de gamme aux téléphones portables bas de gamme.

Le pipeline de rendu intégré a été développé pour être une solution clé en main pour toutes les plateformes prises en charge par Unity. Il offre un mélange de fonctions graphiques et est pratique à utiliser avec les chemins de rendu avancés et différés.

Cependant, comme Unity continue d'ajouter la prise en charge de plus de plateformes, nous avons perçu les limitations suivantes dans le pipeline de rendu intégré :

  • L'essentiel du code est écrit en C++ et ne peut être modifié, ce qui en fait un système "boîte noire".
  • Le flux de rendu et les passes de rendu sont préstructurés.
  • L'algorithme de rendu est codé en dur.
  • La personnalisation sans contrainte rend difficile l'obtention de bonnes performances sur toutes les plates-formes.
  • Il expose des rappels dans le code de rendu qui déclenchent des points de synchronisation dans le pipeline. Ces rappels empêchent les optimisations de rendu multithread, ce qui permet de modifier l'injection d'état à n'importe quel moment de la trame de manière dynamique en faisant appel au langage C#.
  • Il est difficile de mettre en cache des données pour gérer l'état de persistance de l'injection de l'utilisateur.

La solution : Pipelines de rendu scriptables

Le HDRP (High-Definition Render Pipeline) et l'URP sont tous deux des SRP (Scriptable Render Pipeline). Les SRP d'Unity ont été développés pour soutenir un flux de travail multiplateforme efficace en fournissant :

  • Évolution intelligente et fiable pour le plus grand nombre de plates-formes matérielles, des appareils haut de gamme aux appareils bas de gamme
  • La possibilité de personnaliser les processus de rendu en utilisant C#, et non C++, ce qui signifie qu'il n'est pas nécessaire de compiler un nouvel exécutable pour chaque modification.
  • Flexibilité pour soutenir l'évolution de l'architecture
  • Capacité à créer des graphiques nets et performants sur de nombreuses plates-formes

L'image ci-dessous illustre le fonctionnement des ASR. Ils utilisent C# pour contrôler et personnaliser les passes de rendu et le contrôle du rendu, ainsi que les shaders HLSL qui peuvent être créés à l'aide d'outils conviviaux pour les artistes tels que Shader Graph. Les shaders vous permettent d'accéder à l'API de niveau inférieur et aux abstractions de la couche moteur.

Le nouveau modèle graphique programmable pour les pipelines de rendu scriptables
Le nouveau modèle graphique programmable pour les pipelines de rendu scriptables

Un développeur avancé peut créer un nouveau SRP à partir de zéro ou modifier l'URP ou le HDRP. La pile graphique est open source et disponible à l'utilisation sur GitHub.

Bien que les deux SRP offrent des avantages uniques, l'URP est conçu pour une portée maximale de la plate-forme afin que vous puissiez apporter des graphiques de grande qualité n'importe où. Regardons de plus près.

Les échantillons URP d'Unity, Happy Harvest, The Oasis et Gem Hunter Match
Exemples de projets URP récents : Happy Harvest / The Garden / Gem Hunter Match

6 raisons de transférer votre projet Unity vers URP

  1. L'URP est accessible à un large éventail de niveaux de compétences.

    L'URP est configurable par les artistes et les techniciens, ce qui offre une plus grande flexibilité pour le prototypage et l'affinement des techniques de rendu en vue de la production de jeux complets.

  2. URP est extensible et personnalisable.

    URP vous permet de modifier les fonctionnalités existantes et d'étendre le pipeline avec de nouvelles fonctionnalités, ce qui en fait un choix solide pour les utilisateurs avancés, y compris les créateurs d'Asset Store et de paquets tiers, les développeurs expérimentés et les équipes professionnelles.

    Alors que l'API de rendu de bas niveau est écrite en C++ à des fins de performance, un développeur URP peut écrire un simple script C# à appeler pendant le pipeline de rendu, ce qui permet une personnalisation de haut niveau sans sacrifier la performance.

  3. URP offre de multiples options de rendu.

    URP propose un moteur de rendu universel qui prend en charge les chemins de rendu Forward, Forward+ et Deferred, ainsi qu'un moteur de rendu 2D.

    Vous pouvez étendre ces moteurs de rendu avec des fonctionnalités supplémentaires et des passes de rendu scriptables.

    La fonction Rendre les objets peut être utilisée pour rendre les objets d'un masque de calque donné à différents moments du pipeline de rendu. Il vous permet également de remplacer le matériau et d'autres états de rendu lors du rendu de ces objets, ce qui permet de personnaliser le rendu sans code.

    URP peut être complété par des outils de rendu personnalisés pour répondre à des besoins spécifiques. Unity 6 introduit le Render GraphLe Render Graph,est un outil qui vous permet d'accéder et de manipuler les différents tampons utilisés pour le rendu d'une image, et en utilisant le flux de travail des fonctions de rendu, il peut être ajouté à n'importe quel stade du pipeline de rendu.

  4. L'URP améliore le développement des jeux en 2D.

    L'URP offre des performances et une flexibilité optimisées, ce qui le rend idéal pour les plateformes mobiles et haut de gamme. Il prend en charge des effets avancés d'éclairage, d'ombres et de post-traitement, améliorant ainsi la qualité visuelle des jeux 2D sans compromettre les performances.

    En outre, les paramètres de rendu personnalisables et les capacités de shader d'URP vous permettent d'affiner l'apparence de vos jeux pour leur donner un aspect poli et professionnel. L'URP est donc un outil précieux pour créer des jeux 2D visuellement attrayants et fluides.

  5. L'URP est compatible avec les technologies les plus récentes pour les artistes.

    URP prend en charge les derniers outils conviviaux pour les artistes, tels que Shader Graph, VFX Graph et Rendering Debugger.

  6. Vous pouvez obtenir de meilleures performances avec l'URP.

    URP a été conçu dans un souci de performance et dispose de nombreux outils permettant de trouver un équilibre entre la fidélité et la fréquence d'images sur un large éventail d'appareils.

    - L'URP évalue l'éclairage en temps réel de manière très efficace. Dans le rendu Forward, il évalue tous les éclairages en un seul passage. Forward+ améliore le rendu standard de Forward en éliminant les lumières dans l'espace plutôt que par objet. Cela permet d'augmenter le nombre total de lumières qui peuvent être utilisées pour rendre une image. Dans le cadre du rendu différé, il prend en charge l'API RenderPass native, ce qui permet de combiner les passes de tampon G et d'éclairage en une seule passe de rendu.

    - L'URP utilise plus efficacement la mémoire des tuiles sur les appareils mobiles, ce qui permet de réduire la consommation d'énergie, d'augmenter l'autonomie de la batterie et, par conséquent, d'allonger la durée des sessions de jeu.

    - L'URP est doté d'une pile de post-traitement intégrée qui permet d'améliorer les performances par rapport au pipeline de rendu intégré. Grâce au cadre Volume, vous pouvez créer des effets de post-traitement qui dépendent de la position de la caméra sans écrire de code.

    - Unity 6 Preview introduit une variété de mises à jour SRP, notamment des améliorations au niveau du CPU et du GPU lors du dessin de maillages ; le SRP Batcher, qui garantit moins d'appels de dessin et des améliorations sur la façon dont la profondeur est gérée ; et le GPU Resident Drawer et le GPU Occlusion Culling, qui peuvent réduire de manière significative les appels de dessin pour certaines scènes.

    Alors que la plupart des projets Unity sont désormais construits sur URP ou HDRP, le Built-in Render Pipeline reste disponible dans Unity 6.

3 studios qui ont transféré leurs projets Built-in Render Pipeline vers URP

Kluge Interactive - Synth Riders

Kluge Interactive a lancé son jeu de rythme immersif Synth Riders sur Steam VR et Meta Quest en 2019. Depuis, il a été porté sur de nombreux appareils, dont la Vision Pro d'Apple. Rester à la pointe de la technologie a été essentiel pour aider le studio à toucher de plus en plus de joueurs sur les plateformes VR.

"Les 12 à 18 derniers mois de développement du jeu ont été consacrés au remboursement de la dette technique et au rapprochement de nos outils de la LTS 2022", explique AnnMarie Wirrel Bartholomaeus, productrice technique chez Kluge Interactive. "Nous sommes déjà passés du Built-in Render Pipeline à l'Universal Render Pipeline (URP) et avons adopté un backend OpenXR. Cela nous a permis de nous placer dans une position technique bien meilleure pour travailler avec les nouvelles technologies".

Lire l'étude de cas complète

Subcult Joint - Découpeur de biscuits

Subcult Joint's Cookie Cutter est un beat-em-up Metroidvania à haute intensité disponible sur PC et consoles. Tous les éléments du jeu sont dessinés à la main et animés à l'aide de techniques traditionnelles. Pour ajouter de la profondeur à ces personnages et environnements étonnants, Subcult Joint avait besoin de la configuration d'éclairage parfaite - une configuration qui pouvait être optimisée et qui restait performante sur toutes les plates-formes.

En passant à URP et en mettant le projet à jour avec la dernière version d'Unity, Subcult Joint a débloqué tout le potentiel de Cookie Cutter. Ils ont ajouté plus de 10 000 lumières 2D et les ont optimisées à l'aide du Memory Profiler mis à jour. La dernière version de Sprite Atlases leur a permis d'envoyer plus facilement et plus efficacement des centaines d'animations dessinées à la main vers différentes plates-formes cibles.

"Chaque lumière du jeu éclaire nos Sprites en temps réel, créant ainsi une sensation de densité et de cohésion entre les personnages, les animations et les environnements", explique Stefano Guglielmana, fondateur de Subcult Joint. "Dans les endroits sombres, les personnages sont à l'ombre, et baignés de lumière lorsqu'ils sont exposés aux puits de lumière saturés et contaminés des zones extérieures. J'aime tellement ces détails !"

Lire l'étude de cas complète

more8bit - Bleak Sword DX

Le développeur solo Luis Moreno Jimenez, également connu sous le nom de more8bit, a initialement lancé son jeu 8-bit Soulslike Bleak Sword sur Apple Arcade en 2019. Suite au succès du jeu, les éditeurs Mobilive Digital ont proposé à more8bit de porter le jeu sur PC et consoles pour toucher encore plus de joueurs. more8bit a profité de l'occasion pour développer le concept original de Bleak Sword, plutôt que de recréer une copie conforme de la version mobile.

Bleak Sword DXévoque les jeux d'arcade rétro. Les effets de Post Processing comprennent des effets de lumière avec une texture sale, la courbure de l'écran, des filtres de type VHS, des effets de profondeur de champ, et bien d'autres encore. Pour Luis, le plus grand défi consistait à conserver la saveur visuelle de Bleak Swordtout en améliorant les graphismes de DXpour tirer parti de la puissance de traitement supplémentaire. Il a créé la plupart des effets visuels en utilisant le pipeline de rendu intégré et le Shader Graph d'Unity, avant de les optimiser dans URP.

"Le passage de Built-in à URP s'est fait en douceur. Il ne m'a fallu qu'un week-end, puis une semaine pour régler les petits problèmes", explique-t-on chez more8bit.

Lire l'étude de cas complète

Comment ajouter l'URP à un projet Built-in Render Pipeline existant ?

Dans cette section, nous allons vous montrer comment convertir un projet existant qui utilise le pipeline de rendu intégré (Built-in Render Pipeline) en URP.

Important : Veillez à sauvegarder votre projet à l'aide du contrôle de source avant de suivre les étapes de cette section. Ce processus convertira les actifs et Unity ne propose pas d'option d'annulation. Si vous utilisez le contrôle de la source, vous pourrez revenir à des versions antérieures des actifs si nécessaire.

Si vous mettez à jour un projet Built-in Render Pipeline existant, vous devez ajouter le paquet URP à votre projet.

Allez dans Fenêtre > Package Manager, et cliquez sur le menu déroulant Packages pour ajouter URP à votre projet. Veillez à sélectionner le registre Unity, puis Universal RP. Cliquez sur Télécharger dans le coin inférieur droit de la fenêtre si le paquet URP n'est pas encore installé sur votre ordinateur de développement. Cliquez ensuite sur Installer une fois qu'il a été téléchargé.

Installer URP via le Package Manager
Installer URP via le Package Manager

Pour créer un actif URP, cliquez avec le bouton droit de la souris dans la fenêtre du projet et choisissez Créer > Rendu > Actif URP (avec Universal Renderer). Nommez l'actif.

Création d'un actif URP
Création d'un actif URP

Rappelez-vous : Si vous créez un nouveau projet à l'aide des modèles Universal Render Pipeline ou 3D (URP), ces actifs URP sont déjà disponibles dans le projet. Plutôt que de créer un seul actif URP, URP utilise deux fichiers, chacun avec une extension d'actif.

Deux actifs dans URP, l'un pour les paramètres URP et l'autre pour les données du moteur de rendu.
Deux actifs dans URP, l'un pour les paramètres URP et l'autre pour les données du moteur de rendu.

L'une d'entre elles s'appelle UniversalRP_Renderer et se trouve à l'adresse suivante :. Il s'agit d'une ressource de données de rendu que vous pouvez utiliser pour filtrer les couches sur lesquelles le moteur de rendu travaille et pour intercepter le pipeline de rendu afin de personnaliser le rendu de la scène. Vous pouvez ainsi faciliter la création d'effets de haute qualité.

En outre, UniversalRP_Renderer contrôle la logique de rendu de haut niveau et les passes pour l'URP. Il prend en charge les chemins d'accès directs et différés, ainsi qu'un moteur de rendu 2D () qui permet des fonctionnalités telles que les lumières et les ombres 2D, ainsi que les styles de mélange de lumière. Vous pouvez même étendre URP pour créer vos propres moteurs de rendu.

L'Inspector pour l'actif de données UniversalRP_Renderer
L'Inspector pour l'actif de données UniversalRP_Renderer

L'autre actif URP sert à contrôler les paramètres de Quality, Light, Shadows et Post Processing. Vous pouvez utiliser différents actifs URP pour contrôler les paramètres de qualité.

Cet élément de configuration est lié à l'élément de données Renderer par l'intermédiaire de la liste Renderer. Lorsque vous créez un nouveau poste URP, le poste Paramètres aura une liste de preneurs d'ordre contenant un seul élément - le poste Données du preneur d'ordre créé en même temps, défini comme valeur par défaut. Vous pouvez ajouter d'autres Renderer Data Assets à cette liste.

Le moteur de rendu par défaut est utilisé pour toutes les caméras, y compris la vue de scène. Une caméra peut remplacer le moteur de rendu par défaut en en sélectionnant un autre dans la liste des moteurs de rendu. Cette opération peut être effectuée à l'aide d'un script, si nécessaire.

Un atout de l'URP dans l'Inspector
Un atout de l'URP dans l'Inspector

Même si vous avez suivi ces étapes pour créer un actif URP, une scène ouverte dans la vue Scène ou Jeu utilisera toujours le pipeline de rendu intégré. Vous devez effectuer une dernière étape pour passer à l'URP : Allez dans Édition > Paramètres du projet et ouvrez le panneau Graphiques. Cliquez sur le petit point situé à côté de None (Render Pipeline Asset). Dans le panneau ouvert, sélectionnez UniversalRP.

Un message d'avertissement concernant le commutateur s'affiche, mais vous pouvez simplement appuyer sur Continuer. Comme il n'y a pas encore de contenu dans votre projet, la modification du pipeline de rendu sera presque instantanée. Vous êtes maintenant prêt à utiliser l'URP.

Convertir les scènes d'un projet existant

Après avoir suivi les étapes ci-dessus, vous constaterez que vos belles scènes sont soudainement colorées en magenta. En effet, les shaders utilisés par les matériaux dans un projet Built-in Render Pipeline ne sont pas pris en charge par URP. Heureusement, il existe une méthode pour redonner à vos scènes leur qualité d'origine.

Les matériaux d'une scène apparaissent en magenta parce que leurs shaders basés sur le Built-in Render Pipeline doivent être convertis pour être utilisés dans URP.
Les matériaux d'une scène apparaissent en magenta parce que leurs shaders basés sur le Built-in Render Pipeline doivent être convertis pour être utilisés dans URP.

Allez dans Fenêtre > Rendu > Convertisseur de pipeline de rendu. Choisissez Convertir Built-in en 2D (URP ) pour un projet 2D, ou Built-in en URP pour un projet 3D. Si votre projet est en 3D, vous devrez sélectionner les convertisseurs appropriés:

  • Paramètres de rendu : Sélectionnez cette option pour créer plusieurs actifs de paramètres de pipeline de rendu qui correspondront le plus possible aux paramètres de qualité du pipeline de rendu intégré. Cela vous permet de tester différents niveaux de qualité plus efficacement.
  • Amélioration des matériaux: Utilisez cette option pour convertir les matériaux du pipeline de rendu intégré en URP.
  • Convertisseur de clips d'animation : Cette fonction permet de convertir des clips d'animation. Il s'exécute une fois que le convertisseur de mise à niveau des matériaux est terminé.
  • En lecture seule Material Converter : Cela permet de convertir les matériaux préconstruits, en lecture seule, inclus dans un projet Unity. Il indexe le projet et crée le fichier temporaire .index. Notez que cela peut prendre beaucoup de temps.

Conversion de shaders personnalisés

Les shaders personnalisés ne sont pas convertis à l'aide du convertisseur de mise à jour des matériaux. L'utilisation de Shader Graph est souvent le moyen le plus rapide de mettre à jour un shader personnalisé en URP.

Il existe plusieurs shaders URP différents, notamment :

  • Pipeline de rendu universel/Lit : Ce nuanceur de rendu physique (PBR), similaire au nuanceur standard intégré, peut être utilisé pour représenter la plupart des matériaux de la vie réelle. Il prend en charge toutes les fonctionnalités du nuanceur standard avec des flux de travail métalliques et spéculaires.
  • Universal Render Pipeline/Simple Lit : Celle-ci utilise un modèle Blinn-Phong et convient aux appareils mobiles bas de gamme ou aux jeux qui n'utilisent pas de flux de travail PBR.
  • Universal Render Pipeline/Baked Lit: Utilisez ce shader pour les jeux stylisés ou les applications qui ne nécessitent qu'un éclairage cuit via les lightmaps, les sondes lumineuses et les volumes de sondes adaptatives d'Unity 6. Ce shader n'utilise pas l'ombrage basé sur la physique et n'a pas d'éclairage en temps réel. Tous les mots-clés et variantes de shader pertinents pour le temps réel sont donc retirés du code du shader, ce qui rend le calcul plus rapide.
  • Universal Render Pipeline/Complex Lit : Le nuanceur de lumière complexe contient toutes les fonctionnalités du nuanceur de lumière et y ajoute des caractéristiques matérielles avancées. Certaines fonctionnalités de ce shader peuvent être considérablement plus gourmandes en ressources et nécessiter du matériel Unity Shader Model 4.5.
  • Pipeline d'enduit universel/non éclairé: Il s'agit d'un shader performant pour le GPU qui n'utilise pas d'équations d'éclairage.
  • Rendu universel Pipeline/Terrain/Lit : Il convient de l'utiliser avec le paquet Terrain Tools.
  • Pipeline de rendu universel/Particules/Lit : Ce nuanceur de particules utilise un modèle d'éclairage PBR.
  • Pipeline de rendu universel/Particules/Unlit : Ce shader de particules non éclairé est léger sur le GPU.

Bien que Simple Lit remplace de nombreux shaders hérités ou mobiles, les performances ne sont pas les mêmes. Les shaders hérités/mobiles n'évaluent que partiellement l'éclairage, alors que Simple Lit prend en compte tous les éclairages tels que définis par l'URP Asset.

Reportez-vous à ce tableau dans notre documentation URP pour voir comment chaque nuanceur URP correspond à son équivalent Built-in Render Pipeline.

Une fois que vous avez sélectionné un ou plusieurs des convertisseurs ci-dessus, cliquez sur Initialiser les convertisseurs ou Initialiser et convertir. Quelle que soit l'option choisie, le projet sera scanné et les ressources à convertir seront ajoutées à chacun des panneaux de conversion.

Si vous choisissez Initialiser les convertisseurs, vous pouvez limiter les conversions en désélectionnant les éléments à l'aide de la case à cocher prévue pour chacun d'eux. À ce stade, cliquez sur Convert Assets pour lancer le processus de conversion.

Si vous choisissez Initialiser et convertir, la conversion démarre automatiquement après l'initialisation des convertisseurs. Une fois l'opération terminée, il peut vous être demandé de rouvrir la scène active dans l'éditeur.

Le convertisseur de pipeline de rendu
Le convertisseur de pipeline de rendu

Obtenez le livre électronique complet

Apprenez l'Universal Render Pipeline (URP) pour les créateurs avancés d'Unity
Learn the Universal Render Pipeline (URP) for advanced Unity creators (2022 LTS edition)

Tirez le meilleur parti de l'URP grâce à notre guide complet de 140 pages, Introduction à l'Universal Render Pipeline pour les créateurs avancés d'Unity. Rédigé par Nik Lever, expert d'Unity, ce manuel couvre les meilleures pratiques pour créer des graphiques évolutifs dans Unity. Les points forts sont les suivants :

  • Paramètres et convertisseurs URP
  • Comparer les pipelines de rendu et les chemins de rendu
  • L'éclairage dans l'URP
  • Shaders et rappels de pipeline
  • Post Processing
  • Conseils de performance et d'optimisation et plus encore

Ces mises à jour sont enfilées dans presque toutes les sections de cette dernière édition du guide, de sorte que vous pouvez compter sur elle pour correspondre à votre expérience d'utilisation de l'URP dans Unity 2022 LTS aussi précisément que possible .

Créez votre jeu, à votre façon

Contrôlez davantage l'apparence de votre jeu tout en optimisant les performances de rendu avec URP. Ce SRP deviendra plus puissant que jamais lors du lancement d'Unity 6 dans le courant de l'année. Créez des scènes riches en détails et mettez à l'échelle des images basse résolution sans perdre la fidélité visuelle, tout en minimisant le besoin d'optimisation manuelle sur vos plateformes cibles.

Comment déplacer votre projet Built-in Render Pipeline vers Universal Render Pipeline (URP) ?

Découvrez comment mettre à niveau votre projet Unity à pipeline de rendu intégré vers le pipeline de rendu universel, et voyez comment 3 studios ont atteint plus de plateformes en passant à l'URP.